本文,是笔者工做之余写的,第一是把以前打系统框架的步骤记录下来。第二是将这个过程,谈不上经验,奉献给正在撘这种框架遇到各类bug,各类问题的人们。javascript
看这个以前首先你须要已经用nginx+tomcat+session共享打过框架,可是没有成功,遇到种种问题。便可参考此文。文章比较简洁,但全是精华。css
对了,本文是基于windows平台下的。html
好了,言归正传!
——————————————————————————————————————————————————java
下载Nginx ;下载地址:http://nginx.org/node
下载tomcat;下载地址:http://tomcat.apache.org/download-60.cgi linux
下载memcached-win32nginx
下载一扒拉Session共享所用的jar包web
Nginx下载解压以后获得这样的列表:apache
配置nginx.conf;新增proxy.conf和gzip.confwindows
Nginx.conf
#Nginx所用用户和组,window下不指定 #user niumd niumd; #工做的子进程数量(一般等于CPU数量或者2倍于CPU) worker_processes 4; #错误日志存放路径 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; access_log logs/access.log; fastcgi_intercept_errors on; 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; #keepalive_timeout 0; include gzip.conf; include proxy.conf; upstream localhost { #ip_hash; server localhost:18081 weight=3; server localhost:18080 weight=1; } server { listen 80; server_name localhost; #自定义40X或者50X页面的时候须要开启 fastcgi_intercept_errors on;(上面已经开启) error_page 404 http://127.0.0.1/404.html; #定义网站首页 #root:定义网站首页存放地址 #index:定义网站首页名称 location / { root D:/test; index main.html; } #定义静态资源存放地址 location ~ \.(html|js|css|png|gif|jpg|jpeg|bmp)$ { root D:/test; } #将jsp的请求转移到tomcat里面 location ~ \.(jsp)$ { proxy_connect_timeout 3; proxy_send_timeout 30; proxy_read_timeout 30; proxy_pass http://localhost; } } }
gzip.conf:
gzip on; gzip_min_length 1000; gzip_types text/plain text/css application/javascript application/x-javascript; |
proxy.conf:
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; |
至此Nginx已经配置成功。双击目录下面的nginx.exe 便可打开。
访问127.0.0.1将显示你在Nginx.conf中配置的:
location / { root D:/test; index main.html; }
的main.html页面
由此看出,已经将静态资源文件分开。
2 . tomcat
我使用的是tomcat6.X;将tomcat拷贝2份,分别将tomcat的端口改变。若是不在同一台机子上则不用更改。如下列出更改的地方:
Conf\server.xml:
A: <Server port="18005" shutdown="SHUTDOWN">
B: <Connector port="18080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
C: <Connector port="18009" protocol="AJP/1.3" redirectPort="8443" />
D: <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
jvmRoute="tomcat1"是作Session共享的时候使用的。
同理,配置tomcat2!
因为上面的Nginx.conf已经添加了两台tomcat因此,如今启动Nginx和tomcat 访问127.0.0.1/project/index.jsp 即能看出Nginx负载均衡,将请求分发到不一样的tomcat中。
以上就是Nginx+tomcat负载均衡,百度一下这种一大堆!
安装memcached,并启动。
a) 下载session共享须要的jar包
i.
配置context.xml文件,以下:
添加下面的代码:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:127.0.0.1:11211" sticky="false" sessionBackupAsync="false" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|jpeg|bmp|css|js|html|htm)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" /> |
通过上面的配置,则表明Nginx负载均衡,静态动态请求分开+tomcat集群+msm,session共享成功!!!
结果以下:
同一浏览器中:
不一样浏览器中: