前段时间因为对Tomcat不太熟悉,所以还不敢将其部署到我的阿里云服务器上,所以就用着新浪云计算的云容器来部署JSP的war文件。在我的阿里云CentOS的服务器上安装好Java环境还有Tomcat之后就迫不及待的将以前的网络应用部署上去,我的这个云应用是为了实现微信公众号的业务逻辑的,所以微信服务器有一个认证的过程,但是一直认证失败。最后看到原来微信服务器只支持80端口和443端口的网络连接。
我的服务器上还有一个代理服务器是Nginx,它上面还部署着一个网站,所以我就想能不能将tomacat的8080端口代理到80端口上,网上一搜还真的可以呢!所以记录一下:
参考链接
场景:项目1放在tomcat1中,项目2放在tomcat2中,两个tomcat放在同一台服务器上,需要共享80端口访问
注意:这里和集群部署是不同的,集群部署是一个项目放在多个tomcat中。这里通过nginx做反向代理。然后修改Nginx的配置文件。
server {
listen 80;
server_name 192.168.1.197;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#加下面的配置
location /server1{
proxy_pass http://192.168.1.197:8081/server1;#主要是这里,这是tomcat1的端口和项目
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
root html;
index index.html index.htm;
}
location /server2{
proxy_pass http://192.168.1.197:8082/server2;#主要是这里,这是tomcat2的端口和项目</span>
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
root html;
index index.html index.htm;
}
我的编写是
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80; #监听端口
server_name liefyuan.top; #域名
#这里是我部署的一个网站的配置,后端是Python写的Flask框架
location / {
include uwsgi_params;
uwsgi_pass unix:/home/three/main.sock;
uwsgi_param UWSGI_PYHOME /root/.virtualenvs/env; # 指向虚拟环境目录
uwsgi_param UWSGI_CHDIR /home/three; # 指向网站根目录
uwsgi_param UWSGI_SCRIPT main:app; # 指定启动程序
}
location /static {
alias /home/three/static;
}
#这里是我部署在Tomcat上的应用,那个war包名就叫liefyuan3.0_war
location /liefyuan3.0_war{
proxy_pass http://localhost:8080/liefyuan3.0_war;#主要是这里,这是tomcat1的端口和项目
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
root html;
index index.html index.htm;
}
然后通过微信验证,完美通过验证!终于可以放弃新浪云的服务器了(好贵啊!)。