nginx viết lại hoặc chu kỳ chuyển hướng nội bộ


13

Tôi đập đầu vào một cái bàn đang cố gắng tìm ra điều gì gây ra chu kỳ chuyển hướng trong cấu hình nginx của tôi khi cố gắng truy cập URL không tồn tại Cấu hình như sau:

server {
        listen       127.0.0.1:8080;
        server_name  .somedomain.com;
    root  /var/www/somedomain.com;

        access_log /var/log/nginx/somedomain.com-access.nginx.log;
    error_log  /var/log/nginx/somedomain.com-error.nginx.log debug;

        location ~* \.php.$ {
        # Proxy all requests with an URI ending with .php*
        # (includes PHP, PHP3, PHP4, PHP5...)
        include /etc/nginx/fastcgi.conf;
        }

        # all other files
        location / {
            root  /var/www/somedomain.com;
        try_files $uri $uri/ ;
        }

    error_page 404 /errors/404.html;
        location /errors/ {
                alias /var/www/errors/;
        }       

        #this loads custom logging configuration which disables favicon error logging
        include /etc/nginx/drop.conf;
}

tên miền này là một trang web STATIC HTML đơn giản chỉ dành cho một số mục đích thử nghiệm. Tôi hy vọng rằng lệnh error_page sẽ phản ứng với PHP-FPM không thể tìm thấy các tệp đã cho vì tôi có fastcgi_intercept_errors trên; trong khối http và nave error_page được thiết lập, nhưng tôi đoán yêu cầu không thành công ngay cả trước đó ở đâu đó trên các chuyển hướng nội bộ. Bất kì sự trợ giúp nào đều được đánh giá cao.


Là trình duyệt máy khách báo cáo một vòng lặp chuyển hướng, hoặc là nginx? Nếu là khách hàng, địa điểm nào được chuyển hướng đến?
Shane Madden

cả hai đều báo cáo nó. Cuối cùng, khách hàng kết thúc với URL của /errors//errors//errors//errors//errors/...404.html
milosgajdos

Mục nhập nhật ký từ nginx trông như thế nào?
Shane Madden

Câu trả lời:


11

Thủ phạm là: try_files $uri $uri/ ;

http://nginx.org/r/try_files (lưu ý rằng tham số cuối cùng là mã trả về hoặc URI để chuyển hướng nội bộ)

Nếu không có tệp nào được tìm thấy, một chuyển hướng nội bộ đến uri được chỉ định bởi tham số cuối cùng được thực hiện.


Cảm ơn. Chỉ có một trong những lỗi này với thiết lập Roots Trellis LEMP. Đã xảy ra sau khi nhập dữ liệu WooC Commerce. Chưa bao giờ có nó trước đây. Bạn muốn giới thiệu gì trong những trường hợp này? Xóa tham số $uri/? Xem tham số tại đây: github.com/roots/trellis/blob/ từ
rhand

2

Như những người khác đã tuyên bố, đây là thủ phạm:

    try_files $uri $uri/ ;

Nó tạo ra một vòng lặp chuyển hướng, vì tham số cuối cùng try_filessẽ trỏ đến vị trí nếu không tìm thấy tệp. Tôi đã giải quyết nó bằng cách thêm một =404, như thế này:

    try_files $uri $uri/ =404 ;
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.