Nginx全配置

#==========================nginx全局配置==========================#
# 指定 nginx 進(jìn)程運行的用戶匾鸥,這里是 nginx虑瀑,默認(rèn)為nobody。
user nginx;  

# 指定 nginx 使用多少個 worker 進(jìn)程處理請求嚷兔,這里使用了 auto栏笆,表示根據(jù) CPU 核心數(shù)自動分配类腮。
worker_processes auto;  

# 指定 nginx 主進(jìn)程的 PID 文件路徑。
pid /run/nginx.pid;  

#指定錯誤日志文件的路徑
error_log /var/log/nginx/error.log;  
#==========================nginx全局配置==========================#

##==========================events==========================##
# 事件模塊的配置
events {
    # 默認(rèn)值512,設(shè)置每個 worker 進(jìn)程的最大連接數(shù)蛉加。
    worker_connections  1024;    
    
    # 默認(rèn)值off,控制是否在一次事件循環(huán)中accept多個連接請求蚜枢。啟用 multi_accept 可以減少 CPU 的使用和系統(tǒng)調(diào)用的次數(shù)缸逃,也可能會導(dǎo)致每個請求的響應(yīng)時間增加
    multi_accept on; 
    
    # 使用連接互斥鎖進(jìn)行順序的accept()系統(tǒng)調(diào)用,防止驚群現(xiàn)象發(fā)生厂抽,默認(rèn)為on
    accept_mutex on;   
    
    # 如果一個進(jìn)程沒有互斥鎖察滑,它將延遲至少多長時間。默認(rèn)情況下修肠,延遲是500ms 
    accept_mutex_delay 500ms
    
    # 指定事件驅(qū)動模塊,默認(rèn)值select,這個驅(qū)動模塊在大量連接時,性能較差户盯,這里使用了 epoll嵌施。 可選select|poll|kqueue|epoll|resig|/dev/poll|eventport
    use epoll;      
    
    # 設(shè)置 accept 互斥鎖等待時間。
    accept_mutex_delay 500ms; 

    # 實驗?zāi)K莽鸭,僅在 FreeBSD 下可用,aio 啟用則使用異步I/O,不啟用則使用同步I/O,默認(rèn)不啟用
    aio threads; # 指定異步 I/O 模塊吗伤,這里使用了 threads。
    aio_write on; # 啟用異步寫入操作硫眨。
    aio_read on; # 啟用異步讀取操作足淆。

    # 事件驅(qū)動模塊 use epoll時配置
    epoll_events 1024; # 默認(rèn)值為 512,即每次事件循環(huán)最多處理 512 個事件礁阁。
    epoll_event_connections 512; # 默認(rèn)值為 2048巧号,即每個事件最多處理 2048 個連接。
    epoll_timeout 1s; # 默認(rèn)值為 0姥闭,即 epoll 模塊不會超時丹鸿,等待事件的時間取決于操作系統(tǒng)。

    //事件驅(qū)動模塊 use kqueue時配置,僅在 FreeBSD 下可用
    kqueue_events 1024;
    kqueue_event_connections 512;
    kqueue_timeout 1s;
}
##==========================events==========================##

##==========================http==========================##
# 主要用于處理 HTTP 請求和響應(yīng)棚品,包括路由靠欢、反向代理、緩存铜跑、日志等功能门怪。
http {
    # 導(dǎo)入 MIME 類型的配置文件。
    include  /etc/nginx/mime.types;   
    
    # 定義默認(rèn)的 MIME 類型锅纺,默認(rèn)為text/plain 
    default_type  application/octet-stream; 
    
    # 定義訪問日志格式 main
    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  /var/log/nginx/access.log main; 
    
    # 指定錯誤日志文件的路徑和格式。
    error_log  /var/log/nginx/error.log main;   
    
    # 默認(rèn)開啟,直接把文件內(nèi)容從磁盤讀入內(nèi)核緩沖區(qū),尤其是在處理大文件時囤锉,效果更為明顯拣帽。
    sendfile on;  
    
    # 每個進(jìn)程每次調(diào)用傳輸數(shù)量不能大于設(shè)定的值,默認(rèn)為0嚼锄,即不設(shè)上限减拭。
    sendfile_max_chunk 100k;  
    
    # 客戶端與服務(wù)器之間的連接超時時間,默認(rèn)值為 75s区丑。
    keepalive_timeout 75;  
    
    # 在一個持久連接上最多允許的請求數(shù)量拧粪,默認(rèn)值為 100修陡。
    keepalive_requests 100; 
    
    # 是否開啟 Gzip 壓縮,默認(rèn)值為 off可霎。
    gzip on; 
    gzip_types text/plain text/css application/json application/javascript application/xml; # 壓縮文件類型列表
    gzip_min_length 20; # 只壓縮大于該長度的文件魄鸦,單位為字節(jié),默認(rèn)值為 20癣朗。
    gzip_buffers 4 8k; # 第一個參數(shù)表示緩沖區(qū)的數(shù)量拾因,第二個參數(shù)表示每個緩沖區(qū)的大小。 默認(rèn)值為 4 8k旷余。
    
    # 當(dāng)服務(wù)器返回錯誤碼時绢记,可以顯示指定的錯誤頁面。
    error_page error_page 404 /404.html;  
    
    ###==========================upstream=========================###
    # upstream 模塊用于配置反向代理服務(wù)器組正卧,可以將客戶端請求轉(zhuǎn)發(fā)到多臺服務(wù)器進(jìn)行處理蠢熄,從而實現(xiàn)負(fù)載均衡和高可用性。
    upstream backend  {   
      # 簡單的循環(huán)負(fù)載均衡
      server backend1.example.com;
      server backend2.example.com;

      # 使用權(quán)重進(jìn)行負(fù)載平衡
      server backend3.example.com weight=3; #指定服務(wù)器的權(quán)重炉旷,缺省為 1签孔,可以是任意正整數(shù)。
      server backend4.example.com weight=2;

      # 使用IP Hash值進(jìn)行權(quán)重進(jìn)行負(fù)載平衡,確保來自同一 IP 的請求總是發(fā)送到同一服務(wù)器窘行。
      ip_hash;

      # 用最少的連接進(jìn)行負(fù)載均衡,動態(tài)地將請求發(fā)送到最空閑的服務(wù)器饥追。
      least_conn;

      # 使用服務(wù)器響應(yīng)時間進(jìn)行負(fù)載平衡,將請求發(fā)送到響應(yīng)時間最短的服務(wù)器。
      fair;

      # 根據(jù)請求 URL 的哈希值進(jìn)行負(fù)載平衡
      hash $remote_addr consistent;

      # 隨機(jī)發(fā)送到服務(wù)器
      random;

      # 為backend分配一個共享內(nèi)存區(qū)域罐盔。
      zone backend_zone 64k;

      # 指定與后端服務(wù)器的 TCP 連接復(fù)用數(shù)判耕,缺省為 1。
      keepalive 16; 

      # 指定與后端服務(wù)器的 TCP 連接最大請求數(shù)翘骂,超過此數(shù)量壁熄,連接將關(guān)閉并重新建立新連接。默認(rèn)為 100碳竟。
      keepalive_requests 100;

      # 指定與后端服務(wù)器的 TCP 連接空閑超時時間草丧,默認(rèn)為 75 秒。
      keepalive_timeout 60s;
    }
    ###==========================upstream=========================###
    
    ###==========================server=========================###
    server {
      # 監(jiān)聽端口
      listen 80;

      # 指定服務(wù)器的主機(jī)名莹桅。它可以是域名昌执、IP 地址或*匹配任何主機(jī)名,也可以配置多個域名
      server_name example.com;

      # 根目錄
      root /var/www/example.com;
      
      # 限速 每秒4K
      set $limit_rate 4k;

      # 當(dāng)用戶訪問example.com 或 example.com/ 時
      location / {

      # 指定用于提供文件的回退機(jī)制。如果請求的文件不存在诈泼,nginx將嘗試返回fallback
        try_files index.html index.htm @fallback;
      }
      # 上面try files 回退到這里
      location @fallback {
         root  /var/www/error;
         index index.html;
      }

      

      # 當(dāng)用戶訪問example.com/api時
      location /api {

        # 反向代理到 http://backend/api; 本配置中 backend 是個負(fù)載均衡器
        proxy_pass http://backend/api;
      }

      # 當(dāng)用戶訪問example.com/images時
      location /images/ {
        # alias 看起來類似于 root 指令懂拾,但文檔根目錄沒有改變,只是用于當(dāng)前請求的路徑铐达。 
        # /images/top.gif 將返回 /var/www/images/top.gif
        alias /var/www/images/;

        # 設(shè)置緩存時間為1天,原理是Header 設(shè)置Cache-Control
        expires 1d;

        # 添加header
        add_header Cache-Control "public";
      }

      location ~ \.php$ {
        include fastcgi_params;  
        fastcgi_index index.php;  
        # 使用fastcgi協(xié)議 轉(zhuǎn)發(fā)到 phpfpm的unix socket文件 phpfpm 和 nginx 同一臺機(jī)器才可以這么配置
        fastcgi_pass unix:/var/run/php/php7.x-fpm.sock;
        # 使用fastcgi協(xié)議 轉(zhuǎn)發(fā)到某個服務(wù)器某個端口
        fastcgi_pass 127.0.0.1:9000;  
        # 使用fastcgi協(xié)議 轉(zhuǎn)發(fā)到負(fù)載均衡器
        fastcgi_pass http://backend/

        deny 127.0.0.1;  #拒絕的ip
        allow 172.18.5.54; #允許的ip           
      }

      # SSL 配置 監(jiān)聽443
      listen 443 ssl;

      # 證書路徑
      ssl_certificate /etc/ssl/certs/example.com.crt;

      # 證書私鑰
      ssl_certificate_key /etc/ssl/private/example.com.key;

      # HTTP/2 配置 監(jiān)聽443
      listen 443 ssl http2;

      # 設(shè)置安全header
      add_header X-Content-Type-Options "nosniff" always;
      add_header X-Frame-Options "SAMEORIGIN" always;
      add_header X-XSS-Protection "1; mode=block" always;
    }

    ###==========================server=========================###
}
##==========================http==========================##

@@todo rewrite 模塊

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末岖赋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子瓮孙,更是在濱河造成了極大的恐慌唐断,老刑警劉巖选脊,帶你破解...
    沈念sama閱讀 212,686評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異脸甘,居然都是意外死亡恳啥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評論 3 385
  • 文/潘曉璐 我一進(jìn)店門丹诀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钝的,“玉大人,你說我怎么就攤上這事铆遭∠踝” “怎么了?”我有些...
    開封第一講書人閱讀 158,160評論 0 348
  • 文/不壞的土叔 我叫張陵疚脐,是天一觀的道長。 經(jīng)常有香客問我邢疙,道長棍弄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,736評論 1 284
  • 正文 為了忘掉前任疟游,我火速辦了婚禮呼畸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘颁虐。我一直安慰自己蛮原,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,847評論 6 386
  • 文/花漫 我一把揭開白布另绩。 她就那樣靜靜地躺著儒陨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪笋籽。 梳的紋絲不亂的頭發(fā)上蹦漠,一...
    開封第一講書人閱讀 50,043評論 1 291
  • 那天,我揣著相機(jī)與錄音车海,去河邊找鬼笛园。 笑死,一個胖子當(dāng)著我的面吹牛侍芝,可吹牛的內(nèi)容都是我干的研铆。 我是一名探鬼主播,決...
    沈念sama閱讀 39,129評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼州叠,長吁一口氣:“原來是場噩夢啊……” “哼棵红!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起咧栗,我...
    開封第一講書人閱讀 37,872評論 0 268
  • 序言:老撾萬榮一對情侶失蹤窄赋,失蹤者是張志新(化名)和其女友劉穎哟冬,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體忆绰,經(jīng)...
    沈念sama閱讀 44,318評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡浩峡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,645評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了错敢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翰灾。...
    茶點故事閱讀 38,777評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖稚茅,靈堂內(nèi)的尸體忽然破棺而出纸淮,到底是詐尸還是另有隱情,我是刑警寧澤亚享,帶...
    沈念sama閱讀 34,470評論 4 333
  • 正文 年R本政府宣布咽块,位于F島的核電站,受9級特大地震影響欺税,放射性物質(zhì)發(fā)生泄漏侈沪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,126評論 3 317
  • 文/蒙蒙 一晚凿、第九天 我趴在偏房一處隱蔽的房頂上張望亭罪。 院中可真熱鬧,春花似錦歼秽、人聲如沸应役。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽箩祥。三九已至,卻和暖如春肆氓,著一層夾襖步出監(jiān)牢的瞬間滥比,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評論 1 267
  • 我被黑心中介騙來泰國打工做院, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留盲泛,地道東北人。 一個月前我還...
    沈念sama閱讀 46,589評論 2 362
  • 正文 我出身青樓键耕,卻偏偏與公主長得像寺滚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子屈雄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,687評論 2 351

推薦閱讀更多精彩內(nèi)容