NGINX+APACHE/TOMCAT realization of reverse Proxy and static and dynamic separation

Source: Internet
Author: User

Actually I prefer nginx run static and do load reverse proxy, dynamic PHP or to Apache processing more stable, JSP to Tomcat, resin or jboss. Nginx run static ability is unparalleled, is currently the strongest Web server. Nginx and Apache, Tomcat, resin and static separation configuration is actually very simple, a few sentence configuration, stability is very good.

1, Nginx and Apache configuration of static and dynamic separation:

Put the following configuration in the Nginx configuration file corresponding to the server {}, if you use a different port number, change the line:

#所有php的动态页面均交由apache处理

?
123456 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

?
1234 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; }

If you have previously set the fastcgi, comment out the following configuration:

?
12345678 # 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;#}

Restart Nginx in effect, the header display Nginx,phpinfo inside the display is Apache, indicating that the static and dynamic separation effective.

2.niginx and Tomcat configuration for static and dynamic separation:
#主配置文件配置

?
1 [[email protected] ~]# vi /usr/local/nginx/conf/nginx.conf
?
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 user nginx;worker_processes 1;error_log logs/error.log;pid    logs/nginx.pid;events {  worker_connections 1024;}http {  include    mime.types;  default_type application/octet-stream;  #日志格式定义  log_format main ‘$remote_addr - $remote_user[$time_local] "$request" ‘           ‘$status $body_bytes_sent"$http_referer" ‘           ‘"$http_user_agent" "$http_x_forwarded_for"‘;  access_log logs/access.log main;  sendfile    on;  keepalive_timeout 65;  #gzip压缩功能设置  gzip on;  gzip_min_length 1k;  gzip_buffers  4 16k;  gzip_http_version 1.0;  gzip_comp_level 2;  gzip_types text/plain application/x-javascripttext/css application/xml;  gzip_vary on;  server {    listen    80;    server_name www.test.com;    location / {  #jsp网站程序根目录,一般nginx与tomcat在同一个目录      root /usr/local/tomcat/webapps/ROOT;      index index.html index.jsp index.html;    }    location ~ .*.jsp$ {    index index.jsp;    proxy_pass http://127.0.0.1:8080;  #来自jsp请求交给tomcat处理    proxy_redirect off;    proxy_set_header Host $host;  #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP    proxy_set_header X-Real-IP $remote_addr;    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    client_max_body_size 10m;  #允许客户端请求的最大单文件字节数    client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数    proxy_connect_timeout 90;  #nginx跟后端服务器连接超时时间(代理连接超时)    proxy_read_timeout 90;   #连接成功后,后端服务器响应时间(代理接收超时)    proxy_buffer_size 4k;    #设置代理服务器(nginx)保存用户头信息的缓冲区大小    proxy_buffers 6 32k;    #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置    proxy_busy_buffers_size 64k;#高负荷下缓冲大小(proxy_buffers*2)    proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传    }    location ~ .*\.(gif|jpg|png|bmp|swf)$  #由nginx处理静态页面    {    expires 30d;  #使用expires缓存模块,缓存到客户端30天    }    location ~ .*\.( jsp|js|css)?$    {    expires 1d;    }    error_page 404       /404.html;  #错误页面    error_page  500 502 503 504 /50x.html;    location = /50x.html {      root  html;    }  }

#编写nginx启动, stop, restart and other SYSV management scripts, easy to use

?
1 [[email protected] ~]# vi /etc/init.d/nginx
?
1234567891011121314151617181920212223242526 #!/bin/bash# chkconfig: 345 99 20# description: Nginx servicecontrol scriptPROG="/usr/local/nginx/sbin/nginx"PIDF="/usr/local/nginx/logs/nginx.pid"case "$1" instart)$PROGecho "Nginx servicestart success.";;stop)kill -s QUIT $(cat $PIDF)echo "Nginx service stopsuccess.";;restart)$0 stop$0 start;;reload)kill -s HUP $(cat $PIDF)echo"reload Nginx configsuccess.";;*)echo "Usage: $0{start|stop|restart|reload}"exit 1esac
?
1234 [[email protected] ~]# chmod +x /etc/init.d/nginx[[email protected] ~]# service nginx restart[[email protected] ~]# chkconfig --add nginx[[email protected] ~]# chkconfig nginx on

NGINX+APACHE/TOMCAT realization of reverse Proxy and static and dynamic separation

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.