摘要:配置信息主要分為六大部分全局設(shè)置事件設(shè)置服務(wù)器設(shè)置虛擬主機(jī)設(shè)置匹配設(shè)置反向代理設(shè)置。最大客戶端連接數(shù)由和決定作為服務(wù)器時,作為反向代理時,。參考文章服務(wù)器安裝及配置文件詳解的配置虛擬主機(jī)負(fù)載均衡和反向代理
這是 Nginx 學(xué)習(xí)總結(jié)的第二篇,上一篇介紹到了 Nginx 學(xué)習(xí)總結(jié)(1) —— 概述,這一篇會對 Nginx 的基本配置做一些總結(jié)。
Nginx 配置信息主要分為六大部分: main(全局設(shè)置)、events(事件設(shè)置)、http(HTTP服務(wù)器設(shè)置)、 sever(虛擬主機(jī)設(shè)置)、location(URL匹配設(shè)置)、upstream(反向代理設(shè)置)。
main 模塊user nobody nobody; worker_processes auto; error_log /usr/local/var/log/nginx/error.log error; pid /usr/local/var/run/nginx/nginx.pid; worker_rlimit_nofile 1024;
user 指定 Worker 進(jìn)程的運(yùn)行用戶以及用戶組,默認(rèn)由 nobody 運(yùn)行;
worker_processes 設(shè)置 Nginx 要開啟的 Worker 進(jìn)程數(shù)。最優(yōu)值取決于許多因素,包括(但不限于)CPU 內(nèi)核的數(shù)量、存儲數(shù)據(jù)的硬盤數(shù)量及負(fù)載模式。不能確定的時候,將其設(shè)置為可用的 CPU 內(nèi)核數(shù)將是一個好的開始(設(shè)置為auto將嘗試自動檢測它);
error_log 指定全局錯誤日志的輸出文件位置和錯誤級別。日志級別有 debug、info、notice、warn、error、crit、alert、emerg 可供選擇,錯誤級別依次遞增。設(shè)置某個日志級別將記錄指定的以及錯誤級別更高的所有消息(即 debug 輸出日志最為最詳細(xì),而 emerg 輸出日志最少)。默認(rèn)開啟為 error。想要開啟 debug 錯誤級別,需要在編譯 Nginx 時指定 --with-debug 參數(shù);
pid 指定記錄 PID 進(jìn)程的存儲文件位置( Nginx 向 Worker 進(jìn)程發(fā)送信號時,需要知道是在向哪個進(jìn)程發(fā)送信息,而不同的進(jìn)程有不同的 PID),用戶僅需創(chuàng)建該空白文件即可;
worker_rlimit_nofile 設(shè)置每個 Worker 進(jìn)程可以打開的最大文件數(shù)目(如果不設(shè)置該選項(xiàng),則該選項(xiàng)的值為操作系統(tǒng)的限制值,使用“ulimit -a”命令可查看)。
events 模塊events { use epoll; worker_connections 1024; }
use 設(shè)置事件處理模型。Nginx 支持的事件處理模型有: select、poll、kqueue、epoll、rtsig 和 /dev/poll,其中 kqueue(BSD 特有) 和 epoll(Linux 特有) 都是高效的事件處理模型。如果不設(shè)置,Nginx 將會自動選擇一個最適合當(dāng)前操作系統(tǒng)的事件處理模型;
worker_connections 設(shè)置每個 Worker 進(jìn)程能并發(fā)處理的最大連接數(shù)。最大客戶端連接數(shù)由 worker_processes 和 worker_connections 決定:Nginx 作為 HTTP 服務(wù)器時,Max_clients = worker_processes * worker_connections;Nginx 作為反向代理時,Max_clients = worker_processes * worker_connections / 4。
http 模塊http { include mime.types; default_type application/octet-stream; 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/var/log/nginx/access.log main; #access_log off sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; # gzip壓縮功能設(shè)置 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 6; client_max_body_size 10M; client_body_buffer_size 128k; # http_proxy 設(shè)置 proxy_connect_timeout 75; proxy_send_timeout 75; proxy_read_timeout 75; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_temp_path /usr/local/nginx/proxy_temp 1 2; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; }
include 加載 mime.type 文件,用于幫助 Nginx 識別文件的 MIME 類型;
default_type 指定文件默認(rèn)的 MIME 類型。例如,在沒有配置 asp 的環(huán)境時,Nginx 是不予解析的,此時,瀏覽器訪問 asp 文件就會出現(xiàn)下載了;
log_format 設(shè)置日志的格式;
access_log 設(shè)置 access_log 日志文件地址;
sendfile 是否開啟高效文件傳輸模式。將 tcp_nopush 和 tcp_nodelay 兩個指令設(shè)置為 on 用于防止網(wǎng)絡(luò)阻塞;
keepalive_timeout 設(shè)置客戶端連接保持活動的超時時間,在超過這個時間之后,服務(wù)器會關(guān)閉該連接;
gzip 是否開啟 gzip 壓縮,這將會減少我們發(fā)送的數(shù)據(jù)量;
client_max_body_size 允許客戶端請求的最大單文件字節(jié)數(shù)。如果上傳較大文件,請?jiān)黾铀南拗浦担?/p>
client_body_buffer_size 允許客戶端請求的最大緩沖區(qū)字節(jié)數(shù);
proxy_connect_timeout 設(shè)置與后端服務(wù)器連接超時時間。
server 模塊server { listen 80; server_name localhost 192.168.12.10 jochen.com; root /usr/www; index index.php index.html index.htm; charset utf-8; error_page 404 /404.html; error_page 403 /403.html; error_page 500 502 503 504 /50x.html; access_log usr/local/var/log/host.access.log main; aerror_log usr/local/var/log/host.error.log error; }
listen 設(shè)置監(jiān)聽端口,默認(rèn) 80,小于 1024 的要以 root 用戶啟動。可以為 listen *:80、listen 127.0.0.1:80 等形式;
server_name 設(shè)置域名,多個域名之間用空格分開;
root 設(shè)置虛擬主機(jī)的默認(rèn)網(wǎng)站根目錄;
index 定義默認(rèn)訪問的文件名;
charset 設(shè)置網(wǎng)頁的默認(rèn)編碼格式;
error_page 設(shè)置錯誤頁面,相對于上面的 root 目錄。
location 模塊location / { root /usr/share/nginx/html; index index.php index.html index.htm; } location ~ .php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi.conf; } location /nginx-status { stub_status on; allow 192.168.10.100; allow 172.29.73.0/24; deny all; }
location 模塊用于針對某些特定的 URL 進(jìn)行配置,有關(guān) location 匹配規(guī)則詳情請見《Nginx 學(xué)習(xí)總結(jié)(3) —— location 模塊》。
upstram 模塊upstream jochen.com { ip_hash; server 192.168.12.1:80; server 192.168.12.2:80 down; server 192.168.12.3:8080 max_fails=3 fail_timeout=20s; server 192.168.12.4:8080; }
upstream 模塊用于負(fù)載均衡,有關(guān) upstream 模塊詳情請見《Nginx 學(xué)習(xí)總結(jié)(7) —— 負(fù)載均衡》。
參考文章:
nginx documentation
nginx 服務(wù)器安裝及配置文件詳解
nginx 的配置、虛擬主機(jī)、負(fù)載均衡和反向代理(1)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/39852.html
摘要:改為后,顯示出文件的大概大小,單位是或者或者默認(rèn)為,顯示的文件時間為時間。 這是 Nginx 學(xué)習(xí)總結(jié)的第三篇,上一篇介紹到了 Nginx 學(xué)習(xí)總結(jié)(2) —— 基本配置,這一篇會對Location 模塊 做一些總結(jié)。我們知道,Location 模塊 主要是用于針對某些特定的 URL 進(jìn)行配置,可以由前綴字符串定義,也可以由正則表達(dá)式定義。 Location 匹配規(guī)則 location...
摘要:時間年月日星期六說明本文部分內(nèi)容均來自慕課網(wǎng)。必填用于執(zhí)行命令,當(dāng)執(zhí)行完畢后,將產(chǎn)生一個新的文件層。可選指定此鏡像啟動時默認(rèn)執(zhí)行命令。可選用于指定需要暴露的網(wǎng)絡(luò)端口號。可選向鏡像中掛載一個卷組。 時間:2017年09月16日星期六說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com 教學(xué)源碼:無 學(xué)習(xí)源碼:無 第一章:課程簡介 1-1 課程介紹 Docke...
摘要:實(shí)現(xiàn)負(fù)載均衡負(fù)載均衡是反向代理技術(shù)的一種運(yùn)用。而實(shí)現(xiàn)負(fù)載均衡的核心在于如何將請求合理地分配給不同的后端服務(wù)器。 這是 Nginx 學(xué)習(xí)總結(jié)的第六篇,上一篇介紹到了 Nginx 學(xué)習(xí)總結(jié)(5) —— 反向代理,本文主要演示結(jié)合 proxy 和 upstream 模塊的使用來實(shí)現(xiàn) Nginx 的負(fù)載均衡。 Nginx 官網(wǎng)中對 upstream 模塊的介紹:ngx_http_upstrea...
摘要:模塊化體系的內(nèi)部結(jié)構(gòu)是由核心部分和一系列的功能模塊所組成。除此之外,應(yīng)用相關(guān)的功能都是在一系列的功能模塊中完成。將各功能模塊組織成一條鏈,當(dāng)有請求到達(dá)的時候,請求依次經(jīng)過這條鏈上的部分或者全部模塊進(jìn)行處理。 Nginx 是什么 Nginx 是一款輕量的(相比 Apache、Lighttpd 而言)、高性能的 HTTP 服務(wù)器,同時也可以用作反向代理、負(fù)載平衡器和 HTTP 緩存。Ngi...
摘要:代理請求當(dāng)代理請求時,它會將請求發(fā)送到指定的代理服務(wù)器,獲取響應(yīng)并將其發(fā)送回客戶端。是否啟用緩沖使用指令,默認(rèn)是開啟的。 這是 Nginx 學(xué)習(xí)總結(jié)的第五篇,上一篇介紹到了 Nginx 學(xué)習(xí)總結(jié)(4)—— Rewrite 模塊,這一篇會對 反向代理 相關(guān)知識做一些總結(jié)。 什么是代理?代理通常用于在多個服務(wù)器之間分配負(fù)載,無縫地顯示來自不同網(wǎng)站的內(nèi)容,或通過除 HTTP 以外的協(xié)議將請求...
閱讀 2052·2021-10-08 10:05
閱讀 1892·2021-09-22 15:31
閱讀 3014·2021-09-22 15:13
閱讀 3494·2021-09-09 09:34
閱讀 2102·2021-09-03 10:46
閱讀 3129·2019-08-30 15:56
閱讀 1710·2019-08-30 15:53
閱讀 2366·2019-08-30 15:44