Nginx配置

在實(shí)際項(xiàng)目中,Nginx經(jīng)常被用作反向代理、負(fù)載均衡和靜態(tài)服務(wù)器,主要通過配置文件實(shí)現(xiàn)功能。Nginx服務(wù)器的配置信息主要集中在nginx.conf這個(gè)配置文件中,并且所有的可配置選項(xiàng)大致分為以下幾個(gè)部分。

  • main:用于進(jìn)行nginx全局信息的配置
  • events:用于nginx工作模式的配置
  • http:用于進(jìn)行http協(xié)議信息的一些配置
  • server:用于進(jìn)行服務(wù)器訪問信息的配置
  • location:用于進(jìn)行訪問路由的配置
  • upstream:用于進(jìn)行負(fù)載均衡的配置

main

# user nobody nobody; #nginx worker進(jìn)程運(yùn)行用戶和運(yùn)行組
worker_processes 2;    #開啟的子進(jìn)程數(shù)量,一般為CPU內(nèi)核數(shù)量整數(shù)倍
# error_log logs/error.log  #錯(cuò)誤日志文件輸出
# error_log logs/error.log notice
# error_log logs/error.log info
# pid logs/nginx.pid #pid文件位置
worker_rlimit_nofile 1024;  #一個(gè)進(jìn)程可以打開最多文件數(shù)量的描述

event

event {
    worker_connections 1024;   #最大可接收的連接數(shù)量
    multi_accept on; #指定nginx在收到一個(gè)新連接通知后盡可能多的接受更多的連接
    use epoll;  #配置指定了線程輪詢的方法,如果是linux2.6+,使用epoll,如果是BSD如Mac請使用Kqueue 
}

http

http {
    ##
    # 基礎(chǔ)配置
    ##

    sendfile on; #開啟sendfile功能,將文件回寫交給數(shù)據(jù)緩沖完成,提升性能
    tcp_nopush on; #讓nginx在一個(gè)數(shù)據(jù)包中發(fā)送所有的頭文件,而不是一個(gè)一個(gè)單獨(dú)發(fā)
    tcp_nodelay on; #讓nginx不要緩存數(shù)據(jù),而是一段一段發(fā)送,如果數(shù)據(jù)的傳輸有實(shí)時(shí)性的要求的話可以配置它,發(fā)送完一小段數(shù)據(jù)就立刻能得到返回值
    keepalive_timeout 65; #給客戶端分配連接超時(shí)時(shí)間,一般設(shè)置較短,工作持續(xù)性更好
    client_header_timeout 10:設(shè)置請求頭的超時(shí)時(shí)間
    client_body_timeout 10:設(shè)置請求體的超時(shí)時(shí)間
    send_timeout 10:指定客戶端響應(yīng)超時(shí)時(shí)間,如果客戶端兩次操作間隔超過這個(gè)時(shí)間,服務(wù)器就會關(guān)閉這個(gè)鏈接
    types_hash_max_size 2048; #混淆數(shù)據(jù),影響三列沖突率,值越大消耗內(nèi)存越多,散列key沖突率會降低,檢索速度更快;值越小key,占用內(nèi)存較少,沖突率越高,檢索速度變慢
    # server_tokens off; #雖然不會讓nginx執(zhí)行速度更快,但是可以在錯(cuò)誤頁面關(guān)閉nginx版本提示,對于網(wǎng)站安全性的提升有好處
    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types; #指定在當(dāng)前文件中包含另一個(gè)文件的指令
    default_type application/octet-stream; #指定默認(rèn)處理的文件類型可以是二進(jìn)制

    ##
    # SSL證書配置
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on; #設(shè)置協(xié)商加密算法時(shí),優(yōu)先使用我們服務(wù)端的加密套件,而不是客戶端瀏覽器的加密套件

    ##
    # 日志配置
    ##

    access_log /var/log/nginx/access.log; #存儲訪問記錄的日志
    error_log /var/log/nginx/error.log; #存儲記錄錯(cuò)誤發(fā)生的日志

    ##
    # Gzip 壓縮配置
    ##

    gzip on; #使用gzip壓縮傳輸數(shù)據(jù),減少發(fā)送數(shù)據(jù)量,提升性能
    gzip_disable "msie6"; #為指定的客戶端禁用gzip功能

    # gzip_vary on;
    # gzip_proxied any; #允許或者禁止壓縮基于請求和響應(yīng)的響應(yīng)流。我們設(shè)置為any,意味著將會壓縮所有的請求。
    # gzip_comp_level 6; #設(shè)置數(shù)據(jù)的壓縮等級。這個(gè)等級可以是1-9之間的任意數(shù)值,9是最慢但是壓縮比最大的
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript
 text/xml application/xml application/xml+rss text/javascript; #設(shè)置需要壓縮的數(shù)據(jù)格式

    open_file_cache 打開緩存的同時(shí)也指定了緩存最大數(shù)目,以及緩存的時(shí)間。我們可以設(shè)置一個(gè)相對高的最大時(shí)間,這樣我們可以在它們不活動超過20秒后清除掉。
    open_file_cache_valid 在open_file_cache中指定檢測正確信息的間隔時(shí)間。
    open_file_cache_min_uses 定義了open_file_cache中指令參數(shù)不活動時(shí)間期間里最小的文件數(shù)。
    open_file_cache_errors 指定了當(dāng)搜索一個(gè)文件時(shí)是否緩存錯(cuò)誤信息,也包括再次給配置中添加文件。我們也包括了服務(wù)器模塊,這些是在不同文件中定義的。如果你的服務(wù)器模塊不在這些位置,你就得修改這一行來指定正確的位置。

    ##
    # 虛擬主機(jī)配置
    ##
    #包含其他獨(dú)立的conf文件
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

server

srever模塊配置是http模塊中的一個(gè)子模塊,用來定義一個(gè)虛擬訪問主機(jī),也就是一個(gè)虛擬服務(wù)器的配置信息

server {
    listen        80;    #端口
    server_name localhost    192.168.1.100; #指定ip地址或者域名,多個(gè)配置之間用空格分隔
    root        /nginx/www;  #虛擬主機(jī)內(nèi)的根目錄
    index        index.php index.html index.html; #用戶訪問web網(wǎng)站時(shí)的全局首頁
    charset        utf-8;   #配置網(wǎng)頁的默認(rèn)編碼格式
    access_log    logs/access.log;  #訪問記錄日志存放路徑
    error_log    logs/error.log;  #訪問錯(cuò)誤日志的存放路徑
    location / {    #表示匹配訪問根目錄
        root    /nginx/www;    #指定訪問根目錄時(shí)
        index    index.php index.html index.htm;    #在不指定訪問具體資源時(shí),默認(rèn)展示的資源文件列表
    }
    #反向代理模式,通過反向代理代理服務(wù)器訪問模式,通過proxy_set配置讓客戶端訪問透明化
    location / {
        proxy_pass http://localhost:8888;
        proxy_set_header X-real-ip $remote_addr;
        proxy_set_header Host $http_host;
    }

#uwsgi配置
    location / {
        include uwsgi_params;
        uwsgi_pass localhost:8888
    }

#upstream模塊,主要負(fù)責(zé)負(fù)載均衡的配置,通過默認(rèn)的輪詢調(diào)度方式來分發(fā)請求到后端服務(wù)器
    upstream name {
        ip_hash;  #指定請求調(diào)度算法,默認(rèn)是weight權(quán)重輪詢調(diào)度
        server 192.168.1.100:8000;  
        server 192.168.1.100:8001 down; #此服務(wù)器暫停使用
        server 192.168.1.100:8002 max_fails=3; #最大失敗次數(shù),超過則暫停服務(wù)
        server 192.168.1.100:8003 fail_timeout=20s; #如請求失敗,暫停多久重新發(fā)起請求

        server 192.168.1.100:8004 max_fails=3 fail_timeout=20s;
}

    ......
}

參考鏈接:https://www.cnblogs.com/zhouxinfei/p/7862285.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 2011.5.20--2018.1.7,結(jié)婚后的日子有快7年了,現(xiàn)在的日子過得特別不舒服,憋得難受!三言兩語就會吵...
    星星和月閱讀 213評論 0 0
  • 都市的繁華只能滿足自己一時(shí)的虛榮 安逸的工作背后也承受著不同的苦痛 純粹的靈魂沒能挽救病態(tài)的心 埋頭的努力也變成別...
    喬和閱讀 175評論 0 0
  • 聽到這個(gè)消息,我驚訝但不覺意外,是因?yàn)槔斫膺@樣的感情婚姻,留存只是消耗彼此的能量,放手才是解脫。我給這個(gè)姐姐...
    草木石閱讀 204評論 0 0
  • 巨蟹座女生愛一個(gè)人的表現(xiàn) 巨蟹座女生,她們通常比較慢熱,也不擅于表達(dá)自己的喜歡。對于感情,她們被動,放不開,認(rèn)識時(shí)...
    最真實(shí)的巨蟹座閱讀 3,622評論 0 2

友情鏈接更多精彩內(nèi)容