nginx反向代理tomcat

nginx反向代理tomcat

在同一台机器布署同一个应用不同的实例,使用两个tomcat,然后用nginx反向代理这两个tomcat应用

修改tomcat

tomcat默认的端口是8080,因为在同一台机器上,所以需要修改其中一个tomcat中的端口。进入tomcat解压的目录,这里是/opt/softinstall/tomcat-wpb/conf,找到文件server.xml,修改:

<?xml version="1.0" encoding="UTF-8"?>

<!-- 这里的端口也要修改!! -->
<Server port="8015" shutdown="SHUTDOWN">
  <!-- 省略... -->
  <Service name="Catalina">

    <!-- 这里的端口也要修改!! -->
    <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <!-- 这里的端口也要修改!! -->
    <Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />

  </Service>
</Server>

Nginx配置

修改nginx.conf文件:

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
	# 负载机器
    upstream admin.com {
    	# ip_hash;
    	# 负载两台应用
    	server    127.0.0.1:8080  weight=10;
    	server    127.0.0.1:8081  weight=10;
    }

    server {
        listen       80;
        server_name  localhost 127.0.0.1;

  	location /admin {
    	    port_in_redirect on;
    	    # 负载配置
      		proxy_pass http://admin.com$request_uri;
      		proxy_redirect  off;
      		proxy_set_header Host $host;
      		proxy_set_header X-Real-IP $remote_addr;
      		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      		add_header backendIP $upstream_addr;
      		add_header backendCode $upstream_status;
  	}

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /opt/soft/h5/;
    }

}

结果

当访问http://127.0.0.1/admin/login.jsp时,就行负载到其他80808081这两个应用的其中一个了。

但是,这样有一个弊端,就是tomcat session不一致的问题。当登陆页面是来自8080,登陆成功后,一般会跳转到8080应用中的成功页面,但是nginx又反向代理登陆成功主页来自8081页面,在这个应用中,用户是没有登陆的,所以用户又要重新登陆了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值