500错误

编程入门 行业动态 更新时间:2024-10-05 17:28:03

500<a href=https://www.elefans.com/category/jswz/34/1771449.html style=错误"/>

500错误

访问网站提示500错误,通过查看日志,获得错误信息为:

对于上述错误网上很多人提到,大部分情况是在生产环境中由于并发太多造成的。解决办法就是修改配置文件中的worker_connections值,将其调大。但是今天在本机的nginx中配置一个proxy,完全没有外界的访问的情况也提示上述错误,试着修改worker_connections也没有解决问题。proxy配置大致如下:

[alert] 11679#0: *9189 1024 
worker_connections are not enough while connecting to upstream, 
client: 127.0.0.1, server: xxxingcn, 
request: "GET / HTTP/1.0", upstream: "http://127.0.0.1:80/", host: "xxxingcn"

原本的目的是想把所有请求xxxingcn代理到yyyingcn,也许你会纳闷,干嘛要这么麻烦,直接在第一个的server_name中添加xxxingcn不就完事。这里只是一个举例,由于正式环境下有特殊情况,不能那么配置,所有才会想到用proxy的方式。

server {listen       80;server_name  yyyingcn;location / {root   /var/www/netingcn;index  index.html index.php;}
}server {listen       80;server_name  xxxingcn;location / {proxy_pass              /;proxy_set_header        X-Real-IP $remote_addr;proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header        Host $http_host;}
}

上述配置造成的500错误可以肯定排除是worker_connections太小的原因,仔细配置,发现“proxy_set_header Host $http_host;”这个才是罪魁祸首,因为它造成死循环了,当请求xxx时,由于proxy到yyy,本来nginx是交给server yyy,来处理的,但是header里面的host还是xxx,nginx根据配置里面的server_name,找到 xxx,因此就显示了死循环,也就会报前面提到的那个错了。问题已经定位到了,解决就很简单,直接去掉proxy_set_header Host $http_host;这行配置就行了。

**注明文章出处:**.html

更多推荐

500错误

本文发布于:2024-02-13 11:32:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1758383.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:错误

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!