[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>