nginx重定向问题解决(rewrite or internal redirection cycle)

CSDN 2024-07-02 11:37:02 阅读 78

文章目录

错误日志和配置文件问题分析

错误日志和配置文件

访问日志文件

2023/10/15 07:13:48 [error] 30#30: *1 rewrite or internal redirection cycle while internally redirecting to "/index.html", client: 123.55.159.97, server: server_name, request: "GET / HTTP/1.1", host: "xxx.xxx.xxx.xxx"

123.55.159.97 - - [15/Oct/2023:07:13:48 +0000] "GET / HTTP/1.1" 500 579 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.46"

123.55.159.97 - - [15/Oct/2023:07:13:48 +0000] "GET /favicon.ico HTTP/1.1" 500 579 "http:///" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.46"

2023/10/15 07:13:48 [error] 30#30: *2 rewrite or internal redirection cycle while internally redirecting to "/index.html", client: 123.55.159.97, server: server_name, request: "GET /favicon.ico HTTP/1.1", host: "xxx.xxx.xxx.xxx", referrer: "http://xxx.xxx.xxx.xxx/"

nginx.conf配置文件内容

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

client_max_body_size 50m;

client_body_buffer_size 10m;

client_header_timeout 1m;

client_body_timeout 1m;

gzip on;

gzip_min_length 1k;

gzip_buffers 4 16k;

gzip_comp_level 4;

gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

gzip_vary on;

server {

listen 80;

server_name my_server_name;

location / {

root /usr/local/xxx_vue;

index index.html index.htm;

try_files $uri $uri/ /index.html;

}

location ^~ /api/ {

proxy_pass http://xxx.xxx.xxx.xxx:8080/;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

}

问题分析

根据提供的访问日志和nginx.conf配置文件分析,是循环重定向的问题。配置中,location / 块使用了 try_files $uri $uri/ /index.html; 会导致导致在尝试访问根目录时发生重定向循环。修改:添加一个新的location=/index块,直接提供 /index.html 而不进行重定向。

server {

listen 80;

server_name my_server_name;

location / {

root /usr/local/xxx_vue;

index index.html index.htm;

try_files $uri $uri/ /index.html;

}

location = /index.html {

root /usr/local/xxx_vue;

}

location ^~ /api/ {

proxy_pass http://xxx.xxx.xxx.xxx:8080/;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

使用以下命令重新加载Nginx,即可生效

sudo nginx -s reload



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。