nginx和tomcat的简单整合
来源:互联网 发布:2010年湖人季后赛数据 编辑:程序博客网 时间:2024/05/16 19:39
centos上nginx和tomcat的简单整合nginx可以和tomcat在同一台服务器上,公用一个web主目录,实现动静分离;它们两个也可以不在一台服务器上,nginx处理html,js,css,jpg,png,rar,gif,doc,pdf等静态资源,tomcat专门处理jsp动态语言.我这里测试nginx和tomcat不在一台服务器上,nginx实现对tomcat的反向代理. 我的两台虚拟机都是centos6.4最小化安装. vm1 192.168.196.127 nginx vm2 192.168.196.129 tomcat 1.vm1上安装nginx,首先到http://nginx.org/en/download.html 下载最先的nginx.确定你十分安装编译工具,如果没有安装,使用yum安装编译工具gcc,cc,make等. #yum groupinstall "Development Tools" "Development Libraries" -y 编译安装命令 #tar -zxvf nginx-1.5.1.tgz #cd nginx-1.5.1 #./configure --with-pcre --prefix=/usr/local/nginx --with-http_stub_status_module && make && make install vm2上安装tomcat #yum install tomcat6 -y 2. 配置tomcat,我这里只关心Host段 vi /etc/tomcat6/server.xml <Host name="localhost" appBase="" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="/etc/tomcat6/webapps/" debug="0" reloadable="true" caseSensitive="false"> </Context> </Host> #mkdir /etc/tomcat6/webapps 3.下面我们建立两个页面 index.html和index.jsp(打印tomcat环境变量) vi /etc/tomcat/webapps/index.html This is Tomcat6 webserver index.html vi /etc/tomcat6/webapps/index.jsp<%@ page session="false" import="java.util.*" %><%!Enumeration enumNames;String strName,strValue;%><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title获取各种CGI环境变量</title></head><body><table border=1 cellspacing=0 cellpadding=0 align=center><tr> <th>Name</th> <th>Value</th></tr><%enumNames = request.getHeaderNames();while(enumNames.hasMoreElements()){ strName = (String)enumNames.nextElement(); strValue = request.getHeader(strName);%><tr> <td> <%=strName%></td> <td> <%=strValue%></td></tr><%}%><tr> <th>Name</th> <th>Value</th></tr><tr> <td> CharacterEncoding</td> <td> <%=request.getCharacterEncoding()%></td></tr><tr> <td> CONTENT_LENGTH</td> <td> <%=request.getContentLength()%></td></tr><tr> <td> CONTENT_TYPE</td> <td> <%=request.getContentType()%></td></tr><tr> <td> SERVER_PROTOCOL</td> <td> <%=request.getProtocol()%></td></tr><tr> <td> REMOTE_ADDR</td> <td> <%=request.getRemoteAddr()%></td></tr><tr> <td> REMOTE_HOST</td> <td> <%=request.getRemoteHost()%></td></tr><tr> <td> Scheme</td> <td> <%=request.getScheme()%></td></tr><tr> <td> SERVER_NAME</td> <td> <%=request.getServerName()%></td></tr><tr> <td> SERVER_PORT</td> <td> <%=request.getServerPort()%></td></tr><tr> <td> AUTH_TYPE</td> <td> <%=request.getAuthType()%></td></tr><tr> <td> REQUEST_METHOD</td> <td> <%=request.getMethod()%></td></tr><tr> <td> PATH_INFO</td> <td> <%=request.getPathInfo()%></td></tr><tr> <td> PATH_TRANSLATED</td> <td> <%=request.getPathTranslated()%></td></tr><tr> <td> QUERY_STRING</td> <td> <%=request.getQueryString()%></td></tr><tr> <td> REMOTE_USER</td> <td> <%=request.getRemoteUser()%></td></tr><tr> <td> REQUEST_URI</td> <td> <%=request.getRequestURI()%></td></tr><tr> <td> SCRIPT_NAME</td> <td> <%=request.getServletPath()%></td></tr></table></body></html>4.vm2上配置nginx反向代理注释掉/usr/local/nginx/etc/nginx中所有的server{}段,我们新加一个server{}upstream jsp { server 192.168.196.129:8080; } server { listen 80; server_name localhost defalut_server; location ~* \.(jpg|txt|png|gif|rar|html|pdf|doc|exe) { root /usr/local/nginx/html; } location / { proxy_pass http://jsp; 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; } }如果后端有多台tomcat服务器,我们只需要在upstream中加入 server x.y.z.a:8080;就可以实现负载均衡了,默认是1:1负载均衡.如果我们在server 192.168.196.129:8080加入weight=10的方式可以修改几台服务器的权重,服务器配置好的,权重应该大一些.处于多台后端服务器session的问题,我可以可以在最下面加入upstream中加入ip_hash使单个IP使用固定的后端服务器在实际的应用中,我们可以通过rsync+inotify把tomcat上的web主目录/etc/tomcat/webapps实时同步到nginx主机/usr/local/nginx/html上.我们同时也在nginx服务器上建立一个文件vi /usr/local/nginx/html/1.txtthis is a 1.txt on nginx web server!vi /usr/local/nginx/html/index.htmlindex.html on nginx!访问测试http://192.168.196.128 我们会发现它会访问到nginx上的index.html页面访问测试http://192.168.196.128/1.txt 我们也会发现是nginx上的1.txt访问测试http://192.168.196.128/index.jsp 我们会发现是tomcat上的jsp,并且会显示host 192.168.196.128x-real-ip 192.168.196.1x-forwarded-for 192.168.196.1说明页面是nginx向tomcat请求的,但是tomcat可以得知我们的真实IP,就是x-real-ip和x-forward-for字段.
0 0
- nginx和tomcat的简单整合
- nginx 和 Tomcat 整合
- Nginx整合Apache2和Tomcat
- nginx和tomcat的简单配置
- ubuntu10.04 安装nginx 及和tomcat的整合
- 利用nginx的反向代理和tomcat整合
- [nginx]centos6.5下nginx-1.6.2的安装,与tomcat简单整合
- windows下整合 tomcat 和 nginx【原创】
- centos-64整合nginx和tomcat
- windows下整合 tomcat 和 nginx
- windows下整合 tomcat 和 nginx【原创】
- nginx + tomcat的简单部署
- 基于nginx的tomcat负载均衡和集群(超简单)
- 基于nginx的tomcat负载均衡和集群(超简单)
- 基于nginx的tomcat负载均衡和集群(超简单)
- 基于nginx的tomcat负载均衡和集群(超简单)
- 基于nginx的tomcat负载均衡和集群(超简单)
- 基于nginx的tomcat负载均衡和集群(超简单)
- 【jQuery】事件 小汇总
- Children’s Queue
- 不丹活佛
- maven核心,pom.xml详解
- Ubuntu安装eclipse
- nginx和tomcat的简单整合
- EF的增删改查
- erlang字符串操作
- 并查集
- Zookeeper源码分析(1)- Zookeeper的启动流程
- 使用 Eclipse Memory Analyzer 进行堆转储文件分析
- uuid生成网站
- div垂直居中 css div盒子上下垂直居中
- android图片处理