首先,配置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的多个分布式项目了。