【Nginx】之 nginx 问题汇总
2021/7/23 7:08:55
本文主要是介绍【Nginx】之 nginx 问题汇总,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
- 1、请求头过大导致 400 问题
- 2、一个server配置多个location
- 3、反向代理时的url匹配问题
1、请求头过大导致 400 问题
问题情景:前端发送一个请求,结果返回 400。
问题原因:请求所携带的 Cookie 过大,超过了 Nginx 的最大上限,所以返回 400。
解决方法:修改 Nginx 配置文件,根据情况加大请求头缓冲区大小
client_header_buffer_size 32k; large_client_header_buffers 8 32k;
这里需要注意,有时候只是 Nginx 加大了请求头的缓冲区大小是不够的,还需要配合服务端应用程序,比如在 Java
的 SpringBoot
项目中,还要设置一下请求头大小:
server: max-http-header-size: 32768 # 32K
也就是说 nginx 和 服务端程序都要进行最大请求头设置。
2、一个server配置多个location
问题情景:当在 server
中配置多个 location
时,特定 url 的 location 会出现 404
location / { root html; index index.html index.htm; } location /app { root html; index app.html app.htm; }
此时,访问 /
时可以访问得到 index.html 文件,但访问 /app
时却报 404。
问题原因:在 location 块中,如果使用的是一个特定的 url 的话,不用使用 root
,要使用 alias
。
解决方法:在特定 url 的 location 中替换 root
为 alias
location / { root html; index index.html index.htm; } location /app { alias html; # 改成 alias index app.html app.htm; }
3、反向代理时的url匹配问题
问题情景:在 Nginx 进行反向代理时
# server 1 server { listen 80; server_name localhost; location /app { proxy_pass_header Set-Cookie; proxy_set_header Host $host; proxy_set_header X-Real-Ip $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; # 跳转至代理服务器 proxy_pass http://192.168.56.10:81; } } # server 2 server { listen 81; server_name 192.168.56.10; location / { root html; index app.html app.htm; } }
当在 server1 中访问 /app
时,期待跳转并访问 server2 时却出现无法访问的问题。
问题原因:出现这个问题的原因是,当我们请求代理服务器时,会将 url
地址全部信息一起发送过去,也就是说在 server2 中收到的请求 url 的地址为 /app
(可以使用 $request_uri
进行查看),所以无法在 server2 找到对应的 location。
解决方法:匹配请求的 url 地址即可
# server 2 server { listen 81; server_name 192.168.56.10; location /app { alias html; index app.html app.htm; } }
注意:如果 location 中为特定的 url 时,别忘记了使用 alias
而不是 root
。
这篇关于【Nginx】之 nginx 问题汇总的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享
- 2024-08-14nginx 让访问带有/relid的地址返回404 ,例子 /relid-x-0.36-y-131.html-icode9专业技术文章分享
- 2024-08-14nginx 判断地址有/statics/的路径,指向到/home/html/statics/目录-icode9专业技术文章分享