我有一个Nginx服务器托管一个Web应用程序,直接访问时运行良好。其配置如下:
server {
listen 8000 default_server;
listen [::]:8000 default_server ipv6only=on;
root /data/www/ ;
server_name server1.com;
location / {
try_files $uri $uri/ =404;
}
location /app/ {
}
}
现在我需要从另一个Nginx服务器上提供此应用程序,因此我设置了反向代理,如下所示。
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /data/www/ ;
server_name server2.com;
location / {
try_files $uri $uri/ =404;
}
location /app/ {
proxy_pass http://server1.com:8000/app/;
}
}
当我从server2访问该应用程序时,例如当我访问http: server2.com/app/css/app.css时,我会收到以下错误:
[error] 6601#0: *1 open() "/data/www/app/css/app.css" failed (2: No such file or directory)
但在server1日志中没有错误。为什么nginx在server2中查找静态文件,而我已将其设置为反向代理到server1?同样的设置在apache中运行良好,如下所示:
ProxyPass /app/ http:server1:8000/app/ ProxyPassReverse /app/ http:server1:8000/app/
我错过了什么吗?
/app/css/app.css
匹配,并防止代理到server1。 - Alexey Ten