(总结)Nginx与Apache、Tomcat、Resin动静分离核心配置

PS:近来有几个刚使用nginx的新童鞋老问我,nginx+fastcgi不够稳定,偶尔出现502错误,怎么解决?本人使用nginx也有3年多了,也认为php-fpm模块不够稳定,在访问量不大的时候没事,访问量增大时易出现502,当然这个还跟nginx的一些缓存设置和超时设置有关,设置不合理就易出现。php-fpm动态生成大型页面也没有优势,有时候会使php-cgi进程变成僵尸进程。据说php 5.4版本已自带php-fpm模块,稳定性是否有改进?太新还没用过,不评论。其实本人比较喜欢nginx跑静态和做负载反向代理,动态php还是交给apache处理比较稳定,jsp就交给tomcatresin或jboss。nginx跑静态的能力是无与伦比的,是目前web服务器里最强的。nginx和apachetomcat、resin的动静分离配置其实很简单,就几句配置,稳定性也非常好。

1、nginx和apache的动静分离配置:

把下面配置放到nginx配置文件相应的server { }里面,如果使用其他端口号,改一下就行:

#所有php的动态页面均交由apache处理
location ~ .(php)?$ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:88;
}
#所有静态文件由nginx直接读取不经过apache
location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{ expires 15d; }
location ~ .*.(js|css)?$
{ expires 1h; }

如果之前设置了FastCGI的,把下面的配置注释掉:


# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ .php$ {
# root /var/www/html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# include fastcgi.conf;
#}

重启nginx就生效,如图所示,标头显示nginx,phpinfo里面显示是apache,说明动静分离生效。

2、nginx和tomcat、resin的动静分离配置:

同上,把下面配置放到nginx配置文件相应的server { }里面:

#所有jsp的页面均交由tomcat或resin处理
location ~ .(jsp|jspx|do)?$ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
}
#所有静态文件由nginx直接读取不经过resin
location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{ expires 15d; }
location ~ .*.(js|css)?$
{ expires 1h; }

更多的nginx配置和模块详解请参考官方wiki:http://wiki.nginx.org/Main

时间: 2024-11-03 19:16:53

(总结)Nginx与Apache、Tomcat、Resin动静分离核心配置的相关文章

Apache+Tomcat实现动静分离

完成Tomcat集群搭建后,我们只需修改两.三处即可实现动静分离. 1.将原来httpd.conf中JkMount的路由规则都放入conf/extra/httpd-urimap.conf中: /*=loadbalancer /jkstatus=jkstatus !/*.css=loadbalancer !/*.js=loadbalancer !/*.jpg=loadbalancer !/*.gif=loadbalancer !/*.png=loadbalancer !/*.html=loadba

nginx+tomcat实现动静分离

一.构建java语言环境Jdk用于设置java程序运行环境,当需要运行java语言时,则必须先设置jdk环境.1. 获取二进制文件.# sh jdk-6u32-linux-x64.bin# mv jdk1.6.0_32/ /usr/local/jdk2.给jdk1.6.0_32/做软链接,方便jdk更新# ln -s /usr/local/jdk/ java3.设置java命令运行环境,并使其生效.# vim /etc/profileexport JAVA_HOME=/usr/local/jdk

Nginx自学手册(六)Nginx+Tomcat实现动静分离

(一)简述 Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache.Tomcat及IIS等来实现,这里就以Nginx作为代理服务器的同时,也使用其作为静态资源的服务器,而动态的访问服务器就以Tomcat为例说明. (二)环境简介 服务器名称 IP 备注 Nginx服务器 192.168.180.4 Tomcat服务器 192.168.180.23 client 192.168.181.231 客户端访问 (三)具体步骤:

Nginx+LAT(apache+tomcat)的实现和使用memcached保存tomcat的session会话

Nginx+LAT(Apache+tomcat)的实现和Apache反向代理和负载均衡tomcat的不同方式以及使用memcached保存tomcat的session会话 一.Nginx+LAT(Apache+tomcat)的环境结构; 1.Nginx +Apache实现负载均衡用户请求至tomcat,其中Nginx是负载均衡调度器,Apache和tomcat在同一台机器上,Apache将关于JSP的请求发送至tomcat. 2.实验结构图: 3.环境介绍,在两台CentOS7上都安装Tomca

nginx反向代理,实现动静分离

nginx反向代理,实现动静分离 nginx反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器:并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器. 当客户机向站点提出请求时,请求将转到代理服务器.然后,代理服务器通过防火墙中的特定通路,将客户机的请求发送到内容服务器.内容服务器再通过该通道将结果回传给代理服务器.代理服务器将检索到的信息发送给客户机. 实验

使用nginx实现负载均衡和动静分离

使用nginx实现负载均衡和动静分离 在192.168.221.10这台机器上源码编译安装nginx yum -y install gcc gcc-c++ autoconf automake zib zib-devel openssl openssl-devel pcre pcre-devel cd /usr/local/src/ wget http://nginx.org/download/nginx-1.8.0.tar.gz tar zxvf nginx-1.8.0.tar.gz cd ng

Apache Tomcat/6.0.39如何配置连接mysql,JDBC:mysql-connector-java-5.1.30-bin.jar-成功连接心得

http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html 前提:开启TOMCAT,MYsql MySQL DBCP Example0. Introduction Versions of MySQL and JDBC drivers that have been reported to work: MySQL 3.23.47, MySQL 3.23.47 using InnoDB,, MySQL 3.23

HTTP/NGINX+TOMCAT实现动静分离

什么是TOMCAT? Tomcat和其他web服务器一样,可以响应HTML的请求,实际上Tomcat是Apache的服务器的扩展,但是运行时他是独立运行的.另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式,但是它的静态页面处理能力比较差.可以使用动静分离来提高站点性能. JAVA Java的技术体系有三个分类:java2SE,java2EE,jave2ME(移动开发).jdk其实相当于java2SE.java2EE相当于是在jdk中添加了一些企业级类库,

apache与tomcat实现动静分离

一:软件版本 httpd-2.4.10.tar.gz apache-tomcat-7.0.57.tar.gz jdk-7u75-linux-x64.rpm 二:配置apache通过mod_proxy模块与Tomcat连接,实现动静分离: 要使用mod_proxy与Tomcat实例连接,需要apache已经装载mod_proxy.mod_proxy_http.mod_proxy_ajp和proxy_balancer_module(实现Tomcat集群时用到)等模块: # /usr/local/ap