nginx使用分享

jopen 9年前發布 | 9K 次閱讀 Web服務器 Nginx

配置文件目錄

/usr/local/nginx/conf/nginx.conf

http基礎配置(/usr/local/nginx/conf/nginx.conf -> http{})

server_tokens默認值是on,表示顯示版本信息,設置server_tokens值是off,就可以在所有地方隱藏nginx的版本信息。

gzip壓縮技術(/usr/local/nginx/conf/nginx.conf -> http{})

gzip    on;
gzip_min_length    1024;
gzip_buffers    4    16k;
gzip_http_version    1.1;
gzip_vary    on;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

緩存配置(/usr/local/nginx/conf/nginx.conf -> http{} - server{})

location ~ .*.(jpg|png|gif)$ {

#配置到圖片上級目錄
#如頁面訪問的是http://127.0.0.1/public/6DD309BF50C11AC5DE277A5F5C147330.png
#配置為root D:\\_webapp\\ParityPlatform\\WEB-INF\\classes\\static;
#完整路徑如下D:\_webapp\ParityPlatform\WEB-INF\classes\static\public\6DD309BF50C11AC5DE277A5F5C147330.png
root /app/webapps/;
# 2天后自動清除緩存
expires    2d;

}

location ~ .*.(js|css)$ { root /app/webapps/; expires 1h; }</pre>

查看Nginx狀態配置

#設定查看Nginx狀態的地址
location /NginxStatus {

# Turn on nginx stats  
stub_status on;  
# I do not need logs for stats  
access_log   off;  
# Security: Only allow access from 192.168.1.100 IP #  
#allow 192.168.1.100;  
# Send rest of the world to /dev/null #  
#deny all; 

}</pre>

負載均衡時session處理

1. 利用nginx中upstream為ip_hash策略(簡單快速,業務場景允許非重要性)

  1. 網絡廣播session同步(缺陷:數據量大時性能低下、網絡容易造為性能瓶頸、集群環境中容器過多時性能下降) 2.1 tomcat中,/tomcat/conf/server.xml
         <Engine name=“” 。。。>
             添加如下代碼
             `<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" />`
             <!-- <channel>...</channel> 對應配置信息,防止一臺服務器多個tomcat造成異常-->
         </Engine>
    
    2.2 在應用添加信息,通知tomcat/告知應用是處于集群環境中,支持分布式部署
         應用的web.xml中添加如下
         `<distributable />`
  2. 共享空間保存session信息(分布式緩存技術【redis\memcached】) 3.1 安裝memcached</pre>
    來自:http://my.oschina.net/p2ng/blog/532951

    負載均衡&反向代理

    http{}
    upstream    tomcats{
     #none;    輪詢(weight決定,默認為1)
     #ip_hash;    客戶端ip請求hash均衡
     #fair;    自動分配到服務器
     #url_hash;    當前請求的hash均衡

    #weight;權重,值越高負載越大 server URL weight = 5; #backup; 備份機,只有非備份機全部掛掉情況下,才啟動 server URL backup; #down; 停機標志,不會被訪問,臨時升級維護 server URL down; #max_fails;達到指定次數認為服務器掛掉,并終止此接受訪問 #fail_timeout;服務器掛掉多久后再去嘗試是否已恢復 server URL max_fails=2 fail_timeout=60s; }

location / { proxy_pass http://tomcats;

#以下是一些反向代理的配置,可選。
proxy_redirect off; #如果需要修改從被代理server傳來的應答頭中的"Location"和"Refresh"字段,可以用這個指令設置。
proxy_next_upstream  http_500 http_502 http_503 error timeout invalid_header;   #指定故障轉移策略,當后端節點返回500,502,503,等執行超時錯誤時,自動將請求轉發到upstream組的另一臺服務器,實現故障轉移。
proxy_set_header X-Real-IP $remote_addr;#X-Real-IP變量名,可以隨便修改
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#后端的Web服務器可以通過X-Forwarded-For獲取用戶真實IP
proxy_set_header Host $host;#指定后端server獲取Client的主機名和地址以及代理的真實IP
client_max_body_size 10m; #允許客戶端請求的最大單文件字節數
client_body_buffer_size 128k; #緩沖區代理緩沖用戶端請求的最大字節數,
proxy_connect_timeout 90; #nginx跟后端服務器連接超時時間(代理連接超時)
proxy_send_timeout 90; #后端服務器數據回傳時間(代理發送超時)
proxy_read_timeout 90; #連接成功后,后端服務器響應時間(代理接收超時)
proxy_buffer_size 4k; #設置代理服務器(nginx)保存用戶頭信息的緩沖區大小
proxy_buffers 4 32k; #proxy_buffers緩沖區,網頁平均在32k以下的設置
proxy_busy_buffers_size 64k; #高負荷下緩沖大小(proxy_buffers*2)
proxy_temp_file_write_size 64k;#設定緩存文件夾大小,大于這個值,將從upstream服務器傳

}</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!