nginx yeniden yazma veya dahili yönlendirme döngüsü


13

Im var olmayan bir URL erişmeye çalışırken nginx yapılandırmasında yeniden yönlendirme döngüsüne neyin neden olduğunu anlamaya çalışan bir tabloya kafamı beceriyor Yapılandırma aşağıdaki gibi gider:

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;
}

bu alan adı sadece bazı test amaçlı basit bir STATIC HTML sitesidir. Ben fast_gi_intercept_errors var gibi PHP-FPM verilen dosyaları bulmak mümkün değil yanıt olarak error_page yönergesi tekme beklenir; http blok ve nave error_page kurmak, ancak iç yönlendirmelerde bir yerde daha önce bile istek başarısız olduğunu tahmin ediyorum. Herhangi bir yardım çok takdir edilecektir.


İstemci tarayıcısı bir yönlendirme döngüsü mü bildiriyor veya nginx mi? İstemci ise, yönlendirmeler hangi konuma yönlendirilir?
Shane Madden

her ikisi de bildiriyor. Müşteri nihayetinde /errors//errors//errors//errors//errors/...404.html
milosgajdos

Nginx'in günlük girişi neye benziyor?
Shane Madden

Yanıtlar:


11

Suçlu: try_files $uri $uri/ ;

http://nginx.org/r/try_files (son parametrenin dahili yönlendirme için dönüş kodu veya URI olduğunu unutmayın)

Dosyalardan hiçbiri bulunamazsa, son parametre tarafından belirtilen uri'ye bir iç yönlendirme yapılır.


Teşekkürler. Roots Trellis LEMP kurulumuyla bu hatalardan birini yaşadım. WooCommerce verilerinin içe aktarılmasından sonra oldu. Daha önce hiç yoktu. Bu durumlarda ne önerirsiniz? Parametre kaldırılsın $uri/mı? Buradaki parametreye bakın: github.com/roots/trellis/blob/…
rhand

2

Diğerlerinin de belirttiği gibi, bu suçlu:

    try_files $uri $uri/ ;

Son bir parametresi try_filesdosya bulunmuyorsa konumu göstermesi gerektiğinden bir yönlendirme döngüsü oluşturur . Aşağıdaki =404gibi bir ekleyerek çözdüm :

    try_files $uri $uri/ =404 ;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.