1. 程式人生 > 其它 >Python--資料型別與list列表

Python--資料型別與list列表

原始碼:https://trac.nginx.org/nginx/browser

官網:http://www.nginx.org/

nginx 檔案結構

...              #全域性塊

events {         #events塊
   ...
}

http      #http塊
{
    ...   #http全域性塊
    server        #server塊
    { 
        ...       #server全域性塊
        location [PATTERN]   #location塊
        {
            ...
        }
        location [PATTERN] 
        {
            
... } } server { ... } ... #http全域性塊 # 引用該目錄下以 .conf 檔案結尾的虛擬主機配置 include vhosts.conf; #一個檔案配置多個域名 #include vhost/*.conf #多個域名檔案 }

1、全域性塊:配置影響nginx全域性的指令。一般有執行nginx伺服器的使用者組,nginx程序pid存放路徑,日誌存放路徑,配置檔案引入,允許生成worker process數等。

2、events塊:配置影響nginx伺服器或與使用者的網路連線。有每個程序的最大連線數,選取哪種事件驅動模型處理連線請求,是否允許同時接受多個網路連線,開啟多個網路連線序列化等。

3、http塊:可以巢狀多個server,配置代理,快取,日誌定義等絕大多數功能和第三方模組的配置。如檔案引入,mime-type定義,日誌自定義,是否使用sendfile傳輸檔案,連線超時時間,單連線請求數等。

4、server塊:配置虛擬主機的相關引數,一個http中可以有多個server。

5、location塊:配置請求的路由,以及各種頁面的處理情況。

配置檔案詳解

########### 每個指令必須有分號結束。#################
# 執行使用者
user www-data;

# 啟動程序,通常設定成和cpu的數量相等
worker_processes  6;

# 全域性錯誤日誌定義型別,日誌級別 [debug | info | notice | warn | error | crit(預設)] error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; # 程序pid檔案 pid /var/run/nginx.pid; # 工作模式及連線數上限 events { #設定網路連線序列化,防止驚群現象發生,預設為on accept_mutex on; # 僅用於linux2.6以上核心,可以大大提高nginx的效能 #事件驅動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport use epoll; # 單個後臺worker process程序的最大併發連結數 worker_connections 1024; # 客戶端請求頭部的緩衝區大小 client_header_buffer_size 4k; # keepalive 超時時間 keepalive_timeout 60; #設定一個程序是否同時接受多個網路連線,預設為off # multi_accept on; } #設定http伺服器,利用它的反向代理功能提供負載均衡支援 http { # 副檔名與檔案型別對映表義 include /etc/nginx/mime.types; # 預設檔案型別 default_type application/octet-stream; # 預設編碼 charset utf-8; # 伺服器名字的hash表大小 server_names_hash_bucket_size 128; # 客戶端請求頭部的緩衝區大小 client_header_buffer_size 32k; # 客戶請求頭緩衝大小 large_client_header_buffers 4 64k; # 設定通過nginx上傳檔案的大小 client_max_body_size 8m; # 開啟目錄列表訪問,合適下載伺服器,預設關閉。 autoindex on; # sendfile 指令指定 nginx 是否呼叫 sendfile 函式(zero copy 方式)來輸出檔案,對於普通應用, # 必須設為 on,如果用來進行下載等應用磁碟IO重負載應用,可設定為 off,以平衡磁碟與網路I/O處理速度 sendfile on; sendfile_max_chunk 100k; #每個程序每次呼叫傳輸數量不能大於設定的值,預設為0,即不設上限。 keepalive_timeout 65; #連線超時時間,預設為75s,可以在http,server,location塊。 # 此選項允許或禁止使用socke的TCP_CORK的選項,此選項僅在使用sendfile的時候使用 #tcp_nopush on; # 連線超時時間(單秒為秒) keepalive_timeout 65; # gzip模組設定 gzip on; #開啟gzip壓縮輸出 gzip_min_length 1k; #最小壓縮檔案大小 gzip_buffers 4 16k; #壓縮緩衝區 gzip_http_version 1.0; #壓縮版本(預設1.1,前端如果是squid2.5請使用1.0) gzip_comp_level 2; #壓縮等級 gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; # 開啟限制IP連線數的時候需要使用 #limit_zone crawler $binary_remote_addr 10m; # 負載均衡配置 upstream mysvr { # https://www.cnblogs.com/xuey/p/7439695.html } #錯誤頁,這裡可以統一定義,也可在 server 中分別定義 error_page 404 http://www.myhost.com/404.html; # http 虛擬主機的配置 server { #單連線請求上限次數 keepalive_requests 120; # 監聽埠 listen 80; # 域名可以有多個,用空格隔開 server_name www.jd.com jd.com; # 預設入口檔名稱 index index.html index.htm index.php; # 網站根目錄 root /data/www/jd; # 圖片快取時間設定 location ~ .*.(gif|jpg|jpeg|png|bmp|swf)${ expires 10d; } #JS和CSS快取時間設定 location ~ .*.(js|css)?${ expires 1h; } # 日誌 star ----- 可以放 http 中統一定義,也可 server 塊中單獨(分別)定義 #access_log off; #取消服務日誌 # 日誌格式設定 #$remote_addr與 $http_x_forwarded_for用以記錄客戶端的ip地址; #$remote_user:用來記錄客戶端使用者名稱稱; #$time_local:用來記錄訪問時間與時區; #$request:用來記錄請求的url與http協議; #$status:用來記錄請求狀態;成功是200, #$body_bytes_sent :記錄傳送給客戶端檔案主體內容大小; #$http_referer:用來記錄從那個頁面連結訪問過來的; #$http_user_agent :記錄客戶端瀏覽器的相關資訊; #自定義日誌格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; # 定義本虛擬主機的訪問日誌 access_log /usr/local/nginx/logs/myhost.access.log main; # 日誌 end ------------------------------------ # 對具體路由進行反向代理 location /connect-controller { # 代理轉發 https://www.cnblogs.com/vicky-li/p/10411104.html proxy_pass http://127.0.0.1:88; proxy_redirect off; #只要使用者在瀏覽器中訪問的域名綁定了 VIP, VIP 下面有RS;則就用$host;host是訪問URL中的域名和埠 www.taobao.com:80 proxy_set_header Host $host; #把源IP 【$remote_addr,建立HTTP連線header裡面的資訊】賦值給X-Real-IP;這樣在程式碼中 $X-Real-IP來獲取 源IP proxy_set_header X-Real-IP $remote_addr; #在nginx 作為代理伺服器時,設定的IP列表,會把經過的機器ip,代理機器ip都記錄下來,用 【,】隔開;程式碼中用 echo $x-forwarded-for |awk -F, '{print $1}' 來作為源(真實)IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 允許客戶端請求的最大單檔案位元組數 client_max_body_size 10m; # 緩衝區代理緩衝使用者端請求的最大位元組數, client_body_buffer_size 128k; # 表示使nginx阻止HTTP應答程式碼為400或者更高的應答。 proxy_intercept_errors on; # nginx跟後端伺服器連線超時時間(代理連線超時) proxy_connect_timeout 90; # 後端伺服器資料回傳時間_就是在規定時間之內後端伺服器必須傳完所有的資料 proxy_send_timeout 90; # 連線成功後,後端伺服器響應的超時時間 proxy_read_timeout 90; # 設定代理伺服器(nginx)儲存使用者頭資訊的緩衝區大小 proxy_buffer_size 4k; # 設定用於讀取應答的緩衝區數目和大小,預設情況也為分頁大小,根據作業系統的不同可能是4k或者8k proxy_buffers 4 32k; # 高負荷下緩衝大小(proxy_buffers*2) proxy_busy_buffers_size 64k; # 設定在寫入proxy_temp_path時資料的大小,預防一個工作程序在傳遞檔案時阻塞太長 # 設定快取資料夾大小,大於這個值,將從upstream伺服器傳 proxy_temp_file_write_size 64k; } # 動靜分離反向代理配置(多路由指向不同的服務端或介面) location ~ .(jsp|jspx|do)?$ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080; } # 請求的url過濾,正則匹配,~為區分大小寫,~*為不區分大小寫。 location ~*^.+$ { #root path; #根目錄 #index vv.txt; #設定預設頁 proxy_pass http://mysvr; #請求轉向mysvr 定義的伺服器列表 deny 127.0.0.1; #拒絕的ip allow 172.18.5.54; #允許的ip } #將請求轉成https rewrite ^(.*)$ https://$host$1 permanent; # 指定虛擬主機的配置檔案,方便管理 include /etc/nginx/conf.d/*.conf; } # https 連線 server { # https 埠 listen 443; # 網站域名 server_name myhoust.com www.myhost.com; # 開啟ssl,證書地址 ssl on; ssl_certificate cert.pem; ssl_certificate_key cert.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { #資料夾 root /usr/local/service/ROOT; #主頁檔案 index index.html; } } }