我正在尝试将nginx服务器配置为充当节点应用程序的代理。我想要的是将nginx提供的任何静态文件和所有其他路径转发到Node.js应用程序(包括/ path)。
我看过以下问题/答案:How to serve all existing static files directly with NGINX, but proxy the rest to a backend server.
按照指示,我已按照以下方式配置了我的网站配置:
server {
server_name subdom.domain.com;
listen 80;
location / {
root /var/www/application/public_html;
try_files $uri $uri/ @application;
}
location @application {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:3000;
}
}
然而,当浏览到subdom.domain.com/时,我得到403 Forbidden。我猜这是因为nginx无法找到默认文档,但我想将默认文档发送到代理,任何想法如何做到这一点?
答案 0 :(得分:2)
这应该做的工作:
server {
server_name subdom.domain.com;
listen 80;
location / {
try_files $uri;
proxy_set_header X - Real - IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;
proxy_pass http: //localhost:3000;
}
}
对于每个网址的简要说明,它会找到一个文件(try_file
),以及其尝试代理的其他内容