﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-少年阿宾-随笔分类-nginx</title><link>http://www.blogjava.net/stevenjohn/category/53185.html</link><description>那些青春的岁月</description><language>zh-cn</language><lastBuildDate>Fri, 04 Sep 2015 21:59:10 GMT</lastBuildDate><pubDate>Fri, 04 Sep 2015 21:59:10 GMT</pubDate><ttl>60</ttl><item><title>nginx 虚拟主机设置</title><link>http://www.blogjava.net/stevenjohn/archive/2015/08/29/427033.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Sat, 29 Aug 2015 07:15:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2015/08/29/427033.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/427033.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2015/08/29/427033.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/427033.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/427033.html</trackback:ping><description><![CDATA[nginx的根目录是：D:\Sys\server\nginx\nginx-1.9.4\<br /><br />nginx配置文件目录：D:\Sys\server\nginx\nginx-1.9.4\conf<br />nginx.conf 配置文件如下：<br /><br /><div></div><div>#user &nbsp;nobody;</div><div>worker_processes &nbsp;1;</div><div></div><div>#error_log &nbsp;logs/error.log;</div><div>#error_log &nbsp;logs/error.log &nbsp;notice;</div><div>#error_log &nbsp;logs/error.log &nbsp;info;</div><div></div><div>#pid &nbsp; &nbsp; &nbsp; &nbsp;logs/nginx.pid;</div><div></div><div></div><div>events {</div><div>&nbsp; &nbsp; worker_connections &nbsp;1024;</div><div>}</div><div></div><div></div><div>http {</div><div>&nbsp; &nbsp; include &nbsp; &nbsp; &nbsp; mime.types;</div><div>&nbsp; &nbsp; default_type &nbsp;application/octet-stream;</div><div></div><div>&nbsp; &nbsp; #log_format &nbsp;main &nbsp;'$remote_addr - $remote_user [$time_local] "$request" '</div><div>&nbsp; &nbsp; # &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'$status $body_bytes_sent "$http_referer" '</div><div>&nbsp; &nbsp; # &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'"$http_user_agent" "$http_x_forwarded_for"';</div><div></div><div>&nbsp; &nbsp; #access_log &nbsp;logs/access.log &nbsp;main;</div><div></div><div>&nbsp; &nbsp; sendfile &nbsp; &nbsp; &nbsp; &nbsp;on;</div><div>&nbsp; &nbsp; #tcp_nopush &nbsp; &nbsp; on;</div><div></div><div>&nbsp; &nbsp; #keepalive_timeout &nbsp;0;</div><div>&nbsp; &nbsp; keepalive_timeout &nbsp;65;</div><div></div><div>&nbsp; &nbsp; #gzip &nbsp;on;</div><div></div><div>&nbsp; &nbsp; include vhosts/*.conf;</div><div>}<br /><br />这个主目录只保留基本配置</div><div>&nbsp;include vhosts/*.conf;这句话就是引用虚拟主机目录的配置文件</div><br />在该目录下面创建vhosts目录：<br /><div>D:\Sys\server\nginx\nginx-1.9.4\conf\vhosts</div>虚拟主机(实际里面就是配置upstream和server，然后server里面配置监听端口和serverName，还有location)目录里面的配置文件分别为：<br />www.abin.com.conf<br />www.lee.com.conf<br /><br />www.abin.com.conf的配置为：<br /><div>upstream abin {</div><div><span style="white-space:pre">	</span>server localhost:9200 weight=10;</div><div><span style="white-space:pre">	</span></div><div>}</div><div></div><div></div><div># another virtual host using mix of IP-, name-, and port-based configuration</div><div></div><div>server {</div><div>listen &nbsp; &nbsp; &nbsp; 8000;</div><div>server_name &nbsp;www.abin.com abin.com;</div><div></div><div><span style="white-space:pre">	</span>location / {</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp;#反向代理的地址</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy_pass http://abin;</div><div></div><div><span style="white-space:pre">	</span> &nbsp; &nbsp;root &nbsp; html;</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp;index &nbsp;index.html index.htm;</div><div><span style="white-space:pre">	</span>}</div><div><span style="white-space:pre">	</span>location /abin {</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp;#反向代理的地址</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy_pass http://abin;</div><div></div><div><span style="white-space:pre">	</span> &nbsp; &nbsp;root &nbsp; html;</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp;index &nbsp;index.html index.htm;</div><div><span style="white-space:pre">	</span>}</div><div></div><div></div><div>}</div><div>www.lee.com.conf的配置为：</div><div><div>upstream lee {</div><div><span style="white-space:pre">	</span>server localhost:9300 weight=10;//这个配置为tomcat的请求地址</div><div><span style="white-space:pre">	</span></div><div>}</div><div></div><div></div><div># another virtual host using mix of IP-, name-, and port-based configuration</div><div></div><div>server {</div><div>listen &nbsp; &nbsp; &nbsp; 8000;</div><div>server_name &nbsp;www.lee.com lee.com;</div><div></div><div><span style="white-space:pre">	</span>location / {</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp;#反向代理的地址</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy_pass http://lee;</div><div></div><div><span style="white-space:pre">	</span> &nbsp; &nbsp;root &nbsp; html;</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp;index &nbsp;index.html index.htm;</div><div><span style="white-space:pre">	</span>}</div><div><span style="white-space:pre">	</span>location /abin {</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp;#反向代理的地址</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy_pass http://lee;</div><div></div><div><span style="white-space:pre">	</span> &nbsp; &nbsp;root &nbsp; html;</div><div><span style="white-space:pre">	</span> &nbsp; &nbsp;index &nbsp;index.html index.htm;</div><div><span style="white-space:pre">	</span>}</div><div>}</div><div></div><div></div><div></div></div><div></div><br /><br /><br />测试：<br /><div>http://www.lee.com:8000/<br /><div>http://www.lee.com:8000/abin<br />http://lee.com:8000/abin</div></div>http://www.lee.com:8000/<br /><div>http://www.lee.com:8000/lee<br />http://lee.com:8000/lee<br /><br />我的tomcat服务器的web.xml都配置了&lt;webcome-list&gt;index.html&lt;/welcome-list&gt;,<br />tomcat:9200配置了abin这个java工程，它里面的index.html内容为hello，abin<br />tomcat:9300配置了abin这个java工程，它里面的index.html内容为hello，lee</div><br />那么上面的第二个地址打印hello，abin<br />那么上面的第四个地址打印hello，lee<br /><br /><br />本地hosts文件配置为：<br /><div>127.0.0.1 &nbsp; &nbsp; &nbsp; localhost&nbsp;</div><div>127.0.0.1 &nbsp; &nbsp; &nbsp; www.abin.com &nbsp; &nbsp; abin.com&nbsp;</div><div>127.0.0.1 &nbsp; &nbsp; &nbsp; www.lee.com &nbsp; &nbsp; &nbsp; lee.com&nbsp;</div><div></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/427033.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2015-08-29 15:15 <a href="http://www.blogjava.net/stevenjohn/archive/2015/08/29/427033.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>nginx.conf的完整配置说明</title><link>http://www.blogjava.net/stevenjohn/archive/2013/01/03/393710.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Thu, 03 Jan 2013 06:52:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2013/01/03/393710.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/393710.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2013/01/03/393710.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/393710.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/393710.html</trackback:ping><description><![CDATA[<p>Nginx配置文件详细说明<br />在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络.<br />#运行用户<br />user www-data;&nbsp;&nbsp;&nbsp; <br />#启动进程,通常设置成和cpu的数量相等<br />worker_processes&nbsp; 1;<br />#全局错误日志及PID文件<br />error_log&nbsp; /var/log/nginx/error.log;<br />pid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /var/run/nginx.pid;<br />#工作模式及连接数上限<br />events {<br />&nbsp;&nbsp;&nbsp; use&nbsp;&nbsp; epoll;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能<br />&nbsp;&nbsp;&nbsp; worker_connections&nbsp; 1024;#单个后台worker process进程的最大并发链接数<br />&nbsp;&nbsp;&nbsp; # multi_accept on; <br />}<br />#设定http服务器，利用它的反向代理功能提供负载均衡支持<br />http {<br />&nbsp;&nbsp;&nbsp;&nbsp; #设定mime类型,类型由mime.type文件定义<br />&nbsp;&nbsp;&nbsp; include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /etc/nginx/mime.types;<br />&nbsp;&nbsp;&nbsp; default_type&nbsp; application/octet-stream;<br />&nbsp;&nbsp;&nbsp; #设定日志格式<br />&nbsp;&nbsp;&nbsp; access_log&nbsp;&nbsp;&nbsp; /var/log/nginx/access.log;<br />&nbsp;&nbsp;&nbsp; #sendfile 指令指定 nginx 是否调用 sendfile 函数（zero copy 方式）来输出文件，对于普通应用，<br />&nbsp;&nbsp;&nbsp; #必须设为 on,如果用来进行下载等应用磁盘IO重负载应用，可设置为 off，以平衡磁盘与网络I/O处理速度，降低系统的uptime.<br />&nbsp;&nbsp;&nbsp; sendfile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on;<br />&nbsp;&nbsp;&nbsp; #tcp_nopush&nbsp;&nbsp;&nbsp;&nbsp; on;<br />&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; #连接超时时间<br />&nbsp;&nbsp;&nbsp; #keepalive_timeout&nbsp; 0;<br />&nbsp;&nbsp;&nbsp; keepalive_timeout&nbsp; 65;<br />&nbsp;&nbsp;&nbsp; tcp_nodelay&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; #开启gzip压缩<br />&nbsp;&nbsp;&nbsp; gzip&nbsp; on;<br />&nbsp;&nbsp;&nbsp; gzip_disable "MSIE [1-6]\.(?!.*SV1)";<br />&nbsp;&nbsp;&nbsp; #设定请求缓冲<br />&nbsp;&nbsp;&nbsp; client_header_buffer_size&nbsp;&nbsp;&nbsp; 1k;<br />&nbsp;&nbsp;&nbsp; large_client_header_buffers&nbsp; 4 4k;<br />&nbsp;&nbsp;&nbsp; include /etc/nginx/conf.d/*.conf;<br />&nbsp;&nbsp;&nbsp; include /etc/nginx/sites-enabled/*;<br />&nbsp;&nbsp; <br />&nbsp;&nbsp; #设定负载均衡的服务器列表<br />&nbsp;&nbsp;&nbsp;&nbsp; upstream mysvr {<br />&nbsp;&nbsp;&nbsp; #weigth参数表示权值，权值越高被分配到的几率越大<br />&nbsp;&nbsp;&nbsp; #本机上的Squid开启3128端口<br />&nbsp;&nbsp;&nbsp; server 192.168.8.1:3128 weight=5;<br />&nbsp;&nbsp;&nbsp; server 192.168.8.2:80&nbsp; weight=1;<br />&nbsp;&nbsp;&nbsp; server 192.168.8.3:80&nbsp; weight=6;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp; server {<br />&nbsp;&nbsp;&nbsp; #侦听80端口<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 80;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #定义使用<a href="http://www.xx.com">www.xx.com</a>访问<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server_name&nbsp; <a href="http://www.xx.com">www.xx.com</a>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #设定本虚拟主机的访问日志<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; access_log&nbsp; logs/www.xx.com.access.log&nbsp; main;<br />&nbsp;&nbsp;&nbsp; #默认请求<br />&nbsp;&nbsp;&nbsp; location / {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp; /root;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #定义服务器的默认网站根目录位置<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index index.php index.html index.htm;&nbsp;&nbsp; #定义首页索引文件的名称<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fastcgi_pass&nbsp; <a href="http://www.xx.com">www.xx.com</a>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fastcgi_param&nbsp; SCRIPT_FILENAME&nbsp; $document_root/$fastcgi_script_name; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; include /etc/nginx/fastcgi_params;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; # 定义错误提示页面<br />&nbsp;&nbsp;&nbsp; error_page&nbsp;&nbsp; 500 502 503 504 /50x.html;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location = /50x.html {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp; /root;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; #静态文件，nginx自己处理<br />&nbsp;&nbsp;&nbsp; location ~ ^/(images|javascript|js|css|flash|media|static)/ {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root /var/www/virtual/htdocs;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #过期30天，静态文件不怎么更新，过期可以设大一点，如果频繁更新，则可以设置得小一点。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; expires 30d;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.<br />&nbsp;&nbsp;&nbsp; location ~ \.php$ {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root /root;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fastcgi_pass 127.0.0.1:9000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fastcgi_index index.php;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fastcgi_param SCRIPT_FILENAME /home/www/www$fastcgi_script_name;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; include fastcgi_params;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; #设定查看Nginx状态的地址<br />&nbsp;&nbsp;&nbsp; location /NginxStatus {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stub_status&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; access_log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; auth_basic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "NginxStatus";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; auth_basic_user_file&nbsp; conf/htpasswd;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; #禁止访问 .htxxx 文件<br />&nbsp;&nbsp;&nbsp; location ~ /\.ht {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; deny all;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; }<br />}</p>
<p><br />#以上是一些基本的配置,使用Nginx最大的好处就是负载均衡<br />#如果要使用负载均衡的话,可以修改配置http节点如下：<br />#设定http服务器，利用它的反向代理功能提供负载均衡支持<br />http {<br />&nbsp;&nbsp;&nbsp;&nbsp; #设定mime类型,类型由mime.type文件定义<br />&nbsp;&nbsp;&nbsp; include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /etc/nginx/mime.types;<br />&nbsp;&nbsp;&nbsp; default_type&nbsp; application/octet-stream;<br />&nbsp;&nbsp;&nbsp; #设定日志格式<br />&nbsp;&nbsp;&nbsp; access_log&nbsp;&nbsp;&nbsp; /var/log/nginx/access.log;<br />&nbsp;&nbsp;&nbsp; #省略上文有的一些配置节点<br />&nbsp;&nbsp;&nbsp; #。。。。。。。。。。<br />&nbsp;&nbsp;&nbsp; #设定负载均衡的服务器列表<br />&nbsp;&nbsp;&nbsp;&nbsp; upstream mysvr {<br />&nbsp;&nbsp;&nbsp; #weigth参数表示权值，权值越高被分配到的几率越大<br />&nbsp;&nbsp;&nbsp; server 192.168.8.1x:3128 weight=5;#本机上的Squid开启3128端口<br />&nbsp;&nbsp;&nbsp; server 192.168.8.2x:80&nbsp; weight=1;<br />&nbsp;&nbsp;&nbsp; server 192.168.8.3x:80&nbsp; weight=6;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp; upstream mysvr2 {<br />&nbsp;&nbsp;&nbsp; #weigth参数表示权值，权值越高被分配到的几率越大<br />&nbsp;&nbsp;&nbsp; server 192.168.8.x:80&nbsp; weight=1;<br />&nbsp;&nbsp;&nbsp; server 192.168.8.x:80&nbsp; weight=6;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp; #第一个虚拟服务器<br />&nbsp;&nbsp; server {<br />&nbsp;&nbsp;&nbsp; #侦听192.168.8.x的80端口<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 80;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server_name&nbsp; 192.168.8.x;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #对aspx后缀的进行负载均衡请求<br />&nbsp;&nbsp;&nbsp; location ~ .*\.aspx$ {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp; /root;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #定义服务器的默认网站根目录位置<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index index.php index.html index.htm;&nbsp;&nbsp; #定义首页索引文件的名称<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_pass&nbsp; <a href="http://mysvr">http://mysvr</a> ;#请求转向mysvr 定义的服务器列表<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #以下是一些反向代理的配置可删除.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_redirect off;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_set_header Host $host;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_set_header X-Real-IP $remote_addr;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client_max_body_size 10m;&nbsp;&nbsp;&nbsp; #允许客户端请求的最大单文件字节数<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client_body_buffer_size 128k;&nbsp; #缓冲区代理缓冲用户端请求的最大字节数，<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_connect_timeout 90;&nbsp; #nginx跟后端服务器连接超时时间(代理连接超时)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_send_timeout 90;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #后端服务器数据回传时间(代理发送超时)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_read_timeout 90;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #连接成功后，后端服务器响应时间(代理接收超时)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_buffer_size 4k;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #设置代理服务器（nginx）保存用户头信息的缓冲区大小<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_buffers 4 32k;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #proxy_buffers缓冲区，网页平均在32k以下的话，这样设置<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_busy_buffers_size 64k;&nbsp;&nbsp;&nbsp; #高负荷下缓冲大小（proxy_buffers*2）<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_temp_file_write_size 64k;&nbsp; #设定缓存文件夹大小，大于这个值，将从upstream服务器传<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; }<br />}<br /></p><img src ="http://www.blogjava.net/stevenjohn/aggbug/393710.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2013-01-03 14:52 <a href="http://www.blogjava.net/stevenjohn/archive/2013/01/03/393710.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Nginx+tomcat配置集群</title><link>http://www.blogjava.net/stevenjohn/archive/2013/01/03/393709.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Thu, 03 Jan 2013 06:51:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2013/01/03/393709.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/393709.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2013/01/03/393709.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/393709.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/393709.html</trackback:ping><description><![CDATA[<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-converted-space">&nbsp;</span>开发的应用采用F5负载均衡交换机，F5将请求转发给5台hp unix服务器，每台服务器有多个webserver实例，对外提供web服务和socket等接口服务。之初，曾有个小小的疑问为何不采用开源的apache、Nginx软件负载，F5设备动辄几十万，价格昂贵？自己一个比较幼稚的问题，后续明白：F5是操作于IOS网络模型的传输层，Nginx、apache是基于http反向代理方式，位于ISO模型的第七层应用层。直白些就是TCP UDP 和http协议的区别，Nginx不能为基于TCP协议的应用提供负载均衡。</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 了解了二者之间的区别于应用场景，对Nginx产生浓厚的兴趣，阅读张宴的&lt;实战Nginx&gt;（这个85年的小伙子年轻有为羡慕+妒忌），搞明白了大致原理和配置，Ubuntu10.10，window下对Nginx+tomcat负载均衡做了配置尝试，将全部请求转发到tomcat，并未做静态，动态分开，图片防盗链等配置。<br /><strong><span style="font-size: small" mce_style="font-size: small;">Nginx 介绍</span></strong></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br />&nbsp;&nbsp;&nbsp;&nbsp; Nginx （发音同 engine x）是一款轻量级的Web 服务器／反向代理服务器及电子邮件（IMAP/POP3）代理服务器，并在一个BSD-like 协议下发行。&nbsp; 其特点是占有内存少，并发能力强，事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有：新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br />&nbsp;&nbsp;&nbsp; 上面的全是Nginx介绍基本上是废话，下面转入正题，图文结合展示基本配置，首先是window环境、其次是Ubuntu环境（Vbox虚拟）。本文主要基于Nginx下配置两台tomcat，结构如下图：<br /><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" alt="" src="http://dl.iteye.com/upload/attachment/360652/25338dc2-5d45-3bc7-b9f7-102eb25c4ce9.png" mce_src="http://dl.iteye.com/upload/attachment/360652/25338dc2-5d45-3bc7-b9f7-102eb25c4ce9.png" /><br /><span style="font-size: small" mce_style="font-size: small;"><strong>&nbsp;</strong></span></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span style="font-size: medium" mce_style="font-size: medium;"><strong>Window xp环境：Nginx+Tomcat6</strong></span></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><strong>1、下载地址</strong></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a style="background-color: transparent; color: rgb(102,102,102)" href="http://nginx.org/en/download.html" mce_href="http://nginx.org/en/download.html">http://nginx.org/en/download.html</a>&nbsp;，这里我们推荐下载稳定版（stable versions），本文采用nginx-0.8.20。</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /><strong>2、目录结构</strong></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nginx-</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |_&nbsp; conf&nbsp;&nbsp; 配置目录</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |_&nbsp; contrib</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |_&nbsp; docs 文档目录</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |_&nbsp; logs&nbsp; 日志目录</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |_&nbsp; temp 临时文件目录</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |_&nbsp; html 静态页面目录</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |_&nbsp; nginx.exe 主程序</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window下安装Nginx极其简单，解压缩到一个无空格的英文目录即可（个人习惯，担心中文出问题），双击nginx启动，这里我安装到：D:\server目录，下面涉及到的tomcat也安装在此目录。</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;<br /><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" alt="" src="http://dl.iteye.com/upload/attachment/360565/40f0081a-c121-32e5-9157-07ee4fb800d1.jpg" mce_src="http://dl.iteye.com/upload/attachment/360565/40f0081a-c121-32e5-9157-07ee4fb800d1.jpg" /></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">DOS环境启动</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;<br /><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" alt="" src="http://dl.iteye.com/upload/attachment/360567/baf0cca2-abbf-30aa-ad04-735fa82834b8.jpg" mce_src="http://dl.iteye.com/upload/attachment/360567/baf0cca2-abbf-30aa-ad04-735fa82834b8.jpg" /></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">若果想停止nginx，dos环境运行命令：nginx -s stop</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /><strong>3、nginx.conf配置</strong></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br />&nbsp;&nbsp; Nginx配置文件默认在conf目录，主要配置文件为nginx.conf，我们安装在D:\server\nginx-0.8.20、默认主配置文件为D:\server\nginx-0.8.20\nginx.conf。下面是nginx作为前端反向代理服务器的配置。</p><pre style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 3px; widows: 2; text-transform: none; background-color: rgb(250,250,250); text-indent: 0px; margin: 0px 5px 5px 15px; padding-left: 3px; padding-right: 3px; font: 12px/19px Verdana, Arial, Helvetica, sans-serif; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; word-spacing: 0px; padding-top: 3px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="nginx.conf" name="code">#Nginx所用用户和组，window下不指定
#user  niumd niumd;
#工作的子进程数量（通常等于CPU数量或者2倍于CPU）
worker_processes  2;
#错误日志存放路径
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;
#指定pid存放文件
pid        logs/nginx.pid;
events {
#使用网络IO模型linux建议epoll，FreeBSD建议采用kqueue，window下不指定。
#use epoll;
#允许最大连接数
worker_connections  2048;
}
http {
include       mime.types;
default_type  application/octet-stream;
#定义日志格式
#log_format  main  '$remote_addr - $remote_user [$time_local] $request '
#                  '"$status" $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';
#access_log  off;
access_log  logs/access.log;
client_header_timeout  3m;
client_body_timeout    3m;
send_timeout           3m;
client_header_buffer_size    1k;
large_client_header_buffers  4 4k;
sendfile        on;
tcp_nopush      on;
tcp_nodelay     on;
#keepalive_timeout  75 20;
include    gzip.conf;
upstream localhost {
#根据ip计算将请求分配各那个后端tomcat，许多人误认为可以解决session问题，其实并不能。
#同一机器在多网情况下，路由切换，ip可能不同
#ip_hash;
server localhost:18081;
server localhost:18080;
}
server {
listen       80;
server_name  localhost;
location / {
proxy_connect_timeout   3;
proxy_send_timeout      30;
proxy_read_timeout      30;
proxy_pass http://localhost;
}
}
}</pre>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;<br />&nbsp;&nbsp; 代理设置如下：</p><pre style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 3px; widows: 2; text-transform: none; background-color: rgb(250,250,250); text-indent: 0px; margin: 0px 5px 5px 15px; padding-left: 3px; padding-right: 3px; font: 12px/19px Verdana, Arial, Helvetica, sans-serif; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; word-spacing: 0px; padding-top: 3px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="proxy.conf" name="code">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;
client_max_body_size    10m;
client_body_buffer_size 128k;
proxy_connect_timeout   300;
proxy_send_timeout      300;
proxy_read_timeout      300;
proxy_buffer_size       4k;
proxy_buffers           4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
</pre>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp; gzip压缩相关配置如下：</p><pre style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 3px; widows: 2; text-transform: none; background-color: rgb(250,250,250); text-indent: 0px; margin: 0px 5px 5px 15px; padding-left: 3px; padding-right: 3px; font: 12px/19px Verdana, Arial, Helvetica, sans-serif; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; word-spacing: 0px; padding-top: 3px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="gzip.conf" name="code">gzip              on;
gzip_min_length      1000;
gzip_types         text/plain text/css application/x-javascript;
</pre>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;<br /><strong>&nbsp; 4、Tomcat配置</strong></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br />&nbsp;&nbsp; 对于tomcat大家都很熟悉，只需要修改server.xml配置文件即可，这里我们以apache-tomcat-6.0.14为例，分别在server目录，解压缩并命名为：apache-tomcat-6.0.14_1、apache-tomcat-6.0.14_2。</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br />&nbsp;&nbsp;&nbsp; 第一处端口修改：</p><pre style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 3px; widows: 2; text-transform: none; background-color: rgb(250,250,250); text-indent: 0px; margin: 0px 5px 5px 15px; padding-left: 3px; padding-right: 3px; font: 12px/19px Verdana, Arial, Helvetica, sans-serif; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; word-spacing: 0px; padding-top: 3px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="xml" name="code">&lt;!--  修改port端口：18006 俩个tomcat不能重复，端口随意，别太小--&gt;
&lt;Server port="18006" shutdown="SHUTDOWN"&gt;
</pre>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;<br />&nbsp;&nbsp; 第二处端口修改：</p><pre style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 3px; widows: 2; text-transform: none; background-color: rgb(250,250,250); text-indent: 0px; margin: 0px 5px 5px 15px; padding-left: 3px; padding-right: 3px; font: 12px/19px Verdana, Arial, Helvetica, sans-serif; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; word-spacing: 0px; padding-top: 3px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="xml" name="code">&lt;!-- port="18081" tomcat监听端口，随意设置，别太小 --&gt;
&lt;Connector port="18081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /&gt;
&nbsp;</pre>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp; 第三处端口修改：</p><pre style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 3px; widows: 2; text-transform: none; background-color: rgb(250,250,250); text-indent: 0px; margin: 0px 5px 5px 15px; padding-left: 3px; padding-right: 3px; font: 12px/19px Verdana, Arial, Helvetica, sans-serif; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; word-spacing: 0px; padding-top: 3px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="java" name="code">&lt;Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /&gt;
</pre>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp; Engine元素增加jvmRoute属性：</p><pre style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 3px; widows: 2; text-transform: none; background-color: rgb(250,250,250); text-indent: 0px; margin: 0px 5px 5px 15px; padding-left: 3px; padding-right: 3px; font: 12px/19px Verdana, Arial, Helvetica, sans-serif; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; word-spacing: 0px; padding-top: 3px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="xml" name="code">&lt;Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"&gt;
</pre>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;<br />&nbsp;&nbsp;&nbsp; 两个tomcat的端口别重复，保证能启动起来，另一个tomcat配置希捷省略，监听端口为18080，附件中我们将上传所有的配置信息。</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /><strong>5、验证配置与测试负载均衡</strong></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br />&nbsp;&nbsp;&nbsp; 首先测试nginx配置是否正确，测试命令：nginx -t&nbsp; (默认验证:conf\nginx.conf),也可以指定配置文件路径。</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;此例nginx安装目录：D:\server\nginx-0.8.20，dos环境下图画面成功示例：<br /><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" alt="" src="http://dl.iteye.com/upload/attachment/360606/488826c2-d5a6-3a5a-8b6b-ea55c33ab01b.jpg" mce_src="http://dl.iteye.com/upload/attachment/360606/488826c2-d5a6-3a5a-8b6b-ea55c33ab01b.jpg" /></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;其次验证tomcat，启动两个tomcat，不出现端口冲突即为成功（tomcat依赖的java等搞&#8220;挨踢&#8221;的就废话不说了）；</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;<br /><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" alt="" src="http://dl.iteye.com/upload/attachment/360608/53ac9d08-9c6e-3ea4-a7fa-8c0bb1f3e2fd.jpg" mce_src="http://dl.iteye.com/upload/attachment/360608/53ac9d08-9c6e-3ea4-a7fa-8c0bb1f3e2fd.jpg" /></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; 最后验证配置负载均衡设置，<a style="background-color: transparent; color: rgb(102,102,102)" href="http://localhost/" mce_href="http://localhost/">http://localhost/</a>&nbsp;或<a style="background-color: transparent; color: rgb(102,102,102)" href="http://localhost/index.jsp" mce_href="http://localhost/index.jsp">http://localhost/index.jsp</a>&nbsp;。我修改了index.jsp页面，增加日志输出信息，便于观察。注意：左上角小猫头上的：access tomcat2、access tomcat1。说明访问了不同的tomcat。</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;<br /><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" alt="" src="http://dl.iteye.com/upload/attachment/360614/ae669075-5a52-3116-b2a1-c455e0c7d2f3.jpg" mce_src="http://dl.iteye.com/upload/attachment/360614/ae669075-5a52-3116-b2a1-c455e0c7d2f3.jpg" /><br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; 至此window下nginx+tomcat负载均衡配置结束，关于tomcat Session的问题通常是采用memcached，或者采用nginx_upstream_jvm_route ，他是一个 Nginx 的扩展模块，用来实现基于 Cookie 的 Session Sticky 的功能。如果tomcat过多不建议session同步，server间相互同步session很耗资源，高并发环境容易引起Session风暴。请根据自己应用情况合理采纳session解决方案。</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /></p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;作者：niumd&nbsp;</p>
<p style="widows: 2; text-transform: none; text-indent: 0px; margin: 0px; font: 13px/19px Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp; Blog:http://ari.iteye.com</p><img src ="http://www.blogjava.net/stevenjohn/aggbug/393709.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2013-01-03 14:51 <a href="http://www.blogjava.net/stevenjohn/archive/2013/01/03/393709.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>nginx tomcat</title><link>http://www.blogjava.net/stevenjohn/archive/2013/01/03/393708.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Thu, 03 Jan 2013 06:47:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2013/01/03/393708.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/393708.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2013/01/03/393708.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/393708.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/393708.html</trackback:ping><description><![CDATA[<div>//nginx.conf<br />
<p><br />#user&nbsp; nobody;<br />worker_processes&nbsp; 1;</p>
<p>#error_log&nbsp; logs/error.log;<br />#error_log&nbsp; logs/error.log&nbsp; notice;<br />error_log&nbsp; logs/error.log&nbsp; info;</p>
<p>pid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logs/nginx.pid;</p>
<p><br />events {<br />&nbsp;&nbsp;&nbsp; worker_connections&nbsp; 1024;<br />}</p>
<p><br />http {<br />&nbsp;&nbsp;&nbsp; include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mime.types;<br />&nbsp;&nbsp;&nbsp; default_type&nbsp; application/octet-stream;</p>
<p>&nbsp;&nbsp;&nbsp; #log_format&nbsp; main&nbsp; '$remote_addr - $remote_user [$time_local] "$request" '<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '$status $body_bytes_sent "$http_referer" '<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '"$http_user_agent" "$http_x_forwarded_for"';</p>
<p>&nbsp;&nbsp;&nbsp; #access_log&nbsp; logs/access.log&nbsp; main;</p>
<p>&nbsp;&nbsp;&nbsp; sendfile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on;<br />&nbsp;&nbsp;&nbsp; #tcp_nopush&nbsp;&nbsp;&nbsp;&nbsp; on;</p>
<p>&nbsp;&nbsp;&nbsp; #keepalive_timeout&nbsp; 0;<br />&nbsp;&nbsp;&nbsp; keepalive_timeout&nbsp; 65;</p>
<p>&nbsp;&nbsp;&nbsp; #gzip&nbsp; on;<br />&nbsp;&nbsp;&nbsp; include&nbsp;&nbsp;&nbsp; gzip.conf;&nbsp; <br />&nbsp;&nbsp;&nbsp; upstream localhost {&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #根据ip计算将请求分配各那个后端tomcat，许多人误认为可以解决session问题，其实并不能。&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #同一机器在多网情况下，路由切换，ip可能不同&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #ip_hash;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server localhost:16300&nbsp; weight=5;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server localhost:16400&nbsp; weight=1;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp; server {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 80;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server_name&nbsp; localhost;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #charset koi8-r;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #access_log&nbsp; logs/host.access.log&nbsp; main;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location / {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_connect_timeout&nbsp;&nbsp; 3;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_send_timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_read_timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_pass <a href="http://localhost">http://localhost</a>;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp; html;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index&nbsp; index.html index.htm;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #error_page&nbsp; 404&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /404.html;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # redirect server error pages to the static page /50x.html<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error_page&nbsp;&nbsp; 500 502 503 504&nbsp; /50x.html;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location = /50x.html {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp; html;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # proxy the PHP scripts to Apache listening on 127.0.0.1:80<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #location ~ \.php$ {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; proxy_pass&nbsp;&nbsp; <a href="http://127.0.0.1">http://127.0.0.1</a>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #location ~ \.php$ {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; fastcgi_pass&nbsp;&nbsp; 127.0.0.1:9000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; fastcgi_index&nbsp; index.php;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; fastcgi_param&nbsp; SCRIPT_FILENAME&nbsp; /scripts$fastcgi_script_name;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fastcgi_params;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # deny access to .htaccess files, if Apache's document root<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # concurs with nginx's one<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #location ~ /\.ht {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; deny&nbsp; all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #}<br />&nbsp;&nbsp;&nbsp; }</p>
<p><br />&nbsp;&nbsp;&nbsp; # another virtual host using mix of IP-, name-, and port-based configuration<br />&nbsp;&nbsp;&nbsp; #<br />&nbsp;&nbsp;&nbsp; #server {<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8000;<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; somename:8080;<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; server_name&nbsp; somename&nbsp; alias&nbsp; another.alias;</p>
<p>&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; location / {<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp; html;<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index&nbsp; index.html index.htm;<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; #}</p>
<p><br />&nbsp;&nbsp;&nbsp; # HTTPS server<br />&nbsp;&nbsp;&nbsp; #<br />&nbsp;&nbsp;&nbsp; #server {<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 443;<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; server_name&nbsp; localhost;</p>
<p>&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; ssl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on;<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; ssl_certificate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cert.pem;<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; ssl_certificate_key&nbsp; cert.key;</p>
<p>&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; ssl_session_timeout&nbsp; 5m;</p>
<p>&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; ssl_protocols&nbsp; SSLv2 SSLv3 TLSv1;<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; ssl_ciphers&nbsp; ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; ssl_prefer_server_ciphers&nbsp;&nbsp; on;</p>
<p>&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; location / {<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp; html;<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index&nbsp; index.html index.htm;<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; #}</p>
<p>}<br /></p><br /><br /><br /><br />//在%NGINX_HOME%/conf/下面新增proxy.conf<br />proxy_redirect&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; off;&nbsp; <br />proxy_set_header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Host $host;&nbsp; <br />proxy_set_header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X-Real-IP $remote_addr;&nbsp; <br />proxy_set_header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X-Forwarded-For $proxy_add_x_forwarded_for;&nbsp; <br />client_max_body_size&nbsp;&nbsp;&nbsp; 10m;&nbsp; <br />client_body_buffer_size 128k;&nbsp; <br />proxy_connect_timeout&nbsp;&nbsp; 300;&nbsp; <br />proxy_send_timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 300;&nbsp; <br />proxy_read_timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 300;&nbsp; <br />proxy_buffer_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4k;&nbsp; <br />proxy_buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4 32k;&nbsp; <br />proxy_busy_buffers_size 64k;&nbsp; <br />proxy_temp_file_write_size 64k;<br /><br /><br /><br /><br />//在%NGINX_HOME%/conf/下面新增gzip.conf<br />gzip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on;&nbsp; <br />gzip_min_length&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1000;&nbsp; <br />gzip_types&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text/plain text/css application/x-javascript;<br /><br /><br /><br /><br /><br />//tomcat63&nbsp;&nbsp;&nbsp; %TOMCAT_HOME%/conf/server.xml<br />
<p>&lt;?xml version='1.0' encoding='utf-8'?&gt;<br />&lt;!--<br />&nbsp; Licensed to the Apache Software Foundation (ASF) under one or more<br />&nbsp; contributor license agreements.&nbsp; See the NOTICE file distributed with<br />&nbsp; this work for additional information regarding copyright ownership.<br />&nbsp; The ASF licenses this file to You under the Apache License, Version 2.0<br />&nbsp; (the "License"); you may not use this file except in compliance with<br />&nbsp; the License.&nbsp; You may obtain a copy of the License at</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p>
<p>&nbsp; Unless required by applicable law or agreed to in writing, software<br />&nbsp; distributed under the License is distributed on an "AS IS" BASIS,<br />&nbsp; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br />&nbsp; See the License for the specific language governing permissions and<br />&nbsp; limitations under the License.<br />--&gt;<br />&lt;!-- Note:&nbsp; A "Server" is not itself a "Container", so you may not<br />&nbsp;&nbsp;&nbsp;&nbsp; define subcomponents such as "Valves" at this level.<br />&nbsp;&nbsp;&nbsp;&nbsp; Documentation at /docs/config/server.html<br />&nbsp;--&gt;<br />&lt;Server port="16305" shutdown="SHUTDOWN"&gt;</p>
<p>&nbsp; &lt;!--APR library loader. Documentation at /docs/apr.html --&gt;<br />&nbsp; &lt;Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /&gt;<br />&nbsp; &lt;!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html --&gt;<br />&nbsp; &lt;Listener className="org.apache.catalina.core.JasperListener" /&gt;<br />&nbsp; &lt;!-- Prevent memory leaks due to use of particular java/javax APIs--&gt;<br />&nbsp; &lt;Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /&gt;<br />&nbsp; &lt;!-- JMX Support for the Tomcat server. Documentation at /docs/non-existent.html --&gt;<br />&nbsp; &lt;Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /&gt;<br />&nbsp; &lt;Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /&gt;</p>
<p>&nbsp; &lt;!-- Global JNDI resources<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Documentation at /docs/jndi-resources-howto.html<br />&nbsp; --&gt;<br />&nbsp; &lt;GlobalNamingResources&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!-- Editable user database that can also be used by<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UserDatabaseRealm to authenticate users<br />&nbsp;&nbsp;&nbsp; --&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Resource name="UserDatabase" auth="Container"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type="org.apache.catalina.UserDatabase"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; description="User database that can be updated and saved"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; factory="org.apache.catalina.users.MemoryUserDatabaseFactory"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pathname="conf/tomcat-users.xml" /&gt;<br />&nbsp; &lt;/GlobalNamingResources&gt;</p>
<p>&nbsp; &lt;!-- A "Service" is a collection of one or more "Connectors" that share<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a single "Container" Note:&nbsp; A "Service" is not itself a "Container", <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; so you may not define subcomponents such as "Valves" at this level.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Documentation at /docs/config/service.html<br />&nbsp;&nbsp; --&gt;<br />&nbsp; &lt;Service name="Catalina"&gt;<br />&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;!--The connectors can use a shared executor, you can define one or more named thread pools--&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp; &lt;Executor name="tomcatThreadPool" namePrefix="catalina-exec-" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxThreads="150" minSpareThreads="4"/&gt;<br />&nbsp;&nbsp;&nbsp; --&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;!-- A "Connector" represents an endpoint by which requests are received<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and responses are returned. Documentation at :<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Java HTTP Connector: /docs/config/http.html (blocking &amp; non-blocking)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Java AJP&nbsp; Connector: /docs/config/ajp.html<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; APR (HTTP/AJP) Connector: /docs/apr.html<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Define a non-SSL HTTP/1.1 Connector on port 8080<br />&nbsp;&nbsp;&nbsp; --&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Connector port="16300" protocol="HTTP/1.1" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connectionTimeout="20000" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; redirectPort="8443" /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!-- A "Connector" using the shared thread pool--&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp; &lt;Connector executor="tomcatThreadPool"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; port="8080" protocol="HTTP/1.1" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connectionTimeout="20000" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; redirectPort="8443" /&gt;<br />&nbsp;&nbsp;&nbsp; --&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;!-- Define a SSL HTTP/1.1 Connector on port 8443<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This connector uses the JSSE configuration, when using APR, the <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connector should be using the OpenSSL style configuration<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; described in the APR documentation --&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp; &lt;Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxThreads="150" scheme="https" secure="true"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clientAuth="false" sslProtocol="TLS" /&gt;<br />&nbsp;&nbsp;&nbsp; --&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;!-- Define an AJP 1.3 Connector on port 8009 --&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Connector port="16309" protocol="AJP/1.3" redirectPort="8443" /&gt;</p>
<p><br />&nbsp;&nbsp;&nbsp; &lt;!-- An Engine represents the entry point (within Catalina) that processes<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; every request.&nbsp; The Engine implementation for Tomcat stand alone<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; analyzes the HTTP headers included with the request, and passes them<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on to the appropriate Host (virtual host).<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Documentation at /docs/config/engine.html --&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;!-- You should set jvmRoute to support load-balancing via AJP ie :<br />&nbsp;&nbsp;&nbsp; &lt;Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; --&gt; <br />&nbsp;&nbsp;&nbsp; &lt;Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat63"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--For clustering, please take a look at documentation at:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /docs/cluster-howto.html&nbsp; (simple how to)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /docs/config/cluster.html (reference documentation) --&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The request dumper valve dumps useful debugging information about<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the request and response data received and sent by Tomcat.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Documentation at: /docs/config/valve.html --&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Valve className="org.apache.catalina.valves.RequestDumperValve"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- This Realm uses the UserDatabase configured in the global JNDI<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resources under the key "UserDatabase".&nbsp; Any edits<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; that are performed against this UserDatabase are immediately<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; available for use by the Realm.&nbsp; --&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Realm className="org.apache.catalina.realm.UserDatabaseRealm"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resourceName="UserDatabase"/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Define the default virtual host<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Note: XML Schema validation will not work with Xerces 2.2.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Host name="localhost"&nbsp; appBase="webapps"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unpackWARs="true" autoDeploy="true"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlValidation="false" xmlNamespaceAware="false"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- SingleSignOn valve, share authentication between web applications<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Documentation at: /docs/config/valve.html --&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Valve className="org.apache.catalina.authenticator.SingleSignOn" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Access log processes all example.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Documentation at: /docs/config/valve.html --&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Host&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/Engine&gt;<br />&nbsp; &lt;/Service&gt;<br />&lt;/Server&gt;<br /></p><br /><br /><br />%TOMCAT_HOME%/conf/server.xml<br />
<p>&lt;?xml version='1.0' encoding='utf-8'?&gt;<br />&lt;!--<br />&nbsp; Licensed to the Apache Software Foundation (ASF) under one or more<br />&nbsp; contributor license agreements.&nbsp; See the NOTICE file distributed with<br />&nbsp; this work for additional information regarding copyright ownership.<br />&nbsp; The ASF licenses this file to You under the Apache License, Version 2.0<br />&nbsp; (the "License"); you may not use this file except in compliance with<br />&nbsp; the License.&nbsp; You may obtain a copy of the License at</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p>
<p>&nbsp; Unless required by applicable law or agreed to in writing, software<br />&nbsp; distributed under the License is distributed on an "AS IS" BASIS,<br />&nbsp; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br />&nbsp; See the License for the specific language governing permissions and<br />&nbsp; limitations under the License.<br />--&gt;<br />&lt;!-- Note:&nbsp; A "Server" is not itself a "Container", so you may not<br />&nbsp;&nbsp;&nbsp;&nbsp; define subcomponents such as "Valves" at this level.<br />&nbsp;&nbsp;&nbsp;&nbsp; Documentation at /docs/config/server.html<br />&nbsp;--&gt;<br />&lt;Server port="16405" shutdown="SHUTDOWN"&gt;</p>
<p>&nbsp; &lt;!--APR library loader. Documentation at /docs/apr.html --&gt;<br />&nbsp; &lt;Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /&gt;<br />&nbsp; &lt;!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html --&gt;<br />&nbsp; &lt;Listener className="org.apache.catalina.core.JasperListener" /&gt;<br />&nbsp; &lt;!-- Prevent memory leaks due to use of particular java/javax APIs--&gt;<br />&nbsp; &lt;Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /&gt;<br />&nbsp; &lt;!-- JMX Support for the Tomcat server. Documentation at /docs/non-existent.html --&gt;<br />&nbsp; &lt;Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /&gt;<br />&nbsp; &lt;Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /&gt;</p>
<p>&nbsp; &lt;!-- Global JNDI resources<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Documentation at /docs/jndi-resources-howto.html<br />&nbsp; --&gt;<br />&nbsp; &lt;GlobalNamingResources&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!-- Editable user database that can also be used by<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UserDatabaseRealm to authenticate users<br />&nbsp;&nbsp;&nbsp; --&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Resource name="UserDatabase" auth="Container"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type="org.apache.catalina.UserDatabase"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; description="User database that can be updated and saved"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; factory="org.apache.catalina.users.MemoryUserDatabaseFactory"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pathname="conf/tomcat-users.xml" /&gt;<br />&nbsp; &lt;/GlobalNamingResources&gt;</p>
<p>&nbsp; &lt;!-- A "Service" is a collection of one or more "Connectors" that share<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a single "Container" Note:&nbsp; A "Service" is not itself a "Container", <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; so you may not define subcomponents such as "Valves" at this level.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Documentation at /docs/config/service.html<br />&nbsp;&nbsp; --&gt;<br />&nbsp; &lt;Service name="Catalina"&gt;<br />&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;!--The connectors can use a shared executor, you can define one or more named thread pools--&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp; &lt;Executor name="tomcatThreadPool" namePrefix="catalina-exec-" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxThreads="150" minSpareThreads="4"/&gt;<br />&nbsp;&nbsp;&nbsp; --&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;!-- A "Connector" represents an endpoint by which requests are received<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and responses are returned. Documentation at :<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Java HTTP Connector: /docs/config/http.html (blocking &amp; non-blocking)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Java AJP&nbsp; Connector: /docs/config/ajp.html<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; APR (HTTP/AJP) Connector: /docs/apr.html<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Define a non-SSL HTTP/1.1 Connector on port 8080<br />&nbsp;&nbsp;&nbsp; --&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Connector port="16400" protocol="HTTP/1.1" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connectionTimeout="20000" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; redirectPort="8443" /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!-- A "Connector" using the shared thread pool--&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp; &lt;Connector executor="tomcatThreadPool"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; port="8080" protocol="HTTP/1.1" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connectionTimeout="20000" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; redirectPort="8443" /&gt;<br />&nbsp;&nbsp;&nbsp; --&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;!-- Define a SSL HTTP/1.1 Connector on port 8443<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This connector uses the JSSE configuration, when using APR, the <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connector should be using the OpenSSL style configuration<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; described in the APR documentation --&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp; &lt;Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxThreads="150" scheme="https" secure="true"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clientAuth="false" sslProtocol="TLS" /&gt;<br />&nbsp;&nbsp;&nbsp; --&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;!-- Define an AJP 1.3 Connector on port 8009 --&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Connector port="16409" protocol="AJP/1.3" redirectPort="8443" /&gt;</p>
<p><br />&nbsp;&nbsp;&nbsp; &lt;!-- An Engine represents the entry point (within Catalina) that processes<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; every request.&nbsp; The Engine implementation for Tomcat stand alone<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; analyzes the HTTP headers included with the request, and passes them<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on to the appropriate Host (virtual host).<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Documentation at /docs/config/engine.html --&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;!-- You should set jvmRoute to support load-balancing via AJP ie :<br />&nbsp;&nbsp;&nbsp; &lt;Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; --&gt; <br />&nbsp;&nbsp;&nbsp; &lt;Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat64"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--For clustering, please take a look at documentation at:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /docs/cluster-howto.html&nbsp; (simple how to)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /docs/config/cluster.html (reference documentation) --&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The request dumper valve dumps useful debugging information about<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the request and response data received and sent by Tomcat.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Documentation at: /docs/config/valve.html --&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Valve className="org.apache.catalina.valves.RequestDumperValve"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- This Realm uses the UserDatabase configured in the global JNDI<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resources under the key "UserDatabase".&nbsp; Any edits<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; that are performed against this UserDatabase are immediately<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; available for use by the Realm.&nbsp; --&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Realm className="org.apache.catalina.realm.UserDatabaseRealm"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resourceName="UserDatabase"/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Define the default virtual host<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Note: XML Schema validation will not work with Xerces 2.2.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Host name="localhost"&nbsp; appBase="webapps"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unpackWARs="true" autoDeploy="true"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlValidation="false" xmlNamespaceAware="false"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- SingleSignOn valve, share authentication between web applications<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Documentation at: /docs/config/valve.html --&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Valve className="org.apache.catalina.authenticator.SingleSignOn" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Access log processes all example.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Documentation at: /docs/config/valve.html --&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Host&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/Engine&gt;<br />&nbsp; &lt;/Service&gt;<br />&lt;/Server&gt;<br /><br /><br /><br /><br /><br />先启动nginx，后启动tomcat。<br /><span style="widows: 2; text-transform: none; background-color: rgb(248,248,248); text-indent: 0px; font: 14px/28px 宋体; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; -webkit-text-decorations-in-effect: none" class="Apple-style-span"></p>
<p style="padding-bottom: 0px; background-color: transparent; text-indent: 28px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; color: rgb(51,51,51); padding-top: 0px">首先测试nginx配置是否正确，测试命令：nginx -t&nbsp; (默认验证:conf\nginx.conf),也可以指定配置文件路径。</p>
<p style="padding-bottom: 0px; background-color: transparent; text-indent: 28px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; color: rgb(51,51,51); padding-top: 0px">其次验证tomcat，启动两个tomcat，不出现端口冲突即为成功（tomcat依赖的java等搞&#8220;挨踢&#8221;的就废话不说了）；</p>
<p></span><br />&nbsp;</p></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/393708.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2013-01-03 14:47 <a href="http://www.blogjava.net/stevenjohn/archive/2013/01/03/393708.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>