首页主机资讯Node.js在CentOS上的网络配置指南

Node.js在CentOS上的网络配置指南

时间2025-10-22 16:54:03发布访客分类主机资讯浏览1308
导读:Node.js在CentOS上的网络配置指南 1. 安装Node.js环境 在配置网络前,需先安装Node.js及npm(Node包管理器)。推荐通过NodeSource存储库安装特定版本(如14.x),避免系统默认版本过旧: # 导入No...

Node.js在CentOS上的网络配置指南

1. 安装Node.js环境

在配置网络前,需先安装Node.js及npm(Node包管理器)。推荐通过NodeSource存储库安装特定版本(如14.x),避免系统默认版本过旧:

# 导入NodeSource GPG密钥并设置存储库
curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -
# 安装Node.js及npm
sudo yum install -y nodejs
# 验证安装
node -v  # 查看Node.js版本
npm -v   # 查看npm版本

2. 配置网络接口(静态IP/端口)

2.1 配置静态IP(可选)

若需为服务器分配固定IP,编辑网络配置文件(如ifcfg-ens33,路径/etc/sysconfig/network-scripts/):

DEVICE=ens33       # 网卡名称(通过`ip a`命令查看)
BOOTPROTO=static   # 改为静态IP
IPADDR=192.168.1.100  # 静态IP地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.1.1   # 网关地址
DNS1=8.8.8.8       # DNS服务器
DNS2=8.8.4.4
ONBOOT=yes         # 开机自启

修改后重启网络服务:

# CentOS 7(使用network服务)
sudo systemctl restart network
# CentOS 8及以上(使用NetworkManager)
sudo nmcli connection down ens33 &
    &
     sudo nmcli connection up ens33

2.2 配置Node.js应用监听端口

在Node.js代码中,通过app.listen()指定监听的IP和端口。若需允许外部访问,必须将IP设为0.0.0.0(监听所有网络接口):

const express = require('express');
    
const app = express();
    
const port = 3000;
     // 自定义端口(如8080、3000等)

app.get('/', (req, res) =>
 {
    
  res.send('Hello World from Node.js on CentOS!');

}
    );
    

// 监听所有网络接口的指定端口
app.listen(port, '0.0.0.0', () =>
 {

  console.log(`Server is running at http://0.0.0.0:${
port}
    `);

}
    );

3. 防火墙配置(允许流量通过)

CentOS默认使用firewalld作为防火墙,需开放Node.js应用的端口(如3000):

# 开放指定端口(3000)
sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
# 重新加载防火墙配置(使更改生效)
sudo firewall-cmd --reload
# 验证端口是否开放
sudo firewall-cmd --zone=public --query-port=3000/tcp  # 返回yes表示成功

若需开放HTTP(80)/HTTPS(443)服务(如反向代理场景),可直接添加服务:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

4. SELinux配置(若启用)

若系统启用了SELinux(默认开启),可能会阻止Node.js应用接受外部连接。可通过以下步骤调整:

4.1 临时设置为宽容模式(测试用)

sudo setenforce 0  # 关闭SELinux(重启后恢复)

若应用能正常访问,说明是SELinux导致的问题,需进一步配置永久策略。

4.2 创建自定义SELinux策略

允许Node.js应用监听指定端口(如3000):

# 安装policycoreutils-python-utils(用于semanage)
sudo yum install -y policycoreutils-python-utils
# 将端口添加到http_port_t类型(允许Web服务使用)
sudo semanage port -a -t http_port_t -p tcp 3000
# 验证端口是否添加成功
sudo semanage port -l | grep http_port_t

5. 使用反向代理(生产环境推荐)

为提升安全性、支持SSL加密及负载均衡,建议使用Nginx作为反向代理。

5.1 安装Nginx

sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx  # 开机自启

5.2 配置Nginx反向代理

编辑Nginx配置文件(如/etc/nginx/conf.d/nodejs.conf),添加以下内容:

server {
    
    listen 80;
                      # 监听80端口(HTTP)
    server_name yourdomain.com;
 # 替换为你的域名或公网IP

    location / {
    
        proxy_pass http://localhost:3000;
      # 转发到Node.js应用(监听3000端口)
        proxy_http_version 1.1;
    
        proxy_set_header Upgrade $http_upgrade;
    
        proxy_set_header Connection 'upgrade';
    
        proxy_set_header Host $host;
    
        proxy_cache_bypass $http_upgrade;

    }

}
    

保存后重新加载Nginx:

sudo systemctl reload nginx

5.3 域名解析(可选)

若需通过域名访问,需在DNS提供商处添加A记录,将域名指向服务器公网IP。

6. 验证配置

  1. 检查Node.js应用是否运行

    curl http://localhost:3000  # 本地访问
    

    若返回Hello World,说明应用正常运行。

  2. 检查防火墙是否允许流量

    curl http://<
        服务器公网IP>
        :3000  # 外部访问
    

    若返回正常响应,说明防火墙配置正确。

  3. 检查反向代理是否生效
    若配置了Nginx,通过域名访问(如http://yourdomain.com),应显示Node.js应用的响应。

通过以上步骤,即可在CentOS上完成Node.js的网络配置,使其能够通过IP或域名对外提供服务。根据实际需求,可进一步优化配置(如SSL加密、负载均衡等)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Node.js在CentOS上的网络配置指南
本文地址: https://pptw.com/jishu/732455.html
centos防火墙如何使用firewalld服务 在CentOS上如何实现Node.js的高可用

游客 回复需填写必要信息