我在nginx中有下面的.conf来平衡服务器a和b:
upstream myapp { server a.myapp.com; server b.myapp.com; } server { listen 80; server_name myapp.com; location / { proxy_pass http://myapp; } }
和两个服务器与PHP 7和laravel运行我的应用程序,在同一个nginx内。
通过这个configuration,主机头变成“myapp”,laravel在一些URL系统中使用它来进行资产和链接。
正如文档中所述,我使用了proxy_set_header指令,如下所示:
upstream myapp { server a.myapp.com; server b.myapp.com; } server { listen 80; server_name myapp.com; location / { proxy_pass http://myapp; proxy_set_header Host $host; #this causes too many open files } }
但它会导致nginx日志中的“打开的文件太多”,并且请求永远不会结束。
我search了“太多的打开的文件”的错误,并提出了增加限制解决scheme,但在这种情况下明显不起作用。 也许有一些无限循环,我没有看到?
我也尝试在每个应用程序.conf中写入Host头文件,但是头文件不是以这种方式写的:
fastcgi_pass_header "Host myapp.com"; proxy_set_header Host "myapp.com"; add_header Host "myapp.com";