本文,是筆者工做之餘寫的,第一是把以前打系統框架的步驟記錄下來。第二是將這個過程,談不上經驗,奉獻給正在撘這種框架遇到各類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共享成功!!!
結果以下:
同一瀏覽器中:
不一樣瀏覽器中: