Tên và vị trí của tệp cấu hình Nginx (tương đương htaccess) là gì?


30

Có nhiều hướng dẫn về cách viết các quy tắc viết lại Nginx để bắt chước tệp .htaccess của Apache nhưng tôi không thể tự tin nói rằng tôi biết tên hoặc vị trí của tệp cấu hình Nginx này thực sự là gì. Tôi đặc biệt tìm kiếm tệp cấu hình Nginx cho phép bạn viết đường dẫn máy chủ và các chỉ thị PHP. Tôi đang sử dụng Ubuntu 12 linux và Codeigniter làm khung PHP của tôi.

Đây là những gì tôi biết cho đến nay:

  1. Tập tin này: /etc/nginx/nginx.confmặc dù tên hấp dẫn của nó rõ ràng không phải là nơi dành cho các chỉ thị của máy chủ.
  2. Tệp này: /etc/nginx/sites-available/defaultcó vẻ giống như những gì tôi cần (tôi có thể tạo ra các lỗi php cụ thể cho ứng dụng của mình) nhưng tôi không thể định tuyến đường dẫn cụ thể của Codeigniter. Trước hết, đây có phải là tập tin "config" / .htaccess tương đương mọi người nói đến không?

Vấn đề của bạn không phải là ngôn ngữ PHP (tức là lập trình bằng PHP), đó là cấu hình PHP trên một máy chủ cụ thể, giải thích các phiếu bầu gần như hoàn toàn hợp lệ. Tôi không thể bình luận về phần sau của bài viết của bạn, vì nó có vẻ rất chủ quan và thiên vị.
nickb

1
Bạn có thể tìm thấy vị trí cấu hình nginx bằng cách sử dụng nginx -Vmà bạn có thể tìm thấy trong hướng dẫn sử dụng man nginx. Các -Vtùy chọn là tài liệu như "-v In phiên bản nginx, phiên bản trình biên dịch, và các thông số cấu hình kịch bản.". Nếu nginxkhông có trong đường dẫn của bạn, hãy sử dụng đường dẫn which nginxtrả về đường dẫn đầy đủ đến nginx$(which nginx) -V
bucabay

Câu trả lời:


28

Tôi sử dụng PHP với nginx trên máy chủ phát triển của mình với cấu hình sau:

  1. trong /etc/nginx/nginx.conftôi đã thêm: include /etc/nginx/sites-enabled/*;trước cuối cùng }.

  2. chạy các lệnh sau để tạo cấu hình trang web của bạn:

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
    cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/<site>
    
  3. chỉnh sửa cấu hình trang web, một số cấu hình có thể có (đây là những gì tôi đã đề cập trong thiết lập của mình): http://kbeezie.com/view/nginx-configuration-examples/

  4. liên kết đến trang web có sẵn để kích hoạt nó

    ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/<site>
    
  5. Hãy nhớ rằng bạn thực sự có thể bao gồm các tệp trong các cấu hình gần như ở mọi nơi, điều này giúp tạo nhiều trang web dễ dàng khi bạn muốn ném các cấu hình tương tự lại với nhau.

Vâng, .htaccess có thể so sánh với server{}khối trong nginx, nhưng chúng cũng rất khác nhau. nginx có một cách tiếp cận nhẹ hơn nhiều để phân tích cấu hình và nó sẽ không quét các thư mục trang web để tìm cấu hình bổ sung, chỉ có bất cứ điều gì được nhìn thấy bởi nginx.conf, đi.


- @ Andrew cảm ơn rất nhiều thông tin hữu ích!, Theo mặc định, /etc/nginx/nginx.conftập tin của tôi đã có include /etc/nginx/sites-enabled/*;ở cuối. Có vẻ như 2 tệp này đang nói chuyện với nhau trên máy chủ của tôi và hiện tôi đang xử lý các sự cố cụ thể của Codeigniter. Bạn đang sử dụng codeigniter? Có một số con đường funkiness mà tôi cần để có được một ngày xử lý ...
tim Peterson

Tôi sử dụng khung riêng của mình khá giống (mặc dù nguyên thủy hơn) với CodeIgniter. Hiện tại tôi đang cố gắng để các quy tắc regrec mod_rewrite của mình được chuyển đổi sang mô-đun httpRewrite của nginx. Bước đột phá lớn đầu tiên của tôi là vượt qua các lỗi 403/404 nginx hiển thị khi tôi cấu hình roottham số không chính xác . Hãy xem Câu hỏi của tôi nếu bạn cần bất kỳ nguồn cảm hứng nào.
abests9

cảm ơn vì lời khuyên về việc kiểm tra câu hỏi của bạn Tôi đang nghĩ đến tôi hiểu bây giờ nhiều hơn, cảm ơn vì các thiết lập cho tôi trên con đường ...
tim Peterson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.