前端(nginx 配置文件)
/usr/local/src/screen/dist 为静态文件的托管的路径
server {
listen 8001;
server_name localhost;
root /usr/local/src/screen/dist;
location / {
try_files $uri $uri/ /index.html;
}
location /dist {
try_files $uri $uri/ /dist/index.html;
}
}
Java后端部署(ruoyi 为例)
Java jar包运行
nohup java -jar ruoyi-admin.jar > ruoyilogout.log 2>&1 &
接口转发请求
# 接口转发到8080端口下
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:8080/;
}
其他部署方案
1 nohup
1.1 基本命令 nohup node server.js&
注意,运行此命令时需要在server.js 目录下方可;
1.2 用过的一些命令-多个端口启动
cd /home/node && nohup node app.js -lp 3001 >log1.log &
cd /home/node && nohup node app.js -lp 3002 >log2.log &
cd /home/ && nohup node app.js -lp 3003 >log3.log &
1.3 个人使用过程中有意外退出的情况
一般使用第二种方式forever;
2 forever,forever功能很强大,也很多,此处只列出目前用到的一些基本的
2.1 安装forever
npm install forever -g
2.2 启动服务
service forever start
此处可能会报一些错误,一般可以不用理会,主要是看它的命令是否执行;
2.3 使用forever 启动js
forever start app.js
启动完可以跟一句 forever list 查看启动情况
2.4 停止js文件
forever stop app.js
2.5 输出日志
forever start -l forever.log -o out.log -e err.log app.js
输出日志的命令,注意日志的文件名不要重复,否则会报错,其中forever.log 会在/root/.forever/目录下;
查看运行情况 使用 tail -f out.log 即可;
其实默认情况下/root/.forever/还是会生成日志文件的,只不过日志的名字是随机字符串,不好管理,只可根据时间做判断;
2.6 带参数启动
forever start app.js -tu http://127.0.0.1:8181/javaweb/ -lp 3001
forever start app.js -tu http://127.0.0.1.53003/javaweb/ -lp 3002
自然,参数的具体含义需要在代码中约定好的;
2.7 重启js文件
forever restart app.js
2.8 查看正在运行的进程
forever list
3 PM2
文档地址:http://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/
nodejs如果只是以单线程的方式运行,无法充分利用多核CPU的性能;这个时候使用PM2就可以很容易的实现多进程启动;
他可以在一个端口下启动指定数量的node进程来充分利用CPU的性能;
记录几个简单的命令;
3.1 安装
$ npm install pm2@latest -g
# or
$ yarn global add pm2
3.2 启动
$ pm2 start app.js
$ pm2 start app.js -i 2 启动2个进程
$ pm2 start app.js -i max 根据有效CPU数目启动最大进程数目
3.3 停止
$ pm2 stop all 停止所有进程
$ pm2 stop 0 停止指定的进程
3.4 重启
$ pm2 restart all 重启所有进程
$ pm2 restart 0 重启指定的进程
3.5 杀死进程
$ pm2 delete 0 杀死指定的进程
$ pm2 delete all 杀死全部进程
3.5 查看进程状态
$ pm2 list 查看启动的进程状态
$ pm2 logs 显示所有进程日志
$ pm2 monit 监视每个node进程的CPU和内存的使用情况
- 反向代理HTTPS
springboot 项目配置 https
@Configuration
public class HttpsConfig {
@Bean
public TomcatServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(createHttpConnector());
return tomcat;
}
private Connector createHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(80);
connector.setSecure(false);
connector.setRedirectPort(443);
return connector;
}
}
springboot配置文件
server.port=443
server.ssl.key-store=/path/to/your/ssl/keystore.p12
server.ssl.key-store-password=your_store_password
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=your_key_alias
域名为your_domain.com。
Nginx已配置为使用SSL/TLS证书,在此示例中使用了一个假想的证书。
Jar包应用程序运行在本地端口8080上,并使用HTTP协议。
当Nginx配置完成后,通过以下方式测试是否能够成功访问您的Jar包应用程序:
通过浏览器访问其他页面或资源,以确保Nginx正确代理到Jar包应用程序。
nginx配置反向代理
server {
listen 80;
server_name your_domain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name your_domain.com;
ssl_certificate /path/to/your/ssl/cert;
ssl_certificate_key /path/to/your/ssl/key;
location / {
proxy_pass http://localhost:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
一、查看 nginx 安装目录
ps -ef | grep nginx
二、查看配置文件 nginx.conf 路径
nginx -t
- 这条命令也可以用于检查配置文件是否正确。
- 当然也可以使用 find 命令进行文件查找
- 从 / 根目录下查找文件名为 nginx.conf 的文件
find / -name nginx.conf
- 从 /etc 目录下查找文件名为 nginx.conf 的文件
find /etc -name nginx.conf
- 端口查杀
netstat -tunlp |grep 8888