NodeJS与Nginx共用80端口

本文介绍如何通过Nginx反向代理,让NodeJS应用监听80端口,包括配置Nginx代理规则及静态资源路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Apache和Nginx通常都会使用默认的HTTP请求的80端口。但我们知道,一旦开启了Nginx后,NodeJS再去监听80端口就会发生错误。那么,我们该如何解决这个问题呢?

接下来,以最近发布的一个个人博站为例。


在我的阿里云服务器上已经开启了Nginx服务,并且该域名下已经有对应的项目在跑。而此时,我的博站是采用NodeJS编写的,监听的端口是8090端口。要实现NodeJS能够监听到80端口,可以采取的一种简单的方法是,将80端口反向代理到8090的端口上,这样,所有发送到80端口的请求都会重定向到8090;


首先,我在阿里云的域名解析上先配置了kingsley.allenzhan.top 这个子域名。然后在我的Nginx里的vhost里创建了一个king.conf文件,并写入相应的配置。

如下



其中

location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_pass http://127.0.0.1:8090/;
            proxy_set_header X-NginX-Proxy true;
        }

是将发往 kingsley.allenzhan.top 的请求 重定向到 NodeJS监听的 8090 端口上。


但是,我们会发现,路由是成功了,但是静态文件却找不到了。所以,还需要配置以下的路径

 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            root    /application/nginx/html/king/blogs/;
            expires 30d;

        }

 location ~ .*\.(js|css)?$
        {
            root    /application/nginx/html/king/blogs/;
            expires 12h;
        }

/application/nginx/html/king/blogs/这个路径是存放博客项目的静态资源的位置。


写入配置后,保存。然后使用命令nginx -s reload 重启Nginx。这样,再访问kingsley.allenzhan.top就可以看到我们不用再输入端口8090 也能够实用默认的80端口访问我们的项目了。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值