我得到的似乎只是一个常见的操作系统级别“太多打开的文件”错误,堆栈溢出已经存在解决方案。
我要确认的是,我并没有强制使用奇怪的proxy_pass循环。
当我去myapp.com
时,所有内容都按预期加载。
当我转到customdomain.com
时,我得到500,日志显示为Too many open files
。
我担心设置Host
标头的底部的proxy_pass会导致请求总是返回到同一个服务器块。
更奇怪的是,当我有一个盒子(即proxy_pass将请求发送到同一个盒子)时,我得到500错误。但是,如果我将proxy_pass后端移动到google.com,那么代理就可以了。
我该怎么做才能确定这是我的VM的操作系统级别问题,还是我强行重定向?
以下是配置:
server {
listen 80 default;
server_name myapp.com;
root /usr/share/myapp/;
index index.php index.html;
location / {
try_files $uri $uri/ /control.php?$uri/;
}
}
server {
listen 80;
server_name customdomain.com;
location / {
resolver 8.8.8.8 valid=10s;
set $backend "http://myapp.com";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass $backend;
}
}