/etc/nginx/nginx.conf/etc/nginx/sites-available/default從包含文件來看,建議修改/etc/nginx/sites-available/default

建議先備份原有配置,再修改

cp /etc/nginx/" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > Nginx 常用配置清單有哪些?

Nginx 常用配置清單有哪些?

時間:2024-01-05 15:24:01 | 來源:網(wǎng)站運營

時間:2024-01-05 15:24:01 來源:網(wǎng)站運營

Nginx 常用配置清單有哪些?:nginx在兩處會發(fā)揮作用:

從包含文件來看,建議修改/etc/nginx/sites-available/default

建議先備份原有配置,再修改

cp /etc/nginx/sites-available/default default.bakvim /etc/nginx/sites-available/default

1 nginx目錄結構介紹

2 nginx.conf總體架構

在上面nginx服務目錄介紹中,/usr/local/nginx/conf/nginx.conf是nginx服務主配置文件,也是其核心配置文件,去掉包含#號和空號的內容,大致看下nginx.conf配置文件結構

第一部分 全局塊

主要設置一些影響 nginx 服務器整體運行的配置指令。

比如: worker_processes 1; , worker_processes 值越大,可以支持的并發(fā)處理量就越多。

第二部分 events塊

events 塊涉及的指令主要影響Nginx服務器與用戶的網(wǎng)絡連接。

比如: worker_connections 1024; ,支持的最杭州接數(shù)。

第三部分 http塊

http 塊又包括 http 全局塊和 server 塊,是服務器配置中最頻繁的部分,包括配置代理、緩存、日志定義等絕大多數(shù)功能。

server塊:配置虛擬主機的相關參數(shù)。

location塊(URL匹配特定位置的設置):配置請求路由,以及各種頁面的處理情況。

upstream(負載均衡服務器設置):指令主要用于負載均衡,設置一系列的后端服務器,upstream后的名稱和后面的 proxy_pass要對應起來。

3 全局塊

從配置文件開始到 events 塊之間的內容,主要會設置一些影響 nginx 服務器整體運行的配置指令,主要包括配置運行 Nginx 服務器的用戶(組)、允許生成的 worker process 數(shù),進程 PID 存放路徑、日志存放路徑和類型以及配置文件的引入等。通常包括下面幾個部分:

1 配置運行Nginx服務器用戶(組)

如:user nobody nobody; user是個主模塊指令,指定Nginx Worker進程運行以及用戶組。

指令格式:user user [group];

user:指定可以運行Nginx服務器的用戶;group:可選項,可以運行Nginx服務器的用戶組。

如果user指令不配置或者配置為user nobody nobody,默認由nobody賬戶運行。

2 worker process數(shù)

Nginx服務器實現(xiàn)并發(fā)處理服務的關鍵。woker_processes是主模塊指令,制定了Nginx要開啟的進程數(shù)。每個Nginx進程平均耗費10M~12M內存。建議指定和CPU的數(shù)量一致即可。worker_processes: CPU核心數(shù),(雙核4線程,可以設置為4),默認:worker_processes: 1

網(wǎng)上推薦:據(jù)實踐表明,nginx的這個參數(shù)在一般情況下開4個或8個就可以了,再往上開的話優(yōu)化不太大。(https://www.cnblogs.com/aaron-agu/p/8003831.html

指令格式:worker_processes number | auto;

number : Nginx 進程最多可以產(chǎn)生的worker process 數(shù)。auto : Nginx 進程將自動檢測。在按照上面的配置格式配置了之后,假如上面的數(shù)目是2,那么啟動Nginx服務器后,在后臺主機上查看Nginx的進程情況,可以看到應該是有2個Nginx進程。

3.錯誤日志的存放路徑

error_log 是個主模塊指令,用來定義全局錯誤日志文件。日志輸出級別有debug,info,notice,warn,error,erit可供選擇,其中,debug輸出日志最為詳細,而crit輸出日志最少。

指定格式:error_log file | stderr;

如:error_log logs/error.log info;

4.Nginx進程PID存放路徑

Nginx進程是作為系統(tǒng)守護進程在進行,需要在某個文件中保存當前運行程序的主進程號,Nginx支持該保存文件路徑的定義。

指令格式:pid file;

如:pid logs/nginx.pid; pid是個主模塊指令,用來指定進程pid的存儲文件位置。

5.worker_rlimit_nofile

指定進程可以打開的最多文件描述數(shù)目,理論值應該是最多打開文件數(shù)(ulimit -n )與nginx進程數(shù)相除,但是Nginx分配請求并不是那么均勻,所以最好與ulimit -n 的值保持一致。

現(xiàn)在在Linux2.6 內核下開啟文件打開數(shù)為65535,worker_rlimit_nofile 就相應應該填寫65535.這是因為Nginx調度時請求到進程并不是那么均衡,所以假如填寫10240,總并發(fā)量達到3-4萬時就有進程超過10240了,這就會返回502。

如:worker_rlimit_nofile 65535; 用來綁定worker進程和CPU,Linux內核2.4 以上可用

4 events塊

events事件指令是設定Nginx的工作模式及連接數(shù)上限。每個配置選項的含義解釋如下:

1.use

如:use epoll;

use是事件模塊指令,用來指定Nginx的工作模式。Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll 。其中select 和poll 都是標準的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平臺上,而kqueue用在BSD系統(tǒng)中。對于Linux系統(tǒng),epoll工作模式是首選。

2.worker_connections

如:worker_connections 65536;

work_connections也是個事件模塊指令,用于定義Nginx每個進程的最杭州接數(shù),默認是1024。注意一下幾點:

  1. connections不是隨便設置的,而是與兩個指標有重要關聯(lián),一是內存,二是操作系統(tǒng)級別的“進程最大可打開文件數(shù)”。
  2. 內存:每個連接數(shù)分別對應一個read_event、一個write_event事件,一個連接數(shù)大概占用232字節(jié),2個事件總占用96字節(jié),那么一個連接總共占用328字節(jié),通過數(shù)學公式可以算出100000個連接數(shù)大概會占用 31M = 100000 * 328 / 1024 / 1024,當然這只是nginx啟動時,connections連接數(shù)所占用的nginx。
  3. 進程最大可打開文件數(shù):進程最大可打開文件數(shù)受限于操作系統(tǒng),可通過 ulimit -n 命令查詢,以前是1024,現(xiàn)在是65535,
nginx提供了worker_rlimit_nofile指令,這是除了ulimit的一種設置可用的描述符的方式。 該指令與使用ulimit對用戶的設置是同樣的效果。此指令的值將覆蓋ulimit的值,如:worker_rlimit_nofile 20960;

設置ulimits:ulimit -SHn 65535

通過 ps -elf | grep nginx 找到 nginx 的worker進程ID

通過 cat /proc/31613/limits 查看,其中2291是worker進程ID,請注意其中的Max open files

從上面的分析可以看出nginx占用內存小,處理性能高,通過提高服務器的配置,Nginx可以應對更大的連接數(shù)

注意:

以上兩個worker_processes與worker_connections 設置好合適大小,可以提示nginx處理性能,非常重要。原作者的話:

As a general rule you need the only worker with large number of worker_connections, say 10,000 or 20,000.However, if nginx does CPU-intensive work as SSL or gzipping and you have 2 or more CPU, then you may set worker_processes to be equal to CPU number.Besides, if you serve many static files and the total size of the files is bigger than memory, then you may increase worker_processes to utilize a full disk bandwidth.

翻譯:

一般一個進程足夠了,你可以把連接數(shù)設得很大。(worker_processes: 1,worker_connections: 10,000)

如果有SSL、gzip這些比較消耗CPU的工作,而且是多核CPU的話,可以設為和CPU的數(shù)量一樣(worker_processes: CPU核心數(shù))或者要處理很多很多的小文件,而且文件總大小比內存大很多的時候,也可以把進程數(shù)增加,以充分利用IO帶寬(主要似乎是IO操作有block)

5 http塊

1 定義MIMI-Type

如:include mime.types;

指令格式:include file;

該指令主要用于將其他的Nginx配置或第三方模塊的配置引用到當前的主配文件中,減少主配置文件的復雜度。default_type application/octet-stream;

default_type:屬于HTTP核心模塊指令,這里設定默認類型為二進制流。也就是當文件類型未定義時使用這種方式,

2 自定義服務日志

log_format 是Nginx的HttpLog模塊指令,用于指定Nginx日志的輸出日志。當然其中還有更為詳細的配置,但是這里只做大略的研究學習,不過分深入細節(jié)。

3 允許sendfile方式傳輸文件

指令格式:sendfile on;

這個指令中的參數(shù)on是表示開啟高效文件傳輸模式,默認是關閉狀態(tài)(off),將tcp_nopush和tcp_nodelay兩個指令設置為on用于防止網(wǎng)絡阻塞;

4 連接超時時間

指令格式:keepalive_timeout number;

長連接超時時間,單位是秒:設置客戶端連接保持活動的超時時間。在超過這個時間之后,服務器會關閉該連接;

如:keepalive_timeout 65;

5 server塊的配置,即虛擬主機的配置

server #網(wǎng)站配置區(qū)域{ listen 80; #默認監(jiān)聽80端口 server_name www.lulu.com; #提供服務的域名主機名 location / { root html; #站點根目錄(這里html是相對路徑,默認網(wǎng)站根目錄為:/usr/local/nginx/html) index index.thml index.htm; #默認首頁文件,多個用空格分開 } error_page 500 502 503 504 /50x.html; #出現(xiàn)對應http狀態(tài)碼時,使用50x.html回應客戶 location = /50x.thml { root html; #指定對應目錄 }}

6 include /etc/nginx/conf.d/*.conf;

設置http端配置包含/etc/nginx/conf.d目錄中所有以".conf"文件結尾的配置文件,一般將server段配置文件放在該目錄下。

6 實例

1.反向代理案例

server { listen 80; server_name 192.168.4.32; #監(jiān)聽地址 location / { root html; #/html目錄 proxy_pass http://127.0.0.1:8080; #請求轉向 index index.html index.htm; #設置默認頁 } }

2.負載均衡案例

在瀏覽器地址欄輸入 http://192.168.4.32/example,平均到 5000 和 8080 端口中,實現(xiàn)負載均衡效果。

upstream myserver { server 192.167.4.32:5000; server 192.168.4.32:8080; } server { listen 80; #監(jiān)聽端口 server_name 192.168.4.32; #監(jiān)聽地址 location / { root html; #html目錄 index index.html index.htm; #設置默認頁 proxy_pass http://myserver; #請求轉向 myserver 定義的服務器列表 } }

3.直接編寫/etc/nginx/nginx.conf

user nginx_wb; #Linux下使用 top查尋后顯示的用戶名稱# worker_processes 值越大,可以支持的并發(fā)處理量就越多 worker_processes auto; pid /run/nginx.pid;include /etc/nginx/modules-enabled/*.conf;daemon off;events { #支持的最杭州接數(shù)1024 默認為512 worker_connections 768; accept_mutex on; #設置網(wǎng)路連接序列化,防止驚群現(xiàn)象發(fā)生,默認為on multi_accept off; #設置一個進程是否同時接受多個網(wǎng)絡連接,默認為off}http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; #Nginx 的默認值是 65 秒,有些瀏覽器最多只保持60秒,所以可設定為 60 秒。若將它設置為 0,就禁止了keepalive連接。 keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; #sendfile_max_chunk 100k; #每個進程每次調用傳輸數(shù)量不能大于設定的值,默認為0,即不設上限。 # server_names_hash_bucket_size 64; # server_name_in_redirect off; ###定義上游服務器(需要被nginx真實代理訪問的服務器),和下面的server配套使用 upstream backServer{ #輪詢服務器,weight為服務器權重,與訪問頻率成正比,max_fails最大超時次數(shù),fail_timeout為中斷時間 server 172.16.2.57:8080 weight=3 max_fails=1 fail_timeout=60s; server 172.16.2.57:8081 weight=3 max_fails=1 fail_timeout=60s; #server 192.168.10.121:3333 backup; #熱備 } server { #keepalive_requests 120; #單連接請求上限次數(shù) ##監(jiān)聽的端口號 listen 80; ### 監(jiān)聽地址 服務名稱 server_name www.lzh.com; #### 匹配URL路徑地址 /表示匹配所有路徑地址 默認不區(qū)分大小寫 location / { #故障轉移的條件:如果后端的服務器返回502、504、執(zhí)行超時等錯誤,自動將請求轉發(fā)到upstream負載均衡池中的另一臺服務器,實現(xiàn)故障轉移。 proxy_next_upstream http_502 http_504 error timeout invalid_header; ### 指定上游服務器負載均衡服務器,這個名稱和upstrean后的名稱一致 proxy_pass http://backServer; ###nginx與上游服務器(真實訪問的服務器)超時時間 后端服務器連接的超時時間_發(fā)起握手等候響應超時時間 proxy_connect_timeout 1s; ###nginx發(fā)送給上游服務器(真實訪問的服務器)超時時間 proxy_send_timeout 1s; ### nginx接受上游服務器(真實訪問的服務器)超時時間 proxy_read_timeout 1s; # 重試次數(shù) proxy_next_upstream_tries 3; index index.html index.htm; #deny 127.0.0.1; #拒絕的ip #allow 172.18.5.54; #允許的ip } } include /etc/nginx/mime.types; #文件擴展名與文件類型映射表 default_type application/octet-stream; #默認文件類型,默認為text/plain # SSL Settings ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; # Logging Settings #access_log off; #取消服務日志 access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; # Gzip Settings gzip on; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # 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; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;}#mail {# # See sample authentication script at:# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript# # # auth_http localhost/auth.php;# # pop3_capabilities "TOP" "USER";# # imap_capabilities "IMAP4rev1" "UIDPLUS";# # server {# listen localhost:110;# protocol pop3;# proxy on;# }# # server {# listen localhost:143;# protocol imap;# proxy on;# }#}

4.實際使用過的負載均衡配置

worker_processes 8;# error_log logs/error.log;error_log /dev/null;events { worker_connections 65535;}http { upstream api{ server 10.132.237.12:10523; server 10.132.237.12:10520; } log_format main '$time_iso8601|$remote_addr|' '$http_x_forwarded_for|$status|$request_time|$upstream_response_time|' '$request_length|$body_bytes_sent|$host|$request|$http_referer|$http_user_agent'; server { listen 10521; client_max_body_size 10M; # access_log logs/access.log main; proxy_read_timeout 5; proxy_send_timeout 5; access_log off; location / { proxy_pass http://api/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }}

5.排錯地址

/var/log/nginx/error.log

/var/log/nginx/access.log.

6.不重啟的情況下加載配置

測試是否寫對了:nginx -t

不重啟服務的情況下,加載新的內容:nginx -s reload

參考文獻

  1. Nginx配置參數(shù)中文說明詳解(負載均衡與反向代理)https://www.jb51.net/article/182585.htm

關鍵詞:清單,配置

74
73
25
news

版權所有? 億企邦 1997-2025 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉