nginx hỗ trợ cho quy tắc .htaccess / viết lại? Sự khác biệt so với Apache?


16

Tôi đã làm việc với các máy chủ Apache http khá lâu và cuối cùng đã chuyển sang các máy chủ nội dung tĩnh cùng với các máy nội dung động khác.

Tôi đã tự hỏi, nginx có hỗ trợ các tệp ".htaccess" không, và những thứ như mod_rewrite?

Vì tôi rất quen với cú pháp, tôi đã tự hỏi sự khác biệt (cú pháp) là gì và đường cong học tập giống như việc chuyển từ cấu hình Apache sang nginx.

Câu trả lời:


15

Cú pháp viết lại nginx sạch hơn nhiều so với đối tác trong mod_rewrite:

quy tắc mod_rewrite:

 RewriteRule ^[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 [QSA,L,NC]

Trở thành nginx:

rewrite ^/[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 last;

Nhưng không có .htaccess hỗ trợ ...

Chỉnh sửa: Một ví dụ khác về cách hỗ trợ http://example.com/~username/ url trong nginx:

location ~ /~([a-zA-Z0-9]*)/(.*) {
    root /home/;
    autoindex on;
    index index.html;
    rewrite ^/~([a-zA-Z0-9]*)/(.*)$ /$1/www/$2 break;
}

5

nginx không cung cấp chức năng viết lại, kiểm tra NginxHttpRewriteModule

Bạn muốn làm gì với .htaccess? Bạn có thể thiết lập nginx cho Xác thực cơ bản với NginxHttpAuthBasicModule nhưng chỉ thị cấu hình AFAIK chỉ có thể được lưu trữ trong nginx.conf


2
Về cơ bản tôi đã tự hỏi về cài đặt trên mỗi thư mục. Tôi sẽ đi R FM ngay bây giờ. =)
kẻ hèn nhát vô danh

4

Có vẻ như nginx không có chất tương tự mod_rewrite và tài liệu có thể được tìm thấy ở đây . Tôi đã không sử dụng nginx cho mình, nhưng tài liệu có vẻ như cấu hình hoàn toàn khác, nhưng không quá khó để hiểu những gì nó đang làm. Các wiki dường như có rất nhiều ví dụ.

Tôi không thể trả lời nếu bạn có thể có các tệp cấu hình thư mục như bạn có thể với apache. Nó sẽ không làm tôi ngạc nhiên nếu bạn có thể, bởi vì mọi người đã mong đợi điều đó từ việc sử dụng apache.


0

NGINX DOES hỗ trợ có cấu hình trong nhiều tệp thông qua chỉ thị 'bao gồm'. Về cơ bản, nó tải một cấu hình phụ và đặt nó vào vị trí. Nó cũng hỗ trợ các nhân vật pha trò, vì vậy thật dễ dàng để tải nhiều người trong số họ trong một lần bắn.

Hạn chế duy nhất (theo tôi) là bạn cần tải lại khi cấu hình được thay đổi. Vì vậy, bất kỳ người dùng nào có một phần cấu hình có thể cần quyền tải lại cấu hình nginx:

/etc/ini.d/nginx buộc tải lại (trên centos)

Tôi thực sự không biết có cách nào để tránh điều đó hay làm điều đó khác đi vì tôi sử dụng NGINX trên nhiều máy chủ có nhiều ứng dụng (máy chủ ảo) là của riêng tôi. Điều đó có nghĩa là NGINX không lý tưởng cho việc chia sẻ lưu trữ.

Tuy nhiên, tôi thực sự yêu NGINX vì cấu hình dễ đọc hơn nhiều so với tệp XML khó chịu. Câu hỏi về hương vị tôi đoán. Điểm tốt khác rõ ràng là tốc độ, nếu nó quan trọng trong trường hợp của bạn.

Chúc may mắn

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.