Nginx配置多个tomcat(多web Shiro项目)配置方案 --在外部直接通过一个域名 访问 同一台服务器,下面多个tomcat的多个分布式项目了。

首先,配置nginx的conf.xml


events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
       
server {
        listen 80;
        server_name bbb.qztc.edu.cn;
        location / {
          
            proxy_pass  http://127.0.0.1:1901/sso/;
        }
        #单点登录
		location /sso/ {
            proxy_pass  http://127.0.0.1:1901/sso/;
        }
        #平台基础
        location /manage/ {
            proxy_pass http://127.0.0.1:1902/manage/;
        }
        #资源
        location /resource/ {
            proxy_pass http://127.0.0.1:1903/resource/;
        }
        #交流
        location /discussion/ {
            proxy_pass http://127.0.0.1:1904/discussion/;
        }
        #实验
        location /vlab/ {
            proxy_pass http://127.0.0.1:1906/vlab/;
        }
        #实验
        location /vcoocResource/ {
            proxy_pass http://127.0.0.1:1910/vcoocResource/;
        }
        
    }
}

由于向外只开放了一个80端口,这里我只能这样配置。并通过主域名的二级域名来区分

这样配置还是不行的,因为我的是shiro项目,分布式项目的话,还需要确保cookie不被覆盖。在shiro配置文件中这样配置:

 <!--设置cookie-->
	 <!-- 会话Cookie模板 -->
    <bean id="sessionIdCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
        <constructor-arg value="sid"/>
        <!--设置Cookie名字,默认为JSESSIONID-->
        <property name="name" value="vcoocUserId" />
        
        <!-- cookie生效路径 -->
    	<property name="path" value="/"/>
		<!--设置主域名-->
		<property name="httpOnly" value="true"/>
        <!-- 配置存储rememberMe Cookie的domain为 一级域名 -->
        <property name="domain" value=".bbb.qztc.edu.cn"/>
    </bean>

这样就能在外部直接通过一个域名 访问 同一台服务器,下面多个tomcat的多个分布式项目了。

猜你喜欢

转载自my.oschina.net/u/3361262/blog/1813441