Heim  >  Fragen und Antworten  >  Hauptteil

Die Nginx-Umleitung schlägt fehl, wenn die ursprüngliche Anfrage nicht vorhanden ist

Problembeschreibung: nginx scheint nicht umzuleiten, wenn die ursprüngliche Anfrage an einen nicht vorhandenen Speicherort gerichtet ist. Alle anderen Weiterleitungen scheinen gut zu funktionieren. Es ist auch möglich, dass PHP das Skript auf der umgeleiteten Seite nicht ausführt. nginxconf wird unten bereitgestellt.

Frage: Was fehlt mir und was muss ich tun, damit das funktioniert? Ist es möglich, dass Nginx die Umleitung von einer Seite, die nicht existiert, nicht unterstützt?

Ein wenig Kontext könnte hilfreich sein: Hier ist eine typische Anfrage, die weitergeleitet wird:

73.234.24.22 - - [30/May/2022:16:15:05 +0000] "GET /postevent3.asp?dta=05%2f30%2f22%2016%3a15%3a22%20507%20%2b149642656%20%2d254084882%20%2d0001787%20682829361 HTTP/1.1" 302 154 "-" "-"

Beachten Sie, dass für diese Anfrage keine Seite angezeigt wird; die Anfrage wird in einen Puffer gestellt, verarbeitet und in die Datenbank geschrieben. Am Ende dieses Artikels finden Sie einen Auszug aus dem Nginx-Debug-Protokoll.

Das Ändern der URL ist unpraktisch, da es Dutzende von Einheiten auf der ganzen Welt verstreut gibt. Die meisten Geräte können nicht aus der Ferne aktualisiert werden.

Die ursprüngliche Website wird nicht mehr verwendet und verwendet Apache. Die aktuelle Site verwendet Nginx. Ich kenne mich mit Webservern nicht besonders gut aus, daher übersehe ich wahrscheinlich etwas Offensichtliches. Alle Ideen werden geschätzt.

Ich habe im Port 80-Serverblock auch Folgendes versucht:

location / {
    try_files $uri $uri/ /data/submit_legacy.php?$query_string;
}

nginxconf-Datei---------------------------------------------------------- - ----- -----------------------------------

server {
    listen 80;
    listen [::]:80;
    root /var/www/example.org;
    server_name example.org www.example.org ;
    index index.php index.html index.htm;
    expires    -1;
    rewrite_log on;
    error_log /var/www/example.org/data/http-org-submit.log debug;

#=# ========================================================================= #=#       
#=# Intercept request for postevent3.asp and send it data/submit_legacy.php,  #=# 
#=# be sure to change to return 301 when testing is complete                  #=#       
#=# ========================================================================= #=#       

    location = /postevent3.asp {
        return 302 https://example.org/data/submit_legacy.php?$query_string; 
    }       

    location / {
        return 302 https://$host$request_uri;
    }
}

server {
    listen [::]:443 ssl http2; # managed by Certbot
    listen 443 ssl http2; # managed by Certbot
    root /var/www/example.org;
    server_name example.org www.example.org;
    index index.php index.html index.htm;
    expires    -1;
    
    rewrite_log on;
    error_log /var/www/example.org/data/https-org-submit.log debug;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    ssl_certificate /etc/letsencrypt/live/example.org/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.org/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypta/ssl-dhparams.pem; # managed by Certbot
    add_header Strict-Transport-Security "max-age=31536000;  includeSubDomains";
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    
    client_max_body_size 100M;  
}

Aus der Nginx-Debug-Datei extrahiert: ---------------------------------------- - - -------------------------------------------------

2022/05/30 17:35:15 [debug] 37669#37669: *1 write new buf t:1 f:0 000055BC271BE300, pos 000055BC271BE300, size: 390 file: 0, size: 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 http write filter: l:0 f:0 s:390
2022/05/30 17:35:15 [debug] 37669#37669: *1 http output filter "/postevent3.asp?dta=05%2f30%2f22%2017%3a35%3a32%20564%20%2b188886495%20%2b025481359%20%2b0005990%20570742577"
2022/05/30 17:35:15 [debug] 37669#37669: *1 http copy filter: "/postevent3.asp?dta=05%2f30%2f22%2017%3a35%3a32%20564%20%2b188886495%20%2b025481359%20%2b0005990%20570742577"
2022/05/30 17:35:15 [debug] 37669#37669: *1 image filter
2022/05/30 17:35:15 [debug] 37669#37669: *1 xslt filter body
2022/05/30 17:35:15 [debug] 37669#37669: *1 http postpone filter "/postevent3.asp?dta=05%2f30%2f22%2017%3a35%3a32%20564%20%2b188886495%20%2b025481359%20%2b0005990%20570742577" 000055BC271BE5D0
2022/05/30 17:35:15 [debug] 37669#37669: *1 write old buf t:1 f:0 000055BC271BE300, pos 000055BC271BE300, size: 390 file: 0, size: 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 write new buf t:0 f:0 0000000000000000, pos 000055BC260A7AC0, size: 92 file: 0, size: 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 write new buf t:0 f:0 0000000000000000, pos 000055BC260A7E20, size: 62 file: 0, size: 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 http write filter: l:1 f:0 s:544
2022/05/30 17:35:15 [debug] 37669#37669: *1 http write filter limit 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 writev: 544 of 544
2022/05/30 17:35:15 [debug] 37669#37669: *1 http write filter 0000000000000000
2022/05/30 17:35:15 [debug] 37669#37669: *1 http copy filter: 0 "/postevent3.asp?dta=05%2f30%2f22%2017%3a35%3a32%20564%20%2b188886495%20%2b025481359%20%2b0005990%20570742577"
2022/05/30 17:35:15 [debug] 37669#37669: *1 http finalize request: 0, "/postevent3.asp?dta=05%2f30%2f22%2017%3a35%3a32%20564%20%2b188886495%20%2b025481359%20%2b0005990%20570742577" a:1, c:1
2022/05/30 17:35:15 [debug] 37669#37669: *1 set http keepalive handler
2022/05/30 17:35:15 [debug] 37669#37669: *1 http close request
2022/05/30 17:35:15 [debug] 37669#37669: *1 http log handler
2022/05/30 17:35:15 [debug] 37669#37669: *1 free: 000055BC271E7D10, unused: 10
2022/05/30 17:35:15 [debug] 37669#37669: *1 free: 000055BC271BDE40, unused: 1875
2022/05/30 17:35:15 [debug] 37669#37669: *1 free: 000055BC2719E1B0
2022/05/30 17:35:15 [debug] 37669#37669: *1 hc free: 0000000000000000
2022/05/30 17:35:15 [debug] 37669#37669: *1 hc busy: 0000000000000000 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 tcp_nodelay
2022/05/30 17:35:15 [debug] 37669#37669: *1 reusable connection: 1
2022/05/30 17:35:15 [debug] 37669#37669: *1 event timer add: 32: 65000:84579871
2022/05/30 17:35:15 [debug] 37669#37669: *1 http keepalive handler
2022/05/30 17:35:15 [debug] 37669#37669: *1 malloc: 000055BC2719E1B0:1024
2022/05/30 17:35:15 [debug] 37669#37669: *1 recv: eof:1, avail:-1
2022/05/30 17:35:15 [debug] 37669#37669: *1 recv: fd:32 0 of 1024
2022/05/30 17:35:15 [info] 37669#37669: *1 client 93.181.63.177 closed keepalive connection
2022/05/30 17:35:15 [debug] 37669#37669: *1 close http connection: 32
2022/05/30 17:35:15 [debug] 37669#37669: *1 event timer del: 32: 84579871
2022/05/30 17:35:15 [debug] 37669#37669: *1 reusable connection: 0
2022/05/30 17:35:15 [debug] 37669#37669: *1 free: 000055BC2719E1B0
2022/05/30 17:35:15 [debug] 37669#37669: *1 free: 000055BC271E7B00, unused: 136
2022/05/30 17:35:15 [debug] 37669#37669: *2 http header: "Host: www.example.org"
2022/05/30 17:35:15 [debug] 37669#37669: *2 http header done
2022/05/30 17:35:15 [debug] 37669#37669: *2 event timer del: 32: 84575067
2022/05/30 17:35:15 [debug] 37669#37669: *2 generic phase: 0
2022/05/30 17:35:15 [debug] 37669#37669: *2 rewrite phase: 1
2022/05/30 17:35:15 [debug] 37669#37669: *2 test location: "/"
2022/05/30 17:35:15 [debug] 37669#37669: *2 test location: "postevent3.asp"
2022/05/30 17:35:15 [debug] 37669#37669: *2 using configuration "=/postevent3.asp"
2022/05/30 17:35:15 [debug] 37669#37669: *2 http cl:-1 max:1048576
2022/05/30 17:35:15 [debug] 37669#37669: *2 rewrite phase: 3
2022/05/30 17:35:15 [debug] 37669#37669: *2 http set discard body
2022/05/30 17:35:15 [debug] 37669#37669: *2 http script copy: "https://example.org/data/submit_legacy.php?"
2022/05/30 17:35:15 [debug] 37669#37669: *2 http script var: "dta=10%2F14%2F02%2017%3A35%3A24%2000096%20%2B204823178%20%2B089853375%20%2B0008360%20634488566%20%0D%0A10%2F14%2F02%2017%3A35%3A27%2000096%20%2B204823175%20%2B089853369%20%2B0008402%20392294994%20%0D%0A10%2F14%2F02%2017%3A35%3A31%2000096%20%2B204823170%20%2B089853326%20%2B0008462%20215533034%20%0D%0A10%2F14%2F02%2017%3A35%3A32%2000096%20%2B204823166%20%2B089853317%20%2B0008472%20020574633%20%0D%0A"
2022/05/30 17:35:15 [debug] 37669#37669: *2 http finalize request: 302, "/postevent3.asp?dta=10%2F14%2F02%2017%3A35%3A24%2000096%20%2B204823178%20%2B089853375%20%2B0008360%20634488566%20%0D%0A10%2F14%2F02%2017%3A35%3A27%2000096%20%2B204823175%20%2B089853369%20%2B0008402%20392294994%20%0D%0A10%2F14%2F02%2017%3A35%3A31%2000096%20%2B204823170%20%2B089853326%20%2B0008462%20215533034%20%0D%0A10%2F14%2F02%2017%3A35%3A32%2000096%20%2B204823166%20%2B089853317%20%2B0008472%20020574633%20%0D%0A" a:1, c:1
2022/05/30 17:35:15 [debug] 37669#37669: *2 http special response: 302, "/postevent3.asp?dta=10%2F14%2F02%2017%3A35%3A24%2000096%20%2B204823178%20%2B089853375%20%2B0008360%20634488566%20%0D%0A10%2F14%2F02%2017%3A35%3A27%2000096%20%2B204823175%20%2B089853369%20%2B0008402%20392294994%20%0D%0A10%2F14%2F02%2017%3A35%3A31%2000096%20%2B204823170%20%2B089853326%20%2B0008462%20215533034%20%0D%0A10%2F14%2F02%2017%3A35%3A32%2000096%20%2B204823166%20%2B089853317%20%2B0008472%20020574633%20%0D%0A"
2022/05/30 17:35:15 [debug] 37669#37669: *2 http set discard body
2022/05/30 17:35:15 [debug] 37669#37669: *2 xslt filter header
2022/05/30 17:35:15 [debug] 37669#37669: *2 HTTP/1.1 302 Moved Temporarily
Server: nginx/1.18.0 (Ubuntu)
Date: Mon, 30 May 2022 17:35:15 GMT
Content-Type: text/html
Content-Length: 154
Connection: keep-alive
Location: https://example.org/data/submit_legacy.php?dta=10%2F14%2F02%2017%3A35%3A24%2000096%20%2B204823178%20%2B089853375%20%2B0008360%20634488566%20%0D%0A10%2F14%2F02%2017%3A35%3A27%2000096%20%2B204823175%20%2B089853369%20%2B0008402%20392294994%20%0D%0A10%2F14%2F02%2017%3A35%3A31%2000096%20%2B204823170%20%2B089853326%20%2B0008462%20215533034%20%0D%0A10%2F14%2F02%2017%3A35%3A32%2000096%20%2B204823166%20%2B089853317%20%2B0008472%20020574633%20%0D%0A
Expires: Mon, 30 May 2022 17:35:14 GMT
Cache-Control: no-cache

P粉827121558P粉827121558229 Tage vor374

Antworte allen(1)Ich werde antworten

  • P粉715304239

    P粉7153042392024-03-28 10:47:44

    如果我对发起此请求的软件无法解释 302 HTTP 重定向代码并发出新请求的猜测是正确的,那么您唯一的方法就是在 HTTP 块本身内处理该请求。而不是您当前的

    location = /postevent3.asp {
        return 302 https://example.org/data/submit_legacy.php?$query_string; 
    }       
    

    您可以检查此配置:

    location = /postevent3.asp {
        rewrite ^ /data/submit_legacy.php break;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$uri;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
    

    如果使用此配置,您的请求将开始出现在数据库中,这肯定意味着我最初的猜测是正确的。

    Antwort
    0
  • StornierenAntwort