今天試了一下nginx緩存配置,說到緩存相信大家應該都不陌生,也就是把通路後端web伺服器的靜态請求緩存到本地檔案系統一個目錄,後端一般是apache伺服器居多!目前這兩台機器完全可以在一台伺服器上,隻是開啟不同的端口運作即可!下面我就寫一個最簡單配置的緩存伺服器實驗吧!
需求:将通路後端apache伺服器的靜态請求緩存到一個目錄下。然後關閉後端的apache伺服器,看看是否還能通路之前靜态網頁!
環境:CentOS6.4(64位)
1、安裝nginx和apache
yum install nginx httpd -y
2、配置nginx,配置檔案如下:
user nginx;
worker_processes 2;
worker_cpu_affinity 0001 0010;
worker_rlimit_nofile 65535;
error_log /var/log/nginx/error.log info;
pid /var/run/nginx.pid;
events {
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
log_format access ' $remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
sendfile on;
keepalive_timeout 0;
##緩存配置
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 /var/nginx/temp_dir; 設定臨時目錄
proxy_cache_path /var/nginx/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g; 設定緩存目錄,和上面的目錄必須在一個分區裡面
gzip on;
upstream appserver {
server 192.168.0.1:8080;
server {
listen 80 default;
server_name 192.168.0.1;
location /
{
proxy_cache cache_one;
proxy_cache_methods GET HEAD POST;
proxy_cache_min_uses 1;
proxy_cache_valid 200 302 10m; 200和302狀态緩存10分鐘,10分鐘後失效
proxy_cache_valid 404 1m; 404狀态緩存1分鐘
proxy_cache_valid any 1m; 其餘狀态緩存1分鐘
access_log /var/log/nginx/192.168.0.1.log;
}
}
3、檢查nginx配置檔案并啟動nginx
/etc/init.d/nginx configtest
如果出錯應該是/var/nginx目錄需要建立。
mkdir /var/nginx
/etc/init.d/nginx start
4、将/etc/httpd/conf/httpd.conf配置檔案裡面的端口修改為8080
5、寫一個靜态測試頁面
echo "hello" > /var/www/html/index.html
6、測試
檢視/var/nginx/cache目錄下是否有目錄,目錄中是否有檔案?記錄下檔案的時間戳 -------有目錄,目下有檔案
關閉apache,繼續重新整理網頁,是否能正常通路? -------->可以繼續通路
對着檔案的時間戳,過10分鐘再重新整理是否出現502 Bad Gateway頁面 -------->是
說明成功!