Nginx搭建test服务器
创建test域名
进入阿里云添加解析
创建域名:test.xxxxx.com
服务器复制项目代码
新建目录,Git拉取项目代码,安装上插件包
修改配置文件,启动测试服务
修改配置文件“服务器接口”
开启服务pm2 start app.js --name "test"
表格含义:
列名 | 含义说明 |
---|---|
id | 进程在 PM2 中的 ID(用于管理该进程) |
name | 进程的名称(通过 --name 参数设置) |
namespace | 所属的命名空间,通常用于分组管理多个服务 |
version | 应用的版本号(如果定义了 package.json 中的 version 字段) |
mode | 启动模式,常见有 fork (单进程)或 cluster (多进程集群) |
pid | 操作系统中分配给该进程的 PID |
uptime | 进程已运行的时间 |
↺(restart) | 重启次数(服务异常或手动重启时会增加) |
status | 当前状态,如 online 、stopped 、errored 等 |
cpu | 当前进程的 CPU 使用率 |
mem | 当前进程的内存使用量(通常以 MB 显示) |
user | 启动该进程的用户 |
watching | 是否启用了 watch 模式(文件变动自动重启) |
设置Nginx代理
进入Nginx服务目录:/etc/nginx/
目录说明:
名称 | 类型 | 作用 |
---|---|---|
cert/ | 文件夹 | 通常用于存放 SSL 证书(可自建) |
conf.d/ | 文件夹 | 存放自定义的虚拟主机配置,所有 .conf 文件会被 nginx.conf 引入 |
modules-available/ | 文件夹 | 所有已安装模块的配置存放处 |
modules-enabled/ | 文件夹 | 启用的模块(通常是链接自 modules-available ) |
sites-available/ | 文件夹 | 所有可用站点配置(推荐将你的网站配置放这里) |
sites-enabled/ | 文件夹 | 启用的网站配置(通过软链接连接 sites-available 中的配置) |
snippets/ | 文件夹 | 存放通用配置片段,比如 ssl-params.conf ,可在多个站点复用 |
文件说明:
文件名 | 作用 |
---|---|
nginx.conf | 主配置文件,入口配置,通常会包含其它配置路径(如 conf.d/*.conf 、<font style="color:#DF2A3F;">sites-enabled</font>/* ) |
mime.types | MIME 类型映射表,用于告诉浏览器如何处理不同类型的文件 |
fastcgi.conf / fastcgi_params | 配置 PHP FastCGI 的参数 |
koi-utf / koi-win / win-utf | 俄文字符集支持(基本不用动) |
proxy_params | 定义反向代理时常用的一些参数(如设置 X-Forwarded-For 等) |
scgi_params / uwsgi_params | 与 SCGI、uWSGI 协议集成时使用的参数配置 |
<font style="color:#DF2A3F;">test.xxxx.com</font>
建一个反向代理服务,在 <font style="color:#DF2A3F;">sites-available/</font>
中添加配置文件,通过软链接放入 <font style="color:#DF2A3F;">sites-enabled/</font>
。
# 编辑test服务
sudo nano /etc/nginx/sites-available/test.xxxx.com
# 然后软链接
sudo ln -s /etc/nginx/sites-available/test.xxxx.com /etc/nginx/sites-enabled/# 验证 Nginx 配置文件
sudo nginx -t
# 重载 Nginx 配置
sudo systemctl reload nginx# 启动 Nginx 服务(如果 Nginx 未启动)
sudo systemctl start nginx
# 系统启动时自动启动 Nginx
sudo systemctl enable nginx
server {listen 80;listen [::]:80;server_name serve.xxxxx.com;location / {proxy_pass http://127.0.0.1:3000; # 代理到本地 Node.js 服务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;}location /ws/ {proxy_pass http://127.0.0.1:8088;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;}# 如果没有 HTTPS,自动跳转 HTTPSif ($scheme = http) {return 301 https://$host$request_uri;}
}server {listen 443 ssl http2;listen [::]:443 ssl;server_name serve.xxxx.com;# SSL 证书ssl_certificate /etc/nginx/cert/serve.xxxxx.com/serve.xxxxx.com.pem; # cert 一般是证书存放目录ssl_certificate_key /etc/nginx/cert/serve.xxxxx.com/serve.xxxxx.com.key; # key 文件ssl_session_cache shared:SSL:1m;ssl_session_timeout 1h;# Nodejs 代理配置location / {proxy_pass http://127.0.0.1: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;}# WebSocket 代理配置location /ws/ {proxy_pass http://127.0.0.1:8088;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;}
}
注意:websokert一定不要多配置,否则会出现冲突!!!推荐配置在主配置文件上。
nano 怎么保存:
Ctrl + O 保存,Enter 确认,Ctrl + X 退出。
错误日志位置<font style="color:#DF2A3F;">/etc/nginx/nginx.conf</font>
主配置文件中:
到此,配合 pm2
就可以控制自己的代理服务了。