Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
我们这里就不对Nginx 过多介绍,我们通过简单的工程例子来了解Nginx的过人之处。
要工程请联系qq(1132451388)
开发工具 eclipse 轻量级服务器tomcat7.负载均衡Nginx
一、测试web 工程项目
1.新建web project:itNginxDemo
WebContent 新建页面 index.jsp ,seesionshare.jsp
index.jsp 内容如下:
<body>
<span> second-server-tomcat-AAAAAA,当前的session</span> <hr>
<a href ="seesionshare.jsp">向session放个数据</a> <hr>
当前session数据是:<%= session.getAttribute("data") %>
</body>
seesionshare.jsp 内容如下:
<body>
<% session.setAttribute("data", "sessiondataA"); %>
jsp:forward page="index.jsp"></jsp:forward>
/body>
web.xml 加上 <distributable/> 为了session 共享
二、修改 tomcat 文件配置
tomcatA server.xml
<Server port="8115" shutdown="SHUTDOWN">
<Connector port="7070" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
<!-- 为了session 共享 此共享是以广播方式不推荐,推荐用redis--->
<Engine name="Catalina" defaultHost="localhost"> 下增加
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4001"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
tomcatB server.xml
<Server port="8225" shutdown="SHUTDOWN">
<Connector port="9090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
<!-- 为了session 共享 此共享是以广播方式不推荐,推荐用redis--->
<Engine name="Catalina" defaultHost="localhost"> 只有此处端口号不一样其他与tomcatA 配置一样
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="4002" autoBind="100" selectorTimeout="5000" maxThreads="6"/>
三、Nginx 配置
nginx.conf 配置
#增加监听的服务端口
upstream server_tomcat{
server 127.0.0.1:7070 ;
server 127.0.0.1:9090 ;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
#增加加载服务引用 proxy_pass http://server_tomcat;
}
四、打包部署
index.jsp 页面修改A/B 方便负载均衡测试
eclipse 导出 itNginxDemo.war 部署到tomcat webapps文件夹下
启动tomcat A/B 启动nginx
打开浏览器测试 http://localhost/itNginxDemo