nginx缓存服务器
參考:http://www.cnblogs.com/GXLo/articles/5169098.html
一.準備
1.一臺后端服務器,已安裝Apache服務器,/var/www/html下已放置了一張圖片head.jpg,IP為192.168.1.105
2.一臺服務器,用來安裝nginx,當做緩存服務器,IP為192.168.1.109
二、 Nginx(Ngx_cache)安裝:
首先下載Nginx緩存模塊,ngx_cache_purge相應版本,這里下載nginx-1.4版本,不同版本對應不同的Nginx版本,安裝的時候要留心。
ulimit?-SHn?65535 yum?install?pcre?pcre-devel?-y wget?http://nginx.org/download/nginx-1.0.11.tar.gz http://labs.frickle.com/files/ngx_cache_purge-1.4.tar.gz tarz?xvf?ngx_cache_purge-1.4.tar.gz tarz?xvf?nginx-1.0.11.tar.gz useradd?www cd?nginx-1.0.11/ ./configure??--user=www??--group=www??--add-module=../ngx_cache_purge-1.4--prefix=/usr/local/nginx??--with-http_stub_status_module??--with-http_ssl_module make?&&?make?install配置文件內容nginx.conf:
user??www?www; worker_processes?8; error_log??/usr/local/nginx/logs/nginx_error.log??crit; pid???????/usr/local/nginx/nginx.pid; worker_rlimit_nofile?65535; events {use?epoll;worker_connections?65535; } http {include???????mime.types;default_type??application/octet-stream;charset??utf-8;server_names_hash_bucket_size?128;client_header_buffer_size?32k;large_client_header_buffers?4?32k;client_max_body_size?300m;sendfile?on;tcp_nopush?????on;keepalive_timeout?60;tcp_nodelay?on;client_body_buffer_size??512k;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;gzip?on;gzip_min_length??1k;gzip_buffers?????4?16k;gzip_http_version?1.1;gzip_comp_level?2;gzip_types???????text/plain?application/x-javascript?text/css?application/xml;gzip_vary?on;#這里設置緩存目錄,為/data/proxy_temp,/data/proxy_cacheproxy_temp_path???/data/proxy_temp;proxy_cache_path??/data/proxy_cache??levels=1:2???keys_zone=cache_one:200m?inactive=1d?max_size=1g;upstream?backend_server?{server?192.168.1.105:80;}server{listen???????80;server_name??127.0.0.1;location?/{proxy_set_header?Host??$host;proxy_set_header?X-Forwarded-For??$remote_addr;proxy_pass?http://backend_server;}location?~?.*\.(gif|jpg|jpeg|bmp|png|js|css|swf)?$?????//緩存文件類型{proxy_cache?cache_one;proxy_cache_valid?200?304?12h;proxy_cache_valid?301?302?1m;proxy_cache_valid?any?1m;proxy_cache_key?$host$uri$is_args$args;proxy_set_header?Host??$host;proxy_set_header?X-Forwarded-For??$remote_addr;proxy_pass?http://backend_server;}location?~?/purge(/.*){allow????????????127.0.0.1;deny????????????all;proxy_cache_purge????cache_one???$host$1$is_args$args;}access_log??off;} }###########################################################################################
說明
Nginx緩存服務器的配置主要通過proxy_cache相關命令來實現。
proxy_cache_path /backup/proxy_cache_dir levels=1:2 keys_zone=cache_one:4096m inactive=1d max_size=3g;
- poxy_cache_path:用于設置緩存的目錄,后面跟緩存路徑。最好將緩存目錄放在一個獨立的硬盤上。
- levels=1:2:levels用來設置目錄深度,這里是兩層目錄深度,第一層是一個字符,第二層是兩個字符。
- keys_zne:用來設置web緩存區名稱,這里的cache_one后面的4096,表示內存緩存空間大小為4GB
- inactive:表示自動清除緩存文件的時間,這里的“d”表示1天沒有被訪問的內容自動清除,還可以使用分鐘和小時計數,5m,5h。
- max_size:表示硬盤緩存空間可使用的最大值,默認情況下經訪問的文件常將被放到內存中進行緩存,而在內存緩存空間不足時,Nginx會將不經常訪問的數據從內存寫到磁盤。
proxy_temp_path /backup/proxy_temp_dir;
- 用于指定臨時緩存文件的存儲路徑,這里需要注意的是,兩個存放緩存文件的目錄必須在同一磁盤分區。
三、實驗驗證
前面提到,已經將一個圖片文件head.jpg放置在192.168.1.105的后端服務器的/var/www/html下,啟動Apache,Nginx配置好之后也需要啟動;
1.在此情況下,先訪問http://192.168.1.109/head.jpg,能訪問到,此時apache和nginx均啟動;
2.關閉后臺apache,nginx保持開啟,訪問http://192.168.1.109/head.jpg,可見的情況是head.jpg還能訪問到;去/data/proxy_temp和/data/proxy_cache下能發現生成的緩存文件;
轉載于:https://blog.51cto.com/825536458/1890157
總結
以上是生活随笔為你收集整理的nginx缓存服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php http头设置相关信息
- 下一篇: 每天一个 liunx 命令 ls