nginx经验积累配置

作者: admin 分类: nginx 发布时间: 2012-04-27 18:25 ė 6 nginx经验积累配置已关闭评论

Gcc autoconf automake自动完善Makefile

yum -y install gcc gcc-c++ autoconf automake

nginx 依赖模块

gzip模块zlib库

rewrite模块pcre库

ssl模块openssl库

yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

#编译参数

./configure –with-http_stub_status_module –with-http_ssl_module –with-mail –with-mail_ssl_module –with-pcre=../pcre-8.21  –add-module=../ngx_cache_purge-2.0

./configure –with-http_stub_status_module –with-http_ssl_module –with-mail –with-mail_ssl_module

 

—————————————————————————————————————-

#erp tomcat 集群
upstream cerp_tomcats {
ip_hash;
server 192.168.0.5:7582;
server 192.168.0.5:7583;
server 192.168.0.5:9584;
}

#qx tomcat集群
upstream qx_tomcats {
ip_hash;
server 192.168.0.5:8372;
server 192.168.0.5:8373;
}

##ERP HTTP server
server {
listen 80;
server_name a.b.com;
rewrite ^(.*) https://$server_name$1 permanent;
}

## ERP HTTPS server
server {
listen 443;
server_name a.b.com;
access_log logs/$server_name.access.log combined;

ssl on;
ssl_certificate /usr/local/nginx/ssl/ssl.crt;
ssl_certificate_key /usr/local/nginx/ssl/ssl_nopass.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;

##cache##
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;
proxy_temp_path /home/temp_dir;
proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d   max_size=30g;
##end##

##proxy_temp_path   proxy_cache_path 需要在一个分区

 

#缓存 extjs 访问URL是http://a.b.com/extjs/*   缓存
location ~ ^/extjs/ {
proxy_pass http://cerp_tomcats;
proxy_redirect off;
proxy_set_header Host $host;
proxy_cache cache_one;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 301 1d;
proxy_cache_valid any 1m;
expires 30d;
}
#缓存 图片
location ~ ^/images/ {
proxy_pass http://cerp_tomcats;
proxy_redirect off;
proxy_set_header Host $host;
proxy_cache cache_one;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 301 1d;
proxy_cache_valid any 1m;
expires 30d;
}

location ~ /purge(/.*)
{
allow 192.168.154.128;
allow 192.168.154.1;
deny all;
proxy_cache_purge cache_one $host:$server_port$1$is_args$args;
}

location / {
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;
client_max_body_size 100m;

#如果URL是http://a.b.com/qx001/* 则反向代理权限的集群服务,用于一个域名代理多个系统
if ($request_uri ~ ^/qx001/(.*)$) {
proxy_pass http://qx_tomcats/qx001/$1;
break;
}
#如果访问者的IP是192.168.0.9,反向代理到 192.168.0.5:7585的服务,用于小规模测试系统,一般公司内部先访问新功能,出现问题也好到达现场
if ($remote_addr ~* “192.168.0.9”) {
proxy_pass http://192.168.0.5:7585$request_uri;
break;
}

##如果访问者的IP是 192.168.0.123 直接返回404页面,用于禁用某个IP访问
if ($remote_addr !~* “192.168.0.9”) {
return 404;
}

#终于通过了所有的验证,访问正常系统吧!
proxy_pass http://cerp_tomcats;
index index.html index.htm;
}
}

—————————————————————————–

说明:
1、http段设置。
proxy_temp_path /home/temp_dir;设置临时目录
proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;设置缓存目录为二级目录,共享内存区大小,非活动时间,最大容量,注意临时目录要跟缓存目录在同一个分区。
2、server段设置
请求静态文件设置。
proxy_cache cache_one;设置缓存共享内存区块,也就是keys_zone名称。
proxy_cache_valid 200 302 1h;设置http状态码为200,302缓存时间为1小时。
expires 30d;设置失期时间,为30天
请求动态文件设置。
proxy_pass http://appserver;不进行缓存,直接转到后端服务器。
测试:当客户端发起http请求时在服务器上会产一个缓存文件

nginx具有web缓存服务,proxy_cache,但是有一个问题就是,proxy_cache不能清除指定的URL缓存,只能设置URL过期时间,但是有问题,有人就会很快解决问题,nginx第三方模块ngx_cache_purge能清除指定URL。nginx安装时需要将ngx_cache_purege加载进去。

./configure –user=www –group=www –add-module=/root/dxm/nginx/ngx_cache_purge-2.0

其中,/root/dxm/nginx/ngx_cache_purge-2.0为ngx_cache_purge解压路径

大家看一下最后一段的那个purege配置,很显然,表示哪些IP可以手动清除指定的URL

比如,www.wolfdraem.cn/1.jpg可以访问到我的图片,那么用www.wolfdream.cn/purge/1.jpg  就可以清除图片缓存了.

 

文件下载:nginx_conf

本文出自weicms.net,转载时请注明出处及相应链接。

本文永久链接: http://www.weicms.net/2012/04/27/nginx_jingyan.html

0
Ɣ回顶部