Linux----------nginx詳細配置文件



此文章借鑒(小馬哥 Maximilian Kalbfell)

一、nginx配置文件結構(一)

二、nginx配置文件結構(二)

nginx配置文件分為5個區塊:

  • 事件區塊:全局設置,部分設置得指令將影響其它所有部分得設置。
  • HTTP區塊:http的全局設置。
  • server區塊:server部分的指令主要用於指定虛擬主機域名、IP和端口
  • location區塊:location部分用於匹配網頁位置
  • upstream區塊:upstream的指令用於設置一系列的后端服務器,設置反向代理及后端服務器的負載均衡

三、事件區塊

四、http區塊

http {
include mime.types;                                                                                                                                             #設定mime類型,類型由mime.type文件定義
default_type application/octet-stream;                       
access_log /usr/local/nginx/log/nginx/access.log;                                                                                               #設定日志格式
sendfile on;                                                                                                                                                          #指令指定 nginx 是否調用 sendfile 函數
#autoindex on;                                                                                                                                                     #開啟目錄列表訪問,合適下載服務器,默認關閉。
tcp_nopush on;                                                                                                                                                    ##防止網絡阻塞
keepalive_timeout 60;                                                                                                                                          ##keepalive超時時間
tcp_nodelay on;                                                                                                                                                   ##提高數據的實時響應性
gzip on;                                                                                                                                                                ##開啟gzip壓縮
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;                                                                                                                                              ##壓縮級別大小,最大為9,值越小,CPU處理更快,值越大,消耗CPU比較高。
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)
open_file_cache max=102400 inactive=20s;                                                                                                      ###這個將為打開文件指定緩存,默認是沒有啟用的
open_file_cache_valid 30s;                                                                                                                                 ####這個是指多長時間檢查一次緩存的有效信息。
open_file_cache_min_uses 1;                                                                                                                             ###inactive參數時間內文件的最少使用次數
include vhosts.conf;                                                                                                                                             ###包含其它配置文件,如自定義的虛擬主機
}

五、upstream區塊

語法:upstream name {.......}
name是自定義的一個名字,而{}則是需要定義的內容,只能在http塊定義,不能在server塊里定義。定義完之后可在location塊
下寫入如下代碼進行調用:http://name
4種負載均衡算法:

  • 1 輪詢算法(默認): 每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。
    upstream name {
    server 192.168.1.1:80 ;
    server 192.168.1.2:81 ;
    }

  • 2 ip_hash算法:每個請求按訪問IP的hash結果分配,同一個IP客戶端固定訪問一個后端服務器;
    upstream name {
    ip_hash; //添加參數支持哈希
    server 192.168.1.1:80 ;
    server 192.168.1.2 :81 ;
    }

  • 3 權重算法:指定輪詢幾率,weight和訪問比率成正比。用於后端服務器性能不均的情況
    upstream name {
    server 192.168.1.1:80 weight=1;
    server 192.168.1.2:81 weight=9;
    }

  • 4 最少連接(least_conn):把請求轉發給連接數較少的后端服務器進行處理
    upstream name {
    least_conn;
    server 192.168.1.1:80 weight=1;
    server 192.168.1.2:81 weight=1;
    }

六、location區塊

nginx反向代理介紹
反向代理:以代理服務器來接受連接請求,然后將請求轉發給內部網絡上的服務器(真實服務器);並將得到的結果返回給請求方。(此時代理服務器對外就表現為一個獨立的服務器)

語法:
1.直接proxy_pass 詳細地址
location /
           {
           proxy_pass http://192.168.1.1:80;
           }

2.結合負載均衡upstream
upstream name {192.168.1.1:80}
           location /
                        {
                        proxy_pass http://name;
                        }


##反向代理實例:
真實內容服務器nginx配置文件如下:
location / {
             add_header X-Frame-Options DENY;
             root /opt/test/;
             proxy_set_header X-Client-Really-IP $remote_addr;
             index index.html index.htm;
    }
代理服務器nginx配置文件如下:
location / {
          proxy_pass http://10.0.1.7:80;
          root html;
          index index.html index.htm;
}

6.1 rewrite



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM