1、反向代理配置 (原文連接:http://www.studyshare.cn/blog-front//blog/details/1155/0 )javascript
準備:兩個項目分別使用端口8080,8081,只有一個備案域名,配置以下css
server {
listen 80; //端口配置
server_name www.study.cn; #配置域名
#charset koi8-r;
#access_log logs/host.access.log main;
location / { #location路由,當瀏覽器訪問:http://www.study.cn或者http://www.study.cn/會被nginx匹配到該location下,匹配後將域名替換爲localhost:8080
proxy_pass http://localhost:8080;
}
location /blog { #location路由,當瀏覽器訪問:http://www.study.cn/blog時,會被nginx匹配到該location,並將域名替換問localhost:8081
proxy_pass http://localhost:8081;
proxy_set_header X-Real-IP $remote_addr; #設置獲取瀏覽器訪問的網絡ip
}html
}前端
2、緩存配置java
一、配置http{}nginx
http {
.....#略正則表達式
#緩存配置
proxy_connect_timeout 10;
proxy_read_timeout 180;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 96k;
proxy_temp_file_write_size 96k;
proxy_temp_path /tmp/temp_dir;
proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;
#緩存配置後端
...#略
}
配置參數詳解:瀏覽器
proxy_connect_timeout:服務器鏈接的超時時間緩存
proxy_read_timeout:鏈接成功後,等候後端服務器響應時間
proxy_send_timeout:後端服務器數據回傳時間
proxy_buffer_size:緩衝區的大小
proxy_buffers:每一個鏈接設置緩衝區的數量和每塊緩衝區的大小
proxy_busy_buffers_size:開啓緩衝響應的功能之後,在沒有讀到所有響應的狀況下,寫緩衝到達必定大小時,nginx必定會向客戶端發送響應,直到緩衝小於此值。proxy_temp_file_write_size:設置nginx每次寫數據到臨時文件的大小限制
proxy_temp_path:從後端服務器接收的臨時文件的存放路徑
proxy_cache_path:設置緩存的路徑和其餘參數。被緩存的數據若是在inactive參數(當前爲1天)指定的時間內未被訪問,就會被從緩存中移除
二、配置server{}
server{
location ~ /blog/.*\.(css|js|png|gif|jpg) {
proxy_pass http://localhost:8081;
proxy_redirect off;
proxy_set_header Host $host;
proxy_cache cache_one;
proxy_cache_valid 200 302 24h;
proxy_cache_valid 301 30d;
proxy_cache_valid any 5m;
expires 30d;
add_header daren "hi!cached!speed is fast.";
}
}
配置參數詳解:
location ~ /blog/.*\.(css|js|png|gif|jpg) : 使用正則表達式匹配路由,此處/blog/是當前本地前端項目配置了/blog路由才能訪問,因此靜態資源文件也就在/blog/下,若是網站前端直接打開www.study.cn就能訪問,則將/blog/去掉,直接配置:location ~ .*\.(css|js|png|gif|jpg) 便可
proxy_pass http://localhost:8081; nginx緩存裏拿不到資源,就向該地址轉發請求,並獲取資源,而後進行緩存
proxy_redirect off; 設置後端服務器「Location」響應頭和「Refresh」響應頭的替換文本
proxy_set_header Host $host; 容許從新定義或者添加發日後端服務器的請求頭
proxy_cache cache_one; 指定用於頁面緩存的共享內存,對應http層設置的keys_zone
proxy_cache_valid 200 302 24h; 爲不一樣的響應狀態碼設置不一樣的緩存時間
proxy_cache_valid 301 30d;
proxy_cache_valid any 5m;
expires 30d; 緩存在瀏覽中的時間,30d:30天,30m:30分鐘
重啓nginx生效後,看看效果:
(1)緩存配置生效前:
(2)緩存配置生效後:
3、壓縮配置
在server{}中配置以下:
server{
location ~ /(.*)\.(html|js|css|jpg|jpeg|png|gif)$ {
gzip on; # 啓用gzip壓縮,默認是off,不啓用
# 對js、css、jpg、png、gif格式的文件啓用gzip壓縮功能
gzip_types application/javascript text/css image/jpeg image/png image/gif;
gzip_min_length 1024; # 所壓縮文件的最小值,小於這個的不會壓縮
gzip_buffers 4 1k; # 設置壓縮響應的緩衝塊的大小和個數,默認是內存一個頁的大小
gzip_comp_level 1; # 壓縮水平,默認1。取值範圍1-9,取值越大壓縮比率越大,但越耗cpu時間
root html/gzip;
}
}
原創文章,轉載請註明出處,更多技術文章:http://www.studyshare.cn/blog-front//blog/index