您如何从充当 nodejs 服务器的反向代理的 nginx 服务器提供静态文件? [英] How do you serve static files from an nginx server acting as a reverse proxy for a nodejs server?

查看:31
本文介绍了您如何从充当 nodejs 服务器的反向代理的 nginx 服务器提供静态文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我当前的 nginx 配置是这样的:

My current nginx config is this:

upstream nodejs {
    server 127.0.0.1:3000;
}

server {
    listen 8080;
    server_name localhost;
    root ~/workspace/test/app;
    index index.html;

    location / {
        proxy_pass http://nodejs;
        proxy_set_header Host $host ; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

我对 nginx 非常陌生,但至少我知道 nginx 在提供静态文件方面比 node/express 更好.如何配置服务器以便 nginx 提供静态文件?

I'm very very new to nginx, but at the very least I know that nginx is better than node/express at serving static files. How can I configure the server so that nginx serves the static files?

推荐答案

我使用这个新配置解决了这个问题:

I solved it using this new configuration:

upstream nodejs {
    server localhost:3000;
}

server {
    listen 8080;
    server_name localhost;
    root ~/workspace/test/app;

    location / {
        try_files $uri @nodejs;
    }

    location @nodejs {
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_pass http://nodejs;
        proxy_set_header Host $host ; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

感谢以下 Stack Overflow 帖子:

Thanks to the following Stack Overflow post:

如何直接使用 NGINX 提供所有现有的静态文件,但将其余的代理到后端服务器.

这篇关于您如何从充当 nodejs 服务器的反向代理的 nginx 服务器提供静态文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆