温馨提示×

Node.js 在 Linux 上如何配置 Nginx

小樊
34
2025-12-16 10:34:22
栏目: 编程语言

在 Linux 上配置 Nginx 以与 Node.js 应用程序一起工作,通常涉及以下步骤:

  1. 安装 Node.js: 如果你还没有安装 Node.js,你可以使用包管理器来安装它。例如,在基于 Debian 的系统上,你可以使用以下命令:

    sudo apt update
    sudo apt install nodejs npm
    

    对于基于 Red Hat 的系统,如 CentOS 或 Fedora,你可以使用:

    sudo yum install nodejs npm
    

    或者,如果你使用的是 dnf:

    sudo dnf install nodejs npm
    
  2. 安装 Nginx: 同样,你可以使用包管理器来安装 Nginx。在基于 Debian 的系统上:

    sudo apt install nginx
    

    在基于 Red Hat 的系统上:

    sudo yum install nginx
    

    或者使用 dnf:

    sudo dnf install nginx
    
  3. 配置 Nginx: 安装 Nginx 后,你需要配置它以便将请求转发到你的 Node.js 应用程序。这通常涉及编辑 Nginx 的配置文件。在大多数 Linux 发行版中,主配置文件位于 /etc/nginx/nginx.conf,但你可能需要编辑 /etc/nginx/sites-available/ 目录下的一个或多个文件。

    以下是一个基本的 Nginx 配置示例,它将所有传入的请求转发到运行在本地的 3000 端口上的 Node.js 应用程序:

    server {
        listen 80;
        server_name example.com; # 替换为你的域名或公网 IP
    
        location / {
            proxy_pass http://localhost: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;
        }
    }
    

    example.com 替换为你的域名或服务器的公网 IP 地址。如果你正在使用本地开发,你可以将 example.com 替换为 localhost127.0.0.1

  4. 激活配置: 在某些系统上,你可能需要创建一个符号链接,将你的站点配置从 /etc/nginx/sites-available//etc/nginx/sites-enabled/ 目录中,以便 Nginx 加载它。

    sudo ln -s /etc/nginx/sites-available/your-config /etc/nginx/sites-enabled/
    

    替换 your-config 为你的配置文件名。

  5. 测试配置并重启 Nginx: 在重新启动 Nginx 之前,你应该测试配置文件是否有语法错误:

    sudo nginx -t
    

    如果测试成功,重启 Nginx 以应用更改:

    sudo systemctl restart nginx
    

    或者,如果你使用的是较旧的系统初始化系统,你可能需要使用:

    sudo service nginx restart
    
  6. 防火墙设置: 如果你的服务器运行的是防火墙,确保开放 HTTP (80) 和 HTTPS (443) 端口:

    sudo ufw allow 'Nginx Full'
    

    或者,如果你使用的是 iptables

    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    

完成这些步骤后,你的 Node.js 应用程序应该可以通过 Nginx 访问了。记得将 example.com 替换为你的实际域名,并根据需要调整配置文件中的其他设置。

0