用nginx配置某个域名的80端口,如果根路径获取不到静态文件则转发到nodejs提供服务的9999端口,如何实现?

发布于 2022-09-01 21:58:29 字数 1003 浏览 15 评论 0

我现在写的代码如下,不管用。
是需要写rewrite规则,用正则表达式,或者if之类的?

以及:如果在nodejs中配置静态文件目录,app.use(express.static(__dirname));这样,性能上会比nginx直接判断处理低吗?

server {
        listen 80;
        server_name xxx.wechattest.com;
        root /path/to/static/root;
        index index.html;
        
        location / {

                proxy_pass http://127.0.0.1:9999;//nodejs service is running on port 9999

                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                client_max_body_size 100M;
                client_body_buffer_size 1m;
                proxy_intercept_errors on;
                proxy_buffering off;
                proxy_buffer_size 128k;
                proxy_buffers 256 16k;
                proxy_busy_buffers_size 256k;
                proxy_temp_file_write_size 256k;
                proxy_max_temp_file_size 0;
                proxy_read_timeout 300;
        }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

始终不够爱げ你 2022-09-08 21:58:29
location / {
    try_files $uri @nodejs;
}

location @nodejs {

                proxy_pass http://127.0.0.1:9999;//nodejs service is running on port 9999

                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                client_max_body_size 100M;
                client_body_buffer_size 1m;
                proxy_intercept_errors on;
                proxy_buffering off;
                proxy_buffer_size 128k;
                proxy_buffers 256 16k;
                proxy_busy_buffers_size 256k;
                proxy_temp_file_write_size 256k;
                proxy_max_temp_file_size 0;
                proxy_read_timeout 300;
        }
我还不会笑 2022-09-08 21:58:29

你设置一下404状态时转发。另外,你现在的配置是直接使用了反向代理,所有到80端口的都转向9999端口的代理服务器了。

夏至、离别 2022-09-08 21:58:29

可以使用try_files 或者 error_page两个命令都能实现你要的效果。

同时还可以使用proxy_store实现完全静态化页面。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文