Nodejs 服务器上同时安装了Node和Nginx 如何使80端口跳转3000端口?

Nodejs 服务器上同时安装了Node和Nginx 如何使80端口跳转3000端口?

看了看网上的Nginx跳转代理= = 自己改总是说不对 求问下怎么改 直接访问域名就能使用Node

5 回复

当然可以。这个问题主要涉及到如何配置 Nginx 以便将传入的 HTTP 请求从 80 端口转发到 Node.js 应用程序运行的 3000 端口。以下是如何实现这一目标的具体步骤。

步骤1: 配置 Nginx

首先,你需要编辑你的 Nginx 配置文件。通常情况下,该文件位于 /etc/nginx/nginx.conf/etc/nginx/sites-available/default。你可以使用文本编辑器打开它,例如:

sudo nano /etc/nginx/sites-available/default

步骤2: 添加或修改 server 块

server 块中,确保你有如下配置来监听 80 端口,并将请求转发到 3000 端口:

server {
    listen 80;
    server_name yourdomain.com; # 将这里替换为你的域名或服务器IP地址

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

这里的 proxy_pass 指令告诉 Nginx 将所有传入的请求转发到本地运行的 Node.js 服务器(即 http://localhost:3000)。proxy_set_header 指令用于设置转发请求时需要保留的一些头部信息。

步骤3: 测试并重启 Nginx

完成上述配置后,你应该测试配置是否正确:

sudo nginx -t

如果一切正常,重启 Nginx 以应用更改:

sudo systemctl restart nginx

或者如果你使用的是旧版本的系统,可能需要使用:

sudo service nginx restart

结论

通过以上步骤,你应该能够成功地将所有发往 80 端口的请求重定向到正在 3000 端口上运行的 Node.js 应用程序。这样,用户可以直接通过域名访问你的应用程序,而无需知道具体的端口号。


server { listen 80; server_name xxxx.com; index index.html index.htm index.php default.html default.htm default.php;

	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:9101/;
   proxy_redirect off;

}

请问是不是前面有$的需要替换?替换成什么呢

就这样就行了. 楼上误导人.

要在Nginx服务器上配置从80端口到3000端口的跳转,你可以通过编辑Nginx的配置文件来实现。下面是一个简单的步骤和配置示例:

步骤1: 打开Nginx配置文件

通常,Nginx的主配置文件位于 /etc/nginx/nginx.conf/etc/nginx/conf.d/ 目录下的某个文件中。你可以使用以下命令打开该文件:

sudo nano /etc/nginx/nginx.conf

或者找到合适的站点配置文件(例如 /etc/nginx/sites-available/default):

sudo nano /etc/nginx/sites-available/default

步骤2: 配置反向代理

在相应的server块内添加或修改如下配置:

server {
    listen 80;
    server_name yourdomain.com;

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

上述配置中:

  • listen 80; 表示监听80端口。
  • server_name yourdomain.com; 应替换为你的实际域名。
  • proxy_pass http://127.0.0.1:3000; 将流量转发到本地运行的Node.js应用,该应用应该正在监听3000端口。

步骤3: 测试并重启Nginx

保存配置文件后,测试Nginx配置是否正确:

sudo nginx -t

如果一切正常,重启Nginx以应用更改:

sudo systemctl restart nginx

完成以上步骤后,当你通过浏览器访问你的域名时,Nginx会将请求转发到Node.js应用,后者正在监听3000端口。

回到顶部