nginx配置文件探索

  1. 全局塊
    該部分配置主要影響Nginx全局,通常包括下面幾個部分:
    配置運行Nginx服務器用戶(組)
    worker process數
    Nginx進程PID存放路徑
    錯誤日誌的存放路徑
    配置文件的引入

  2. events塊
    該部分配置主要影響Nginx服務器與用戶的網絡連接,主要包括:
    設置網絡連接的序列化
    是否允許同時接收多個網絡連接
    事件驅動模型的選擇
    最大連接數的配置

  3. http塊
    定義MIMI-Type
    自定義服務日誌
    允許sendfile方式傳輸文件
    連接超時時間
    單連接請求數上限

  4. server塊
    配置網絡監聽
    基於名稱的虛擬主機配置
    基於IP的虛擬主機配置

  5. location塊
    location配置
    請求根目錄配置
    更改location的URI
    網站默認首頁配置

配置網絡監聽
指令格式:
第一種:配置監聽的IP地址:listen IP[:PORT];
第二種:配置監聽的端口:listen PORT;

實際舉例:

listen 192.168.50.250:8080; #監聽具體IP和端口上的鏈接 
listen  192.168.50.250;     #監聽IP上多有端口的鏈接 
listen 8080;                #監聽具體端口上的所有IP的鏈接

基於名稱和IP的虛擬主機配置
指令格式:server_name name1 name2 …
name可以有多個並列名稱,而且此處的name支持正則表達式書寫

實際舉例:

server_name ~^www\d+\.myserver\.com$

此時表示該虛擬主機可以接收類似域名 www1.myserver.com 等的請求而拒絕 www.myserver.com 的域名請求,所以說用正則表達式可以實現更精準的控制

至於基於IP的虛擬主機配置比較簡單,不再太贅述:

指令格式:server_name IP地址

location配置
指令格式爲:location [ = | ~ | ~* | ^~ ] uri {…}

這裏的uri分爲標準uri和正則uri,兩者的唯一區別是uri中是否包含正則表達式
uri前面的方括號中的內容是可選項,解釋如下:

“=”:用於標準uri前,要求請求字符串與uri嚴格匹配,一旦匹配成功則停止
“~”:用於正則uri前,並且區分大小寫
“~*”:用於正則uri前,但不區分大小寫
“^~”:用於標準uri前,要求Nginx找到標識uri和請求字符串匹配度最高的location後,立即使用此location處理請求,而不再使用location塊中的正則uri和請求字符串做匹配

實例服務器上配置了一個網站,一個nexus服務,server部分如下

    #gzip  on;

    server {
        listen       80;
        server_name  mini-like.com; #

        location /examples/ {
            proxy_pass http://127.0.0.1:8080/examples/; 
            proxy_set_header Host $host:80;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

		location / {
            proxy_pass http://127.0.0.1:8080/examples/; 
            proxy_set_header Host $host:80;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

    server {
        listen       80;
        server_name  mini-like.net; 

        location /docs {
            proxy_pass http://127.0.0.1:8080/docs; 
            proxy_set_header Host $host:80;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

		location / {
            proxy_pass http://127.0.0.1:8080/docs; 
            proxy_set_header Host $host:80;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

    }

     server {
        listen       80;
         server_name  mini-like.com.cn; 

        location / {
            proxy_pass http://182.92.238.98/; 
            proxy_set_header Host $host:80;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章