本文最后更新于:2024年4月25日 上午
操作系统:
Windows11
- ECS:
CentOs Stream 9
远程连接
ssh连接服务器
1
| ssh ecs-user@xxx.xxx.xxx.xxx
|
安装nginx
1 2
| sudo -i sudo yum update
|
安装
检测是否安装成功
启动
此时打开ip地址
应看到展示的测试页
Nginx常用指令
1 2 3 4
| service nginx start nginx -s reload nginx -s stop ps -ef | grep nginx
|
文件上传
Windows
1 2 3 4 5 6 7
| scp <windows文件路径> <服务器名>@<IP地址>:/{{ 保存路径 }}
scp -r ./dist/* admin@1.2.3.4:/usr/share/nginx/html
scp ./dist root@123.45.67.89:/usr/share/nginx/html
|
若服务器登录名不是root
会提示权限不够
解决:
1 2 3 4
| sudo -i chmod 777 /usr/share/nginx/html/dist
|
编辑配置文件
单应用
1
| sudo vim /etc/nginx/nginx.conf
|
修改server属性
etc/nginx/nginx.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| server { listen 80; listen [::]:80; server_name xxx.xxx.xxx.xxx; root /usr/share/nginx/html/dist; try_files $uri $uri/ /index.html;
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html; location = /404.html { }
error_page 500 502 503 504 /50x.html; location = /50x.html { } }
|
多应用
可以使用nginx
将不同域名
或路由
转发至其它端口
etc/nginx/nginx.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| server { }
server { listen 80; server_name todo.qingshaner.com; location / { proxy_pass http://localhost:3000; } }
server { listen 3000; server_name 1.2.3.4; root /usr/share/nginx/html/todo; location / {} }
|
Nodejs服务
启动Node服务
1
| sudo dnf install nodejs -y
|
校验是否安装成功
因为使用node main.js
使用时当窗口关闭时服务也关闭
使用pm2
启服务
使用pm2 -v
命令提示not found,因为环境变量没有记录
Centos Stream 9
安装目录在/usr/local/bin
1 2
| cd /etc/profile.d sudo vim npm.sh
|
etc/profile.d/npm.sh
1 2
| PATH=$PATH:/usr/local/bin export PATH
|
:wq
保存后刷新一下环境变量
此时使用pm2 -v
就有了
pm2
常用指令
1 2 3 4 5
| pm2 start main.js
pm2 stop main.js
pm2 ls
|
nginx配置
etc/nginx/nginx.conf
1 2 3 4 5 6 7
| server { listen 80; server_name api.qingshaner.com; location / { proxy_pass http://localhost:8081; } }
|
配置HTTPS
去阿里云域名控制台申请并下载nginx
证书文件
etc/nginx/nginx.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| http { server { listen 443 ssl; server_name todo.qingshaner.com; try_files $uri $uri/ /index.html; ssl_certificate /etc/nginx/ssl/todo/todo.pem; ssl_certificate_key /etc/nginx/ssl/todo/todo.key;
ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;
location / { proxy_pass http://localhost:7348; } }
server { isten 80; server_name todo.qingshaner.com; rewrite ^(.*) https://$server_name$1 permanent; }
server { listen 7348; server_name 1.2.3.4; root /usr/share/nginx/Vue3-Todo; location / { try_files $uri $uri/ @router; index index.html index.htm; } location @router { rewrite ^.*$ /index.html last; } } }
|