摘要:小编结合公司的实际情况,是在NGINX上面配置的。
话不多说,直奔正题: 在NGINX上面配置浏览器缓存时,需要额外添加模块,即 ngx_http_headers_module
。 由于小编是由于公司需求才接触到NGINX的,所以,一方面是新手,不能在正式环境和测试环境直接搞,以为怕炸锅。另一方面还是害怕炸锅。 于是,公司分配一台服务器把NGINX从头撸了一遍。 首先,就是在linux上面安装NGINX, 当然,这个问题可以百度或者谷爹一下就能解决了,友情提示一下,安装的时候还是有很多的细节需要,小心一不留神安装失败。 其次,就是成功安装NGINX之后就是添加模块,我是新手,反正是各种不懂,网上找到文章也是似懂非懂的。 而且,安装 ngx_http_headers_module
的资源只有一条(当你看到我写的这篇文章的时候,已经能够搜索到两条了,哈哈哈),资源是如此的稀少,而且看不懂。
接下来,线划一横线,目的是和上面说的这些废话区分开。 一、先介绍一下NGINX添加模块的一般的方法: 1.下载模块
git clone https://github.com/agentzh/echo-nginx-module
2.放入指定位置
mv echo-nginx-module-master /usr/local/src/nginx-1.8.1/echo-nginx-module
3.查看已编译参数
/usr/local/nginx/sbin/nginx -V 结果为:
--user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6
4.重新编译
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --add-module=/usr/local/src/nginx-1.8.1/echo-nginx-module--with-ipv6
make
PS: 这里只需要make,一定不要执行make install,不然会覆盖
5.备份原文件
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
6.替换nginx二进制文件
cp /usr/local/src/nginx-1.8.1/objs/nginx /usr/local/nginx/sbin/nginx
7.检查以及平滑启动nginx
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx(做软链,添加到环境变量)
./nginx -t (检测配置文件)[我不知道网上的都是`nginx -t`这样的检测配置文件的命令,而且这样的命令在我这儿并不好使,下同]
./nginx -s reload (平滑重启)[网上搜索到是这样的命令`nginx -s reload`]
二、详细说一下安装 ngx_http_headers_module
模块的具体方式(理论结合实践) 我搜到的网上写的不详细(我感觉),根本不知道下载到那个目录下面。 下面介绍的是NGINX添加模块成功的安装目录 我把需要添加的模块下载到我的NGINX安装目录里面的 src/nginx-1.6.2
下面了 1、查看当前nginx版本及确认安装目录 2、版本及目前使用的模块信息
[root@thirdlevel sbin]#/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.6.2
built by gcc 4.8.520150623(RedHat4.8.5-36)(GCC)
configure arguments:
我的这个 configure arguments
里面没有输出任何东西是因为我的NGINX是新安装的,还没有添加其他的新的模块。 3,下载headers模块
cd /usr/local/src/nginx-1.6.2
wget https://codeload.github.com/openresty/headers-more-nginx-module/zip/master
unzip headers-more-nginx-module-master.zip
4,将header模块,编译到nginx中去 执行下面的这行代码是在我下载 headers-more-nginx-module-master.zip
所在的目录执行的。 如果你的 configure arguments
有内容的话,要把已有的内容也加上。例如:
./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
./configure --add-module=/usr/local/src/nginx-1.6.2/headers-more-nginx-module-master
make
5,替换nginx启动文件(这个可以按照上面介绍的一般步骤中的第5/6步来做这步操作)
6,重启服务,测试是否正常
/application/nginx/sbin/nginx -s stop `停服务`
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf `启动NGINX服务`
7,验证效果
[root@thirdlevel sbin]#/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.6.2
built by gcc 4.8.520150623(RedHat4.8.5-36)(GCC)
configure arguments:--add-module=/usr/local/src/nginx-1.6.2/headers-more-nginx-module-master
configure arguments
里面有你刚添加的模块的名字,就是添加成功了
8,添加到nginx 指定站点配置文件中
server{
listen 80;
server_name www.etiantian.org;
location /{##将下面header信息写入location下 ## max-age设定缓存时间 nocashe 就是不缓存
add_header Cache-Controlno-cache;
add_header Cache-Controlno-store;
add_header Pragmano-cache;
add_header Expires0;
}
9,重新加载
/application/nginx/sbin/nginx -s stop `停服务`
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf `启动NGINX服务`
或者
./nginx -s reload
##web页面查看结果##
摘要:小编结合公司的实际情况,是在NGINX上面配置的。
话不多说,直奔正题: 在NGINX上面配置浏览器缓存时,需要额外添加模块,即 ngx_http_headers_module
。 由于小编是由于公司需求才接触到NGINX的,所以,一方面是新手,不能在正式环境和测试环境直接搞,以为怕炸锅。另一方面还是害怕炸锅。 于是,公司分配一台服务器把NGINX从头撸了一遍。 首先,就是在linux上面安装NGINX, 当然,这个问题可以百度或者谷爹一下就能解决了,友情提示一下,安装的时候还是有很多的细节需要,小心一不留神安装失败。 其次,就是成功安装NGINX之后就是添加模块,我是新手,反正是各种不懂,网上找到文章也是似懂非懂的。 而且,安装 ngx_http_headers_module
的资源只有一条(当你看到我写的这篇文章的时候,已经能够搜索到两条了,哈哈哈),资源是如此的稀少,而且看不懂。
接下来,线划一横线,目的是和上面说的这些废话区分开。 一、先介绍一下NGINX添加模块的一般的方法: 1.下载模块
git clone https://github.com/agentzh/echo-nginx-module
2.放入指定位置
mv echo-nginx-module-master /usr/local/src/nginx-1.8.1/echo-nginx-module
3.查看已编译参数
/usr/local/nginx/sbin/nginx -V 结果为:
--user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6
4.重新编译
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --add-module=/usr/local/src/nginx-1.8.1/echo-nginx-module--with-ipv6
make
PS: 这里只需要make,一定不要执行make install,不然会覆盖
5.备份原文件
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
6.替换nginx二进制文件
cp /usr/local/src/nginx-1.8.1/objs/nginx /usr/local/nginx/sbin/nginx
7.检查以及平滑启动nginx
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx(做软链,添加到环境变量)
./nginx -t (检测配置文件)[我不知道网上的都是`nginx -t`这样的检测配置文件的命令,而且这样的命令在我这儿并不好使,下同]
./nginx -s reload (平滑重启)[网上搜索到是这样的命令`nginx -s reload`]
二、详细说一下安装 ngx_http_headers_module
模块的具体方式(理论结合实践) 我搜到的网上写的不详细(我感觉),根本不知道下载到那个目录下面。 下面介绍的是NGINX添加模块成功的安装目录 我把需要添加的模块下载到我的NGINX安装目录里面的 src/nginx-1.6.2
下面了 1、查看当前nginx版本及确认安装目录 2、版本及目前使用的模块信息
[root@thirdlevel sbin]#/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.6.2
built by gcc 4.8.520150623(RedHat4.8.5-36)(GCC)
configure arguments:
我的这个 configure arguments
里面没有输出任何东西是因为我的NGINX是新安装的,还没有添加其他的新的模块。 3,下载headers模块
cd /usr/local/src/nginx-1.6.2
wget https://codeload.github.com/openresty/headers-more-nginx-module/zip/master
unzip headers-more-nginx-module-master.zip
4,将header模块,编译到nginx中去 执行下面的这行代码是在我下载 headers-more-nginx-module-master.zip
所在的目录执行的。 如果你的 configure arguments
有内容的话,要把已有的内容也加上。例如:
./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
./configure --add-module=/usr/local/src/nginx-1.6.2/headers-more-nginx-module-master
make
5,替换nginx启动文件(这个可以按照上面介绍的一般步骤中的第5/6步来做这步操作)
6,重启服务,测试是否正常
/application/nginx/sbin/nginx -s stop `停服务`
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf `启动NGINX服务`
7,验证效果
[root@thirdlevel sbin]#/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.6.2
built by gcc 4.8.520150623(RedHat4.8.5-36)(GCC)
configure arguments:--add-module=/usr/local/src/nginx-1.6.2/headers-more-nginx-module-master
configure arguments
里面有你刚添加的模块的名字,就是添加成功了
8,添加到nginx 指定站点配置文件中
server{
listen 80;
server_name www.etiantian.org;
location /{##将下面header信息写入location下 ## max-age设定缓存时间 nocashe 就是不缓存
add_header Cache-Controlno-cache;
add_header Cache-Controlno-store;
add_header Pragmano-cache;
add_header Expires0;
}
9,重新加载
/application/nginx/sbin/nginx -s stop `停服务`
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf `启动NGINX服务`
或者
./nginx -s reload
##web页面查看结果##