请问nginx怎么nginx代理tomcat配置机群啊?

用户名:sndapk
文章数:245
评论数:27
访问量:157059
注册日期:
阅读量:1297
阅读量:3317
阅读量:435897
阅读量:1123220
51CTO推荐博文
server{&&&&&&&&&listen&80;&&&&&&&&&server_name&;&&&&&&&&&access_log&&logs/java_test_com.access.log&&&&&&&&&&&location&/&{&&&&&&&&&&&&&&&&&index&index.&&&&&&&&&&&&&&&&&root&/data/webroot/&&&&&&&&&&&&&&&&&if&(&!-e&$request_filename)&{&&&&&&&&&&&&&&&&&proxy_pass&&http://&&&&&&&&&&&&&&&&&}&&&&&&&&&}&&&&&&&&&location&~*&.*\.(jpg|png|gif|js|css)$&{&&&&&&&&&&&&&&&&&expires&3h;&&&&&&&&&&&&&&&&&proxy_store&on;&&&&&&&&&&&&&&&&&proxy_store_access&user:rw&group:r&all:r;&&&&&&&&&&&&&&&&&proxy_temp_path&/data/webroot/&&&&&&&&&&&&&&&&&include&proxy.&&&&&&&&&&&&&&&&&if&(&!-e&$request_filename)&{&&&&&&&&&&&&&&&&&proxy_pass&&http://&&&&&&&&&&&&&&&&&}&&&&&&&&&}&&&&&&&&&location&~*&\.(xml|class|jsp|properties)$&{&&&&&&&&&&&&&&&include&proxy.&&&&&&&&&&&&&&&if&(&!-e&$request_filename)&{&&&&&&&&&&&&&&&proxy_pass&&http://&&&&&&&&&&&&&&&}&&&&&&&&&&}&&}&&upstream&java&{&&&&&&&&&&&server&192.168.2.127:8080&max_fails=3&fail_timeout=30s;&&&&&&&&&&&server&192.168.2.128:8080&max_fails=3&fail_timeout=30s;&}&
待更新&&本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)您的位置:&&centos下nginx代理tomcat,使nginx同时支持php与jsp
&&&&nginx处理静态html页面的能力相当强悍,因为nginx采用了比select模型更拽的epoll ,所以若网站内容不是经常变动(大量的html页面),又需要同时支持其他诸如php、jsp的cgi脚本的,可以考虑使用nginx代替依然在使用select模型的apache(httpd);当然经过长期跟踪发现nginx的fastcgi(php-fpm)运行php会时不时的出现502的错误,而且似乎还没有办法彻底根除;所以不考虑超大流量的情况下配置php-fpm的方式让nginx支持php是个不错的选择,当然你也可以采用nginx的代理模块,来代理apache处理php,这块网络上已经有很多资料了,不再赘述~本文主要针对同一80端口下的nginx同时支持php、jsp;因本人对jsp了解不多,错误之处还请包涵。&&&&nginx作为一款新秀服务器软件,对于fastcgi方式支持php的相关资料已经很多了,随便搜索一下就可以找到许多,这里就不再介绍nginx支持php的配置了,如果需要了解这方面的知识,可以参考本人的另外一篇文章:&&&&文章名:《CentOS6.3下编译安装配置nginx1.2.3+php5.3.16+mysql5.5.27+memcached1.4.5 》&&&&地址:&&&&&Ps:nginx php mysql版本的不同配置原理类似,若有问题,可以给我留言,时间允许的情况下本人可以协助您排查~==============tomcat6安装运行&&&&centos下安装支持jsp的tomcat服务器相当简单,一条yum命令全部搞定,当然你也可以参照网络上已有的代码编译模式或者rpm包安装模式安装,本文不再介绍。tomcat安装(tomcat6版本):-----------------------shell命令:yum install tomcat6 tomcat6-webapps tomcat6-admin-webapps-----------------------yum命令执行完毕,tomcat6就安装完成;tomcat6启动:yum安装的tomcat6已经自动安装了chkconfig服务的命令,也就是可以采用诸如service httpd start之类的命令启动、停止、重启tomcat6-----------------------shell命令:service tomcat6 start|stop|restart-----------------------tomcat6的配置&&&&由于nginx php-fpm早已安装,根目录也已指定,而且恰好nginx的各个虚拟主机均在/mnt/下,比如:的根目录在/mnt/www 我的博客在/mnt/blog 以此类推&&&&所以需要配置下tomcat的根目录,在/etc/tomcat6目录下的server.xml文件中,找到&/Host&在&/Host&之前添加&&&&&Context path="" docBase="/mnt/" debug="0"/&&即可【本人的配置不具有通用性,仅仅是因为之前的各个虚拟主机的根目录平行放置在/mnt下,所以采用如上配置,tomcat默认端口为8080,需要修改的请自行查找资料】。nginx代理tomcat配置打开nginx的配置文件,在server中添加一个location,代码如下:------------------------&location ~ \.(jsp|jspx|do|wsdl)?$ {& & & & & & proxy_set_header Host $& & & & & & proxy_set_header X-Forwarded-For $remote_& & & & & & proxy_pass http://127.0.0.1:8080/XXXX$&}------------------------&&&&请注意,tomcat的根目录在/mnt下,而php、html的根目录在/mnt/xxx的目录下,如上述的/mnt/www即为根目录,所以此处要支持jsp,则需要将上述location中的红色XXXX部分改为www本文来至
转载请注明本文标题和链接:《》
邮箱(必填)
网址(选填)Nginx反向代理Tomcat
今天在做Nginx反射代理Tomcat,Nginx如何反向代理Tomcat的.action网页?
如图所示:
后台日志:
05:15:59 [error] 26165#0: *1 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.1.3, server: localhost, request: &GET /bank/zsyh.action HTTP/1.1&, upstream: &http://127.0.0.1:8080/bank/zsyh.action&, host: &192.168.1.222&, referrer: &http://192.168.1.222/index.jsp&
以下是问题补充:
:网站多用以.action结尾的网页,Nginx在代理时对这样的网页反应很慢,而且不能返回网页
上面的配置,我没有写全啊,你去Nginx 官网好好看看吧,很简单的,
详细的配置如下:
location ~ . *\.ation$
&{ proxy_cache cache_
& & & & & &proxy_cache_valid 200 304 12h;
& & & & & &proxy_cache_valid 301 302 1m;
& & & & & &proxy_cache_valid any 1m;
& & & & & &proxy_set_header Host&& $
& & & & & &proxy_set_header X-Real-IP&&&&& $remote_
& & & & & &proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
& & & & & &proxy_pass http://bak_
可以用很多种方法:
2,upstream
引用来自“葱油拌面”的答案 可以用很多种方法:
2,upstream 我用的是upstream来做的可是代理action结尾的网页时出现错误
使用upstream 的话 就是把所有的请求转发给tomcat 服务器
如果你支持想把action 类型的请求转给tomcat的话,建议你采用简单的正则来匹配
在location 中如
location ~ . *\.ation$
( proxy_pass http://tomcat_
从的日志来看那,你的tomcat有问题,看下你的应用服务器 即tomcat是不是好的
最简单的办法 直接访问 http://tomcat_ip:tomcat_port
tomcat 都无法解析请求,怎么反向代理啊。网络和逻辑搞清楚
引用来自“葱油拌面”的答案 使用upstream 的话 就是把所有的请求转发给tomcat 服务器
如果你支持想把action 类型的请求转给tomcat的话,建议你采用简单的正则来匹配
在location 中如
location ~ . *\.ation$
( proxy_pass http://tomcat_
) 在这边试的不行
引用来自“葱油拌面”的答案 上面的配置,我没有写全啊,你去Nginx 官网好好看看吧,很简单的,
详细的配置如下:
location ~ . *\.ation$
&{ proxy_cache cache_
& & & & & &proxy_cache_valid 200 304 12h;
& & & & & &proxy_cache_valid 301 302 1m;
& & & & & &proxy_cache_valid any 1m;
& & & & & &proxy_set_header Host&& $
& & & & & &proxy_set_header X-Real-IP&&&&& $remote_
& & & & & &proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
& & & & & &proxy_pass http://bak_
谢谢了,我已经调整成功了,谢谢你的回答
引用来自“ZhouLS”的答案引用来自“葱油拌面”的答案 使用upstream 的话 就是把所有的请求转发给tomcat 服务器
如果你支持想把action 类型的请求转给tomcat的话,建议你采用简单的正则来匹配
在location 中如
location ~ . *\.ation$
( proxy_pass http://tomcat_
) 在这边试的不行upstream和server 有什么区别呢?
看nginx主机能够正常访问tomcatTomcat安装和虚拟主机配置并整合Nginx做代理或负载
设置环境变量
保存以下内容到/etc/profile:
export JAVA_HOME=/usr/local/webserver/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export TOMCAT_HOME=/usr/local/webserver/tomcat
export CATALINA_HOME=/usr/local/webserver/tomcat
使之生效:
source /etc/profile
启动Tomcat
chmod +x /usr/local/webserver/tomcat/bin/*.sh
/usr/local/webserver/tomcat/bin/startup.sh
Using CATALINA_BASE:
/usr/local/webserver/tomcat
Using CATALINA_HOME:
/usr/local/webserver/tomcat
Using CATALINA_TMPDIR: /usr/local/webserver/tomcat/temp
Using JRE_HOME:
/usr/java/jdk1.7.0_10/jre
Using CLASSPATH:
/usr/local/webserver/tomcat/bin/bootstrap.jar:/usr/local/webserver/tomcat/bin/tomcat-juli.jar
Tomcat 虚拟主机
vi /usr/local/webserver/tomcat/conf/server.xml
&Host name=&www.1987.name& debug=&0& appBase=&/data/wsdata/wwwroot& unpackWARs=&true& autoDeploy=&true&&
&Context path=&& docBase=&.&/&
&Valve className=&org.apache.catalina.valves.AccessLogValve& directory=&logs& prefix=&access_log.& suffix=&.txt& pattern=&common& resolveHosts=&false&/&
&Logger className=&org.apache.catalina.logger.FileLogger& directory=&logs&
prefix=&access_log.& suffix=&.txt& timestamp=&true&/&
【声明】:黑吧安全网()登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱,我们会在最短的时间内进行处理。
上一篇:【】【】用户名:quenlang
文章数:44
评论数:46
访问量:58840
注册日期:
阅读量:1297
阅读量:3317
阅读量:435897
阅读量:1123220
51CTO推荐博文
&&& Nginx最早是作为一款优秀的反向代理软件,以高并发下的卓越性能被越来越多的用户所用户,国内最早研究nginx的是张宴,该大牛的博客地址: 。但是随着需求的发展,nginx的功能已经不再单单是反向代理,现在已经更倾向作为web容器。&&&&Nginx从0.7.48版本开始,支持了类似Squid的缓存功能。Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存。两者的功能基本上一样。自Nginx 0.8.32版本,proxy_cache和fastcgi_cache已经比较完善,加上第三方的ngx_cache_purge模块(用于清除指定URL的缓存),性能不亚于squid,更为关键的是,您在拥有一个反向代理服务器的同时,还可以同时拥有一个高性能的web缓存服务器,鱼与熊掌兼得的快感自然不言而喻!先看环境:&&&&&&&&192.168.0.101&&&&nginx server&&&&&&&&192.168.0.102 && tomcat server&&&&&&&&192.168.0.103 && tomcat server&&&&&&&&192.168.0.104 && tomcat server&&&&&&&&192.168.0.105 && tomcat server操作系统:&&&&centosNginx版本:&&&&nginx-1.7.6.tar.gz,采用源码编译安装Ngx_cache_purge版本:&&&&ngx_cache_purge-2.1.tar.gzTomcat版本:&&&&apache-tomcat-7.0.56.tar.gzJDK版本:&&& jdk-7u60-linux-x64.rpm最终架构:&&&&在弄明白架构之后,我们开始着手一步步来实现:1、安装jdk + tomcat&&&&hadoop2、hadoop3、hadoop4、hadoop5上安装jdkrpm&-ivh&jdk-7u60-linux-x64.rpm&&&&配置环境变量[root@hadoop2&~]#&cat&&.bash_profile&
#&.bash_profile
#&Get&the&aliases&and&functions
if&[&-f&~/.bashrc&];&then
&&&&&&&&.&~/.bashrc
#&User&specific&environment&and&startup&programs
PATH=$PATH:$HOME/bin
export&JAVA_HOME=/usr/java/jdk1.7.0_60
export&JRE_HOME=/usr/java/jdk1.7.0_60/jre
export&CLASSPATH=./:/usr/java/jdk1.7.0_60/lib:/usr/java/jdk1.7.0_60/jre/lib
export&PATH&&&&使环境变量生效,并验证java环境是否安装成功[root@hadoop2&~]#&.&.bash_profile&
[root@hadoop2&~]#&java&-version
java&version&"1.7.0_60"
Java(TM)&SE&Runtime&Environment&(build&1.7.0_60-b19)
Java&HotSpot(TM)&64-Bit&Server&VM&(build&24.60-b09,&mixed&mode)&&&&hadoop2、hadoop3、hadoop4、hadoop5上安装tomcat,在webapps下创建测试目录shop和测试文件hadoop.html和test.jsp,测试文件中的内容为每个tomcat节点的主机名和IP地址,方便后边测试负载均衡[root@hadoop2&~]#&tar&xf&&apache-tomcat-7.0.56.tar.gz&-C&/opt/
[root@hadoop2&~]#&cd&/opt/apache-tomcat-7.0.56/webapps/
[root@hadoop2&webapps]#&mkdir&shop
[root@hadoop2&webapps]#&vi&shop/hadoop.html&
&192.168.0.102
[root@hadoop2&webapps]#&vi&shop/test.jsp
this&is&hadoop2&root`s&jsp!&&&&将tomcat的bin目录配置到环境变量,并使更改生效,并启动tomcat##&设置环境变量
[root@hadoop2&~]#&cat&.bash_profile&
#&.bash_profile
#&Get&the&aliases&and&functions
if&[&-f&~/.bashrc&];&then
&&&&&&&&.&~/.bashrc
#&User&specific&environment&and&startup&programs
PATH=$PATH:$HOME/bin:/opt/apache-tomcat-7.0.56/bin
export&JAVA_HOME=/usr/java/jdk1.7.0_60
export&JRE_HOME=/usr/java/jdk1.7.0_60/jre
export&CLASSPATH=./:/usr/java/jdk1.7.0_60/lib:/usr/java/jdk1.7.0_60/jre/lib
export&PATH
##&使设置生效
[root@hadoop2&~]#&.&.bash_profile
##&启动tomcat
[root@hadoop2&~]#&startup.sh&
Using&CATALINA_BASE:&&&/opt/apache-tomcat-7.0.56
Using&CATALINA_HOME:&&&/opt/apache-tomcat-7.0.56
Using&CATALINA_TMPDIR:&/opt/apache-tomcat-7.0.56/temp
Using&JRE_HOME:&&&&&&&&/usr/java/jdk1.7.0_60/jre
Using&CLASSPATH:&&&&&&&/opt/apache-tomcat-7.0.56/bin/bootstrap.jar:/opt/apache-tomcat-7.0.56/bin/tomcat-juli.jar
Tomcat&started.&&&&测试tomcat是否正常工作,浏览器中访问,能够正常显示测试页面,表明工作正常。&&&&3、4、5节点安装上述方法安装,注意测试文件中的内容改为自己的主机名和IP地址。2、安装nginx + ngx_cache_purge&&&&首先下载、到hadoop1服务器上,首先安装ngx-cache_purge,只需要解压tar包就可以了[root@hadoop1&pub]#&tar&&xf&ngx_cache_purge-2.1.tar.gz&&-C&/opt/&&&&安装nginx,过程中需要将ngx_cahce_purge模块编译进来[root@hadoop1&pub]#&tar&&xf&nginx-1.7.6.tar.gz&&-C&/opt/
[root@hadoop1&pub]#&cd&&/opt/nginx-1.7.6/
[root@hadoop1&pub]#&./configure&--user=www&--group=www&--add-module=/opt/ngx_cache_purge-2.1&
--prefix=/usr/local/nginx&--with-http_stub_status_module&--with-http_ssl_module
[root@hadoop1&pub]#&make&&&&make&install&&&&关于源码安装nginx,比较简单,如果过程中遇到问题可以到网上看看,都能找到答案,也可以在下面留言,一起讨论。&&&&为了方便管理,为nginx编写服务脚本[root@hadoop1&~]#&vi&/etc/init.d/nginx&
#!/bin/bash
#chkconfig:&-&85&15
#description:&this&script&use&to&manage&nginx&process.
.&/etc/rc.d/init.d/functions
procnum=`ps&-ef&|grep&"/usr/local/nginx/sbin/nginx"|grep&-v&"grep"|wc&-l`
start&()&{
&&&&&&&&if&[&"$procnum"&-eq&1&-a&-f&/usr/local/nginx/logs/nginx.pid&];&then
&&&&&&&&&&&&echo&-n&"Starting&nginx:"
&&&&&&&&&&&&success
&&&&&&&&&&&&echo
&&&&&&&&else
&&&&&&&&&&&&/usr/local/nginx/sbin/nginx
&&&&&&&&&&&&if&[&"$?"&-eq&0&];&then&
&&&&&&&&&&&&&&&&echo&-n&"Starting&nginx:"
&&&&&&&&&&&&&&&&success
&&&&&&&&&&&&&&&&echo
&&&&&&&&&&&&else
&&&&&&&&&&&&&&&&echo&-n&"Starting&nginx:"
&&&&&&&&&&&&&&&&failure
&&&&&&&&&&&&&&&&echo
&&&&&&&&&&&&&&&&exit&4
&&&&&&&&&&&&fi
&&&&&&&&fi
&&&&&&&&if&[&"$procnum"&-eq&1&-a&-f&/usr/local/nginx/logs/nginx.pid&];&then
&&&&&&&&&&&&/usr/local/nginx/sbin/nginx&-s&stop
&&&&&&&&&&&&if&[&"$?"&-eq&0&];&then
&&&&&&&&&&&&&&&&&&&&echo&-n&"Stopping&nginx:"
&&&&&&&&&&&&&&&&&&&&success
&&&&&&&&&&&&&&&&&&&&echo
&&&&&&&&&&&&else&
&&&&&&&&&&&&&&&&&&&&echo&-n&"Stopping&nginx:"
&&&&&&&&&&&&&&&&&&&&failure
&&&&&&&&&&&&&&&&&&&&echo
&&&&&&&&&&&&&&&&&&&&exit&3
&&&&&&&&&&&&fi
&&&&&&&&else&&
&&&&&&&&&&&&echo&-n&"Stopping&nginx:"
&&&&&&&&&&&&success
&&&&&&&&&&&&echo
&&&&&&&&fi
case&$1&in
&&&&start)
&&&&&&&&start
&&&&&&&&;;
&&&&&&&&stop
&&&&&&&&;;
&&&&restart)
&&&&&&&&stop
&&&&&&&&sleep&1
&&&&&&&&start
&&&&&&&&;;
&&&&reload)
&&&&&&&&if&[&"$procnum"&-eq&1&-a&-f&/usr/local/nginx/logs/nginx.pid&];&then
&&&&&&&&&&&&/usr/local/nginx/sbin/nginx&-s&reload
&&&&&&&&else&
&&&&&&&&&&&&echo&"nginx&is&not&running!please&start&nginx&first..."
&&&&&&&&&&&&exit&2
&&&&&&&&fi
&&&&&&&&;;
&&&&status)
&&&&&&&&if&[&"$procnum"&-eq&1&-a&-f&/usr/local/nginx/logs/nginx.pid&];&then
&&&&&&&&&&&&echo&"nginx&is&running..."
&&&&&&&&else&
&&&&&&&&&&&&echo&"nginx&is&not&running..."
&&&&&&&&fi
&&&&&&&&;;
&&&&&&&&*)
&&&&&&&&echo&"Usage&:&nginx&[&start|stop|reload|restart|status&]"
&&&&&&&&exit&1
&&&&&&&&;;
esac&&&&然后授予脚本可执行权限,并加入chkconfig开机自启动,并测试[root@hadoop1&~]#&chmod&+x&/etc/init.d/nginx
[root@hadoop1&~]#&chkconfig&nginx&on
[root@hadoop1&~]#&/etc/init.d/nginx&start
Starting&nginx:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[&&OK&&]
[root@hadoop1&~]#&/etc/init.d/nginx&status
nginx&is&running...
[root@hadoop1&~]#&/etc/init.d/nginx&stop
Stopping&nginx:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[&&OK&&]3、配置nginx,实现反向代理和web缓存[root@hadoop1&~]#&vi&/usr/local/nginx/conf/nginx.conf
user&&www&
worker_processes&&8;
error_log&&/usr/local/nginx/logs/error.log&
pid&&&&&&&&/usr/local/nginx/logs/nginx.
&&&&worker_connections&&65535;
&&&&include&&&&&&&mime.
&&&&default_type&&application/octet-
&&&&access_log&&/usr/local/nginx/logs/access.
&&&&charset&utf-8;
&&&&sendfile&&&&&&&&
&&&&tcp_nopush&&&&&
&&&&keepalive_timeout&&60;
&&&&client_body_buffer_size&&512k;
&&&&proxy_connect_timeout&&&&5;
&&&&proxy_read_timeout&&&&&&&60;
&&&&proxy_send_timeout&&&&&&&5;
&&&&proxy_buffer_size&&&&&&&&16k;
&&&&proxy_buffers&&&&&&&&&&&&4&64k;
&&&&proxy_busy_buffers_size&128k;
&&&&proxy_temp_file_write_size&128k;
&&&&gzip&&
&&&&gzip_min_length&&1k;
&&&&gzip_buffers&&&&&4&16k;
&&&&gzip_http_version&1.1;
&&&&gzip_comp_level&2;
&&&&gzip_types&&&&&&&text/plain&application/x-javascript&text/css&application/
&&&&gzip_vary&
&&&&##&设置缓存临时目录
&&&&proxy_temp_path&/data/proxy_temp_
&&&&##&设置缓存目录,并设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。
&&&&proxy_cache_path&/data/proxy_cache_dir&levels=1:2&keys_zone=cache_one:200m&inactive=1d&max_size=30g;
&&&&##&设置代理的后端tomcat集群
&&&&upstream&web_server&{
&&&&&&&&server&192.168.0.102:8080&weight=1&max_fails=2&fail_timeout=30s;
&&&&&&&&server&192.168.0.103:8080&weight=1&max_fails=2&fail_timeout=30s;
&&&&&&&&server&192.168.0.104:8080&weight=1&max_fails=2&fail_timeout=30s;
&&&&&&&&server&192.168.0.105:8080&weight=1&max_fails=2&fail_timeout=30s;
&&&&server&{
&&&&&&&&listen&&&&&&&80;&&&&&&&&&&&&##&nginx监听端口
&&&&&&&&server_name&&192.168.0.101;&##&设置nginx的主机名或IP地址
&&&&&&&&root&&&&&&&&&&&&&&&&&&&##&nginx站点的根目录
&&&&&&&&index&&index.html&index.htm&index.
&&&&&&&&location&/&{
&&&&&&&&&&&&proxy_pass&http://web_&&&&##&这里设置要代理的集群名称
&&&&&&&&&&&&proxy_set_header&Host&&$
&&&&&&&&&&&&proxy_set_header&X-Forwarded-For&&$proxy_add_x_forwarded_
&&&&&&&&&&&&proxy_set_header&X-Real-IP&&$remote_
&&&&&&&&&&&&#&如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移
&&&&&&&&&&&&proxy_next_upstream&http_502&http_504&error&timeout&invalid_
&&&&&&&&&&&&proxy_cache&cache_
&&&&&&&&&&&&#&对不同的HTTP状态码设置不同的缓存时间
&&&&&&&&&&&&proxy_cache_valid&&200&304&12h;
&&&&&&&&&&&&#&以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
&&&&&&&&&&&&proxy_cache_key&$host$uri$is_args$
&&&&&&&&##&用于清除缓存,访问http://192.168.0.101/purge/shop/hadoop.html来清除http://192.168.0.101/shop/hadoop.html的页面缓存
&&&&&&&&location&~&/purge(/.*)&{
&&&&&&&&&&&&allow&127.0.0.1;
&&&&&&&&&&&&allow&192.168.0.0/16;
&&&&&&&&&&&&deny&
&&&&&&&&&&&&proxy_cache_purge&&&&cache_one&&&$host$1$is_args$
&&&&&&&&##&扩展名以.php、.jsp、.cgi、.jhtml结尾的动态应用程序不缓存。
&&&&&&&&location&~&.*\.(php|jsp|cgi|jhtml)?$&{
&&&&&&&&&&&&proxy_pass&http://web_
&&&&&&&&&&&&proxy_set_header&Host&&$
&&&&&&&&&&&&proxy_set_header&X-Forwarded-For&&$proxy_add_x_forwarded_
&&&&&&&&&&&&proxy_set_header&X-Real-IP&&$remote_
&&&&&&&&&&&&proxy_cache&cache_
&&&&&&&&&&&&proxy_cache_valid&&200&304&12h;
&&&&&&&&&&&&proxy_cache_key&$host$uri$is_args$
&&&&&&&&##&关闭访问日志
&&&&&&&&access_log&
}&&& 然后重启nginx[root@hadoop1&~]#&/etc/init.d/nginx&&&restart&
Stopping&nginx:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[&&OK&&]
Starting&nginx:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[&&OK&&]4、效果测试&&&&测试静态页面的负载均衡和缓存,第一次访问http://192.168.0.101/shop/hadoop.html&&&&然后清除缓存,并再次访问http://192.168.0.101/shop/hadoop.html&&&&可以看出,当第一次访问时,通过nginx的反向代理,请求被转发到了hadoop2上的tomcat上。而且对于这次请求,nginx已经成功缓存到了静态页面,当清楚缓存后,再次访问相同的地址,请求则被转发到了hadoop3上的tomcat上,说明已经实现了负载均衡。&&&&测试图片能否被缓存,第一次访问&&&&可见,上面nginx的配置,已经成功的缓存到了图片和静态页面,下面我们测试动态页面能否被缓存&&&&&&访问192.168.0.101/shop/test.jsp,发现每刷新一次,页面内容都会发生改变,说明请求在后端tomcat集群上轮询,并不是去的缓存,说明动态程序并没有没被缓存,也可以使用purge来验证,如下:&&&&说明动态程序并没有被缓存到nginx中来,验证了上面nginx的配置文件是正确的,至此,已经实现了nginx反向代理后端tomcat集群实现负载均衡,同时使用proxy_cache来缓存网站的静态文件,一箭双雕!5、总结&&&&从上面的配置中可以看到使用nginx来做为反向代理和web缓存是如此的轻松,而且功能是如此的强大。比较关键的是,在满足需求的情况下,不用单独的使用缓存层(比如用squid实现),降低了运维的成本,而且在系统出现故障的时候,可以快速的定位故障点,当应用不可用时,只需要分别访问后端的tomcat和nginx就可以判断问题出现在哪一层上。而且在性能上,Nginx对多核CPU的利用,胜过Squid不少。另外,在反向代理、负载均衡、健康检查、后端服务器故障转移、Rewrite重写、易用
性上,Nginx也比Squid强大得多,可以考虑使用nginx来替换你的squid。本文出自 “” 博客,转载请与作者联系!
了这篇文章
类别:┆阅读(0)┆评论(0)
18:32:03 19:53:36 20:43:25 10:45:56 22:23:05

我要回帖

更多关于 nginx 代理tomcat 404 的文章

 

随机推荐