因为喜欢使用jar包发布项目,单个项目的启停不会影响其他项目正常运行,又不喜欢为每个项目都配置域名,所以想到了这样的部署方案:
项目名 端口 访问域名 project1 10001 http://xxx.com/project1 project2 10002 http://xxx.com/project2
主要使用Nginx的location配置过滤,参考教程:
主要配置如下:
server {
listen 80;
server_name xxx.com;#域名
location /project1/ { # 项目一
proxy_pass http://10.10.31.62:10001; # 项目1对应的ip和端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /project2/ {
proxy_pass http://10.10.31.62:10002; # 项目2对应的ip和端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
注意:
常用命令:
lsof -i:8080 查看端口占用
java -jar demo.jar - -spring.config.location=application.yml 启动项目时加载其他的yml文件
iptables -L -n 查看防火墙开发端口
开发端口步骤
# 添加
/sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
# 保存
/etc/rc.d/init.d/iptables save
# 重启服务
service iptables restart