今天由于公司微信端添加地图业务,但地图不支持https,所以将https改为http访问,因此出现访问异常,原因是之前访问的用户,微信端存在缓存页面,但是不会清楚,所以我就提出,可以在nginx在主机头跳转的时候做清楚缓存的操作,让微信端访问时,响应头不存储缓存,这样就解决问题了,下面是配置的过程(配置很简单,但是这个过程我花了1天的时间,如果有坑,请留言)
官方文档:http://nginx.org/en/docs/http/ngx_http_headers_module.html
1,查看当前nginx版本及确认安装目录
cd /home/oldboy/tools/
wget -q http://nginx.org/download/nginx-1.8.1.tar.gz
tar xf nginx-1.8.1.tar.gz
cd nginx-1.8.1
版本及目前使用的模块信息
[root@web01 extra]# /application/nginx/sbin/nginx -V
nginx version: nginx/1.8.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --with-http_stub_status_module --with-http_ssl_module --prefix=/application/nginx-1.8.1/
###注意一定要事先查看当前nginx下有哪些编译模块,记录,然后与要添加的模块一起编译
2,下载headers模块
cd /home/qiuyuetao/
wget https://codeload.github.com/openresty/headers-more-nginx-module/zip/master\
unzip headers-more-nginx-module-master.zip
3,记录下当前访问页面的状态(也可以在web页面上查看 响应头信息)
[root@web01 qiuyuetao]# curl -I www.etiantian.org
HTTP/1.1 301 Moved Permanently
Server: nginx/1.2.9
Date: Wed, 02 Aug 2017 06:17:47 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location:
###这里可以修改内容很多,只是用到里面的一点点知识,其它内容,大家可以科普##
4,将header模块,编译到nginx中去
cd /home/qiuyuetao/tools/nginx-1.8.1 ##这个下载的安装文件目录
./configure --with-http_stub_status_module --with-http_ssl_module --prefix=/application/nginx-1.8.1/ --add-module=/home/qiuyuetao/headers-more-nginx-module-master
###注意一定要事先查看当前nginx下有哪些编译模块,记录,然后与要添加的模块一起编译##
make
(如果现在已经部署了nginx 就不能make install ,如果没有部署nginx 可以make install)
5,替换nginx启动文件 (yo)
cd /application/nginx/sbin
mv nginx{,.bak}
cp nginx /application/nginx/sbin/
##这个是将重新编译的nginx 配置文件,复制到安装目录使新的模块生效
6,重启服务,测试是否正常
/application/nginx/sbin/nginx -s stop
/application/nginx/sbin/nginx
/application/nginx/sbin/nginx -V
7,验证效果
[root@web01 qiuyuetao]# /application/nginx/sbin/nginx -V
nginx version: nginx/1.8.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --with-http_stub_status_module --with-http_ssl_module --prefix=/application/nginx-1.8.1/ --add-module=/home/qiuyuetao/headers-more-nginx-module-master
8,添加到nginx 指定站点配置文件中
server{
listen 80;
server_name www.etiantian.org;
location / { ##将下面header信息写入location下 ## max-age设定缓存时间 nocashe 就是不缓存
add_header Cache-Control no-cache;
add_header Cache-Control no-store;
add_header Pragma no-cache;
add_header Expires 0;
}
9,重新加载
/application/nginx/sbin/nginx -s stop
/application/nginx/sbin/nginx
##web页面查看结果##
- QQ精品交流群
-
- 微信公众号
-