# 1、nginx 代理
若绑定的域名为要所以https
协议,还需要添加 SSL 配置。
server{
listen 80 ssl;
# 添加SSL证书文件
ssl_certificate <文件地址>
ssl_certificate_key <文件地址>
# 服务器地址(本机)或绑定域名
server_name localhost;
}
# 多项目
- /conf/nginx.conf
user root
http{
# 项目一
server {
listen 80;
server_name localhost;
location / {
root /www/wwwroot/one;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:5151/;
}
}
# 项目二
server {
listen 90;
server_name localhost;
location / {
root /www/wwwroot/two;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:2424/;
}
}
}
# 多集群
- /conf/nginx.conf
user root
http{
# 小集群(weight表示权重)
upstream ruoyi {
server 192.168.31.101:8080 weight=5
server 192.168.31.102:8080 weight=5
}
# 项目
server {
listen 80;
server_name localhost;
location / {
root html;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ruoyi/;
}
}
}
# 2、pm2 管理
PM2 (opens new window) 是一个 Node.js 进程管理器,用于在 Node.js 应用程序的生产环境中管理进程
# 安装使用
回顾:使用 nodemon
# 安装
npm install nodemon -g
# 使用
npm install
nodemon ./src/main.js
提示
更多的,我们还可以采用编写 pm2 支持的 ecosystem.config.js
,代替启动命令
ecosystem.config.js
生成文件:
pm2 init simple
编写文件:
module.exports = {
apps: [
{
name: 'app1',
script: './app.js',
instances: 5, // 进程数
exec_mode: 'cluster', // 集群模式 --> 负载均衡
env: {
PORT: 3000
}
}
]
}
# 安装
npm install pm2 -g
pm2 -version
# 使用
npm install
pm2 start ./src/main.js --name projectName [-i 4]
# 【不使用 nodemon ./src/main.js】
# 其他
pm2 stop [projectName | 项目id]
pm2 delete [projectName | 项目id]
pm2 restart [projectName | 项目id]
# 查看信息、状态
# 查看已启动项目
pm2 list
# 实时监控
pm2 logs # 日志
pm2 monit # 进程状态和性能数据
# 某项目详细信息
pm2 show [projectName | 项目id | all]
# 开机自启动
# 1、步骤一
pm2 save # 保存当前PM2进程列表
pm2 startup # 生成PM2启动脚本
# 2、步骤二
pm2 save # 保存当前PM2进程列表
pm2 unstartup systemd # 删除初始化脚本
# 3、tomcat 容器
# 多项目
cd /usr/local/tomcat/apache-tomcat-8.5.83/
mkdir webapps1
mkdir webapps2
cd conf/
vim server.xml
- /conf/server.xml
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<!-- 项目一 -->
<Service name="Catalina1👀">
<Connector port="81👀" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina1👀" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps1👀"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
<!-- 项目二 -->
<Service name="Catalina2">
<Connector port="82" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina2" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps2"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>