使用nginx的(反-向/代=理)功能进行字符串替换,这是一个比较实用的功能,而nginx没有内置这个功能,需要使用第三方module,比如subs_filter。在nginx中配置module,需要将module的源码引入nginx的源码,自己编译nginx并安装。
一、下面记录一下从网上找到的其他教程,centos上编译并安装包含subs_filter替换模块的nginx的实际操作步骤。
1、如果centos上没有安装nginx,可以用yum安装一下,yum安装时会自动添加一些nginx的初始配置文件,比如/etc/rc.d/init.d/nginx,/etc/nginx/nginx.conf(自己编译安装时不会添加这些配置文件)。
yum install nginx
2、从 http://wiki.nginx.org/Install 的 #Source Releases 部分得到nginx的源码下载地址,下载解压。
wget http://nginx.org/download/nginx-1.8.0.tar.gz tar xf nginx-1.8.0.tar.gz
3、git签出subs_filter的源码(参考 nginx_substitutions_filter)。
git clone git://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
(注:保存路径为/root/ngx_http_substitutions_filter_module)
4、nginx编译配置
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --add-module=/root/ngx_http_substitutions_filter_module
最后的–add-module就是引入的subs_filter模块。
5、编译并安装nginx
make && make install
6、在/etc/nginx/nginx.config中配置subs_filter
server { listen 80; listen [::]:80; server_name test.xxorg.com; charset utf-8; location / { proxy_pass http://tiqu.esudaa.com:80; #设置反向代理头部,有时候源站响应的是gzip格式,替换的时候会有问题,可通过此项解决# proxy_set_header Accept-Encoding deflate; #指定字符串替换次数,on表示只替换第一次匹配到的字符,off表示替换所有匹配到的字符# sub_filter_once off; subs_filter 'www.esudaa.com</a>' '淘宝店</a>'; subs_filter 'E速达' ''; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_max_temp_file_size 0; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } }
5)重启nginx服务
systemctl restart nginx
到此,编译nginx的源码安装subs_filter模块使用替换功能就已经实现了
二、运用在lnmp的安装中,修改lnmp的源码直接加入安装subs_filter模块(军哥lnmp为例)
1、仍然是先git出subs_filter模块的源码
git clone git://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
(注:保存路径为/root/ngx_http_substitutions_filter_module)
2、修改lnmp源码,下载lnmp安装源码后,先不要运行
wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5
修改“/root/lnmp1.5/include/nginx.sh”中./configure后面的参数增加“–add-module=/root/ngx_http_substitutions_filter_module”
然后保存nginx.sh再执行:
./install.sh lnmp
最新评论
右上角有个个人微信二维码 有加过的吗 我加了但是没通过,是不是博主微信
已经无法打开了!
没标出来活动什么时候结束,刚刚去看了,结束了
我比较想知道怎么联系博主…
现在已经无法安装2003了,会卡在中间不动
我买的三年,现在还剩11个月,阿里只退12%,太黑了。
已跑路
赠送50美元的有效期多长?