配置nginx将缓存存放在内存中的二种方法,供大家学习参考。
方法一:
1、修改/etc/fstab挂接内存文件系统,并指定selinux context
tmpfs /var/tmp/nginx/proxy_temp tmpfs defaults,size=100m,context=system_u:object_r:httpd_cache_t:s0
然后
mount -t ramfs none /var/tmp/nginx/proxy_cache
mkdir -p /var/tmp/nginx/proxy_temp
mount -t ramfs none /var/tmp/nginx/proxy_temp
2. 在http中指定nginx的proxy_temp_path
proxy_cache_path /var/tmp/nginx/proxy_cache levels=1:2 keys_zone=cache_one:64m inactive=1d max_size=128m;
add_header X-Cache HIT-LT;
上述方法适合于xen linux VPS和独立主机。
方法2:
新建缓存存放地址
chmod 1777 /dev/shm/proxy_cache
mkdir -p /var/tmp/nginx/proxy_cache
mount --bind /dev/shm/proxy_cache /var/tmp/nginx/proxy_cache
mkdir /dev/shm/proxy_temp
chmod 1777 /dev/shm/proxy_temp
mkdir -p /var/tmp/nginx/proxy_temp
mount --bind /dev/shm/proxy_temp /var/tmp/nginx/proxy_temp
在nginx主配置文件添加下面语句
proxy_cache_path /var/tmp/nginx/proxy_cache levels=1:2 keys_zone=cache_one:64m inactive=1d max_size=128m;
add_header X-Cache HIT-LT;
方法二适合于openvz linux VPS且要根据openvz VPS 下/proc/user_beancounters 下shmpages行的barrier 值确定proxy_cache_path的 max_size值,
备注:
nginx缓存需要版本高于0.7.48才支持。
修改Nginx的配置文件(nginx.conf)后,想重启Nginx,可以通过发送系统信号给Nginx主进程的方式来进行。
重启之前,要检查下Nginx配置文件(nginx.conf)语法是否正确,否则Nginx将不会加载新的配置文件。
检查Nginx配置文件是否正确:
/usr/local/www/nginx/conf/nginx.conf
如果配置文件不正确,屏幕将会提示配置文件的第几行出错:
[emerg]:unknown directive "abc" in /usr/local/www/nginx/conf/nginx.conf:55
Configurationfile/usr/local/www/nginx/conf/nginx.conf test failed
如果配置文件正确,屏幕将提示以下两行信息:
The configuration file/usr/loca/www/nginx/conf/nginx.conf syntax is ok
Configuration file/usr/local/www/nginx/conf/nginx.conf test is successful
此时便可以平滑重启Nginx:
或:killx -HUP `cat /usr/local/www/nginx/logs/nginx.pid`
nginx平滑升级与重启的例子,有需要的朋友可以参考下。
一、nginx平滑升级
1.下载新版本nginx 0.8.38
(linux)
2.解压
3.进入nginx-0.8.38目录
4.如果要更改header信息的话
#define NGINX_VERSION "0.7.62"
#define NGINX_VER "nginx/" NGINX_VERSION
上面的版本号和nginx自己修改
5.编译
make
6.备份nginx 原文件
7.复制编译make后的文件覆盖nginx原文件
8.检测nginx文件配置
9.把nginx.pid改成nginx.pid.oldbin 跟着启动新的nginx
10.退出旧的nignx
二、nginx平滑重启