nginx启用ngx_http_substitutions_filter_module模块搭建反向代理服务器

一、安装nginx full版本,若之前有安装过nginx而不是full版本的,可直接remove之后重新安装nginx-full版本
[email protected]:~# apt-get update
[email protected]:~# apt-get remove nginx
[email protected]:~# apt-get install nginx-full

二、编辑nginx.conf配置文件加入以下参数
[email protected]:~# vi /etc/nginx/nginx.conf

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/cache/temp;
#临时文件目录

proxy_cache_path  /home/cache/one levels=1:2 keys_zone=cache_one:3m inactive=7d max_size=1g;
#3m为内存占用,1g为最大硬盘占用,cache_one为缓存区名字,如果修改则下文的配置亦要相应修改。

:wq!(保存退出)

三、设置临时文件夹缓存区权根
[email protected]:~# mkdir /home/cache/temp -p
[email protected]:~# mkdir /home/cache/one
[email protected]:~# chmod 777 -R /home/cache

四、编辑主机配置文件
[email protected]:~# vi /etc/nginx/sites-available/default

server {
listen       80;
server_name  www.itkylin.com;
index index.php;
access_log off;
#off 关闭日志

location / {
#subs_filter_types text/html text/css text/xml;
subs_filter www.baidu.com www.itkylin.com gi;

proxy_cache_key "$scheme://$host$request_uri";
#缓存key规则,用于自动清除缓存。

proxy_cache cache_one;
#缓存区名称,与前面定义的相同

proxy_cache_valid  200 304 3h;
proxy_cache_valid 301 3d;
proxy_cache_valid any 10s;
#200 304状态缓存3小时
#301状态缓存3天
#其他状态缓存(如502 404)10秒

proxy_set_header   X-Real-IP  $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
#向后端传递访客ip

proxy_set_header   Referer http://www.baidu.com;
#强制定义Referer,程序验证判断会用到

proxy_set_header   Host www.baidu.com;
#proxy_set_header   Host $host;
#定义主机头

proxy_pass http://www.baidu.com;
#指定后端ip,可以加端口

proxy_set_header Accept-Encoding "";

#proxy_cache_use_stale invalid_header error timeout http_502;
#当后端出现错误、超时、502状态时启用过期缓存,慎用。
      }
  }

:wq!(保存退出)

五、使配置生效
[email protected]:~# service nginx restart

注意:如果您要通过Nginx的nginx_substitutions_filter模块替换的内容里面有中文,请将conf文件保存为utf-8 without BOM编码。