Nginx(3):上手Nginx,從配置文件開始

      網友投稿 805 2025-03-31

      其實吧,我配置 tcp 負載均衡的時候也就弄了一下配置文件,也沒了解太多的東西。


      @[toc]

      Nginx(3):上手Nginx,從配置文件開始

      組成部分

      看到一張還不錯的圖:

      我也知道,這么多東西哪里背的住,但是有個速查文檔也不錯啊。

      main 全局配置

      nginx在運行時與具體業務功能(比如http服務或者email服務代理)無關的一些參數,比如工作進程數,運行的身份等。

      user www www; # 指定nginx進程使用什么用戶啟動 worker_processes 4; # 指定啟動多少進程來處理請求,一般情況下設置成CPU的核數。 #如果開啟了ssl和gzip更應該設置成與邏輯CPU數量一樣甚至為2倍,可以減少I/O操作。 #使用grep ^processor /proc/cpuinfo | wc -l查看CPU核數。 worker_cpu_affinity 0001 0010 0100 1000; # 在高并發情況下,通過設置將CPU和具體的進程綁定來降低由于多核CPU切換造成的寄存器等現場重建帶來的性能損耗。 # 如worker_cpu_affinity 0001 0010 0100 1000; (四核) error_log /var/logs/nginx_error.log crit; # 定義全局錯誤日志文件。 # 日志輸出級別有debug、info、notice、warn、error、crit可供選擇,其中,debug輸出日志最為最詳細,而crit輸出日志最少。 pid /usr/local/webserver/nginx/nginx.pid; worker_rlimit_nofile 65535; # 用于指定一個nginx進程可以打開的最多文件描述符數目,這里是65535,需要使用命令“ulimit -n 65535”來設置。

      events模塊

      events{ use epoll; # 事件模塊指令,用來指定Nginx的工作模式。 worker_connections 65536; # 每一個worker進程能并發處理(發起)的最大連接數(包含與客戶端或后端被代理服務器間等所有連接數)。 }

      1、Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平臺上,而kqueue用在BSD系統中。對于Linux系統,epoll工作模式是首選。在操作系統不支持這些高效模型時才使用select。

      2、最大連接數 = worker_processes * worker_connections/4,所以這里客戶端最大連接數是65536。當nginx作為http服務器時,計算公式里面是除以2。進程的最大連接數受Linux系統進程的最大打開文件數限制,在執行操作系統命令ulimit -n 65536后worker_connections的設置才能生效。

      stream

      做tcp負載均衡的話在這下面插一下stream,像這樣:

      events { worker_connections 1024; } stream { upstream MyServer{ # 定義一個upstream組,名為MyServer # 這里配置成要訪問的 IP:Port # 這里選用權重輪詢負載算法,weight為權重 server 192.168.190.129:6000 weight=1 max_fails=3 fail_timeout=30s; server 192.168.190.129:6002 weight=1 max_fails=3 fail_timeout=30s; # max_fails :表示失敗幾次,則標記server已宕機,剔出上游服務。 # fail_timeout :表示失敗的重試時間。 } server { proxy_connect_timeout 1s; listen 8000; proxy_pass MyServer; # 把TCP通信發送到upstream的哪個server中去,可以指定端口,但是這里沒必要 tcp_nodelay on; } } http {

      前面提到了權重負載,這里再列舉幾種:

      a):least-connected :對于每個請求,nginx plus選擇當前連接數最少的server來處理

      upstream MyServer{ least_conn; server 192.168.190.129:6000; server 192.168.190.129:6001; server 192.168.190.129:6002; }

      b)ip_hash :客戶機的IP地址用作散列鍵,用于確定應該為客戶機的請求選擇服務器組中的哪個服務器,這樣一臺客戶端就綁定了一臺服務器了。

      upstream MyServer{ ip_hash; server 192.168.190.129:6000; server 192.168.190.129:6001; server 192.168.190.129:6002; }

      與之對應的還有url_hash。

      c)fair,按后端服務器的響應時間來分配請求,響應時間短的優先分配。

      upstream MyServer{ server 192.168.1.10:8080; server 192.168.1.11:8080; fair; }

      a)max_conns,限制每臺server的連接數,用于保護避免過載,可起到限流作用 。

      upstream MyServer{ server 192.168.190.129:6000 max_conns=2; server 192.168.190.129:6001 max_conns=2; server 192.168.190.129:6002 max_conns=2; }

      b)slow_start

      upstream MyServer{ server 192.168.190.129:6000 weight=6 slow_start=60s; server 192.168.190.129:6001 weight=2; server 192.168.190.129:6002; }

      1、該參數不能使用在 hash 和 random load balancing 中。

      2、如果在 upstream 中只有一臺 server,則該參數失效

      c)down、backup:

      down 用于標記服務節點不可用,backup 表示當前服務器節點是備用機,只有在其他的服務器都宕機以后,自己才會加入到集群中,被用戶訪問到。

      upstream MyServer{ server 192.168.51.5:8080 down; server 192.168.51.6:8080 weight=1; server 192.168.51.5:8080 backup; }

      backup 參數不能使用在 hash 和 random load balancing 中。

      d)Keepalived 提高吞吐量

      upstream MyServer{ ····· keepalive 32; # 設置連接池大小 }

      http服務器

      http{ include mime.types; # 主模塊指令,實現對配置文件所包含的文件的設定,可以減少主配置文件的復雜度。 default_type application/octet-stream; # 屬于HTTP核心模塊指令,這里設定默認類型為二進制流 #charset gb2312; # 指定客戶端編碼格式 }

      HTTP Nginx

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:怎樣才能添加空白格(怎么在表格中添加空白格)
      下一篇:Android精進之路-02】安裝Android Studio,認識Android SDK
      相關文章
      亚洲成AV人片一区二区| 亚洲AV无码一区二区三区牲色| 亚洲?V无码乱码国产精品| 亚洲精品在线免费看| 久久精品国产亚洲AV无码娇色| 亚洲成a人片在线观看无码| 亚洲精品高清无码视频| 国精无码欧精品亚洲一区| 亚洲AⅤ永久无码精品AA| 亚洲?V乱码久久精品蜜桃 | 亚洲一二成人精品区| 久久精品国产亚洲77777| 亚洲视频在线观看网址| 亚洲日产2021三区在线| 亚洲国产成人久久三区| 亚洲人配人种jizz| 亚洲色大成网站www尤物| 亚洲AV无码一区二区三区久久精品| 亚洲av无码成人精品区一本二本 | 亚洲乱码一区av春药高潮| 久久亚洲精精品中文字幕| 亚洲高清中文字幕| 亚洲一区无码中文字幕乱码| 亚洲一区二区三区国产精华液| 亚洲国产精品无码观看久久| 风间由美在线亚洲一区| 亚洲日韩在线观看| 亚洲精品国产品国语在线| 亚洲日本精品一区二区 | 亚洲精品色婷婷在线影院| 国外亚洲成AV人片在线观看 | 2020久久精品亚洲热综合一本 | 亚洲精品中文字幕无码蜜桃| 亚洲av无码国产精品夜色午夜| 亚洲日本一区二区| 亚洲精品亚洲人成在线播放| 亚洲爆乳成av人在线视菜奈实| 午夜在线亚洲男人午在线| 国产亚洲一区区二区在线 | 久久亚洲国产伦理| 亚洲福利一区二区|