nginx重定向解决(rewrite or internal redirection cycle)
作者:缘友一世
本文主要介绍了nginx重定向解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
错误日志和配置文件
访问日志文件
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
到此这篇关于nginx重定向解决(rewrite or internal redirection cycle)的文章就介绍到这了,更多相关nginx重定向 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!