[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf #user nobody; worker_processes 1; worker_rlimit_nofile 100000; #把這個值設高,這樣nginx就不會有「too many open files」問題 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { server_tokens off; #不顯示nginx版本, 提升安全性 sendfile on; include mime.types; tcp_nopush on; charset utf-8; default_type application/octet-stream; keepalive_timeout 65; tcp_nodelay on; client_body_buffer_size 512k; proxy_connect_timeout 5; proxy_read_timeout 60; proxy_send_timeout 5; reset_timeout_connection on; #告訴nginx關閉不響應的客戶端鏈接。 gzip on; #開啓壓縮 upstream mytomcat { #配置權重,有多臺機器的話配置多個ip,單臺機器多個tomcat的話,修改端口 server 192.168.3.111:8080 weight=1; server 192.168.3.112:8080 weight=2; server 192.168.3.113:8080 weight=3; server 192.168.3.114:8080 weight=4; } server { listen 80; server_name 192.168.3.111; # 訪問地址 location /your_project_name { # 訪問的項目 #這裏名字跟上面的upstream對應 proxy_pass http://mytomcat; #配置獲取用戶真實IP地址 proxy_set_header Host $host; proxy_set_header Proxy-Client-IP $remote_addr; proxy_set_header WL-Proxy-Client-IP $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; } # 靜態資源交給nginx管理 location ~* \.(jpg|jpeg|gif|png|bmp)$ { root /usr/web/tomcat_w1/webapps/your_project_name/images; expires 30d; } } }
訪問項目地址下的testnginx.jsp(新建,每一個tomcat放不一樣的內容,用於區分是nginx訪問到哪一個tomcat了),不斷的刷新頁面,會看到nginx根據權重去訪問不一樣的tomcat下項目的testnginx.jspcss
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> This is nginx1 jsp page....<br> </body> </html>
效果圖:html
# memcached 啓動 /usr/local/bin/memcached -m 64 -p 11211 -u nobody -vv # memcached 後臺進程的方式啓動 /usr/local/bin/memcached -d -m 64 -p 11211 -u nobody -vv
<?xml version='1.0' encoding='utf-8'?> <Context> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:192.168.3.111:11211" lockingMode="auto" sticky="false" requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$" sessionBackupAsync= "false" sessionBackupTimeout= "100" copyCollectionsForSerialization="true" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" /> <WatchedResource>WEB-INF/web.xml</WatchedResource> </Context>
asm-3.2.jar kryo-1.04.jar kryo-serializers-0.9.jar memcached-session-manager-1.6.1.jar memcached-session-manager-tc7-1.6.1.jar minlog-1.2.jar msm-kryo-serializer-1.6.0.jar reflectasm-1.01.jar spymemcached-2.7.3.jar
<%@ page language="java" import="java.util.*,com.brand.utils.RequestUtil" pageEncoding="utf-8"%> <body> Tomcat 11</br> SessionId:<%out.println("---->" + session.getId() + "<br>");%> SessionIP:<%out.println("---->" + RequestUtil.getRemoteIp(request) + "<br>");%> SessionPort:<%out.println("---->" + request.getServerPort() + "<br>");%> This is tomcat1 jsp page....<br> </body> </html>