摘要:配置信息主要分為六大部分全局設置事件設置服務器設置虛擬主機設置匹配設置反向代理設置。最大客戶端連接數由和決定作為服務器時,作為反向代理時,。參考文章服務器安裝及配置文件詳解的配置虛擬主機負載均衡和反向代理
這是 Nginx 學習總結的第二篇,上一篇介紹到了 Nginx 學習總結(1) —— 概述,這一篇會對 Nginx 的基本配置做一些總結。
Nginx 配置信息主要分為六大部分: main(全局設置)、events(事件設置)、http(HTTP服務器設置)、 sever(虛擬主機設置)、location(URL匹配設置)、upstream(反向代理設置)。
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 進程的運行用戶以及用戶組,默認由 nobody 運行;
worker_processes 設置 Nginx 要開啟的 Worker 進程數。最優值取決于許多因素,包括(但不限于)CPU 內核的數量、存儲數據的硬盤數量及負載模式。不能確定的時候,將其設置為可用的 CPU 內核數將是一個好的開始(設置為auto將嘗試自動檢測它);
error_log 指定全局錯誤日志的輸出文件位置和錯誤級別。日志級別有 debug、info、notice、warn、error、crit、alert、emerg 可供選擇,錯誤級別依次遞增。設置某個日志級別將記錄指定的以及錯誤級別更高的所有消息(即 debug 輸出日志最為最詳細,而 emerg 輸出日志最少)。默認開啟為 error。想要開啟 debug 錯誤級別,需要在編譯 Nginx 時指定 --with-debug 參數;
pid 指定記錄 PID 進程的存儲文件位置( Nginx 向 Worker 進程發送信號時,需要知道是在向哪個進程發送信息,而不同的進程有不同的 PID),用戶僅需創建該空白文件即可;
worker_rlimit_nofile 設置每個 Worker 進程可以打開的最大文件數目(如果不設置該選項,則該選項的值為操作系統的限制值,使用“ulimit -a”命令可查看)。
events 模塊events { use epoll; worker_connections 1024; }
use 設置事件處理模型。Nginx 支持的事件處理模型有: select、poll、kqueue、epoll、rtsig 和 /dev/poll,其中 kqueue(BSD 特有) 和 epoll(Linux 特有) 都是高效的事件處理模型。如果不設置,Nginx 將會自動選擇一個最適合當前操作系統的事件處理模型;
worker_connections 設置每個 Worker 進程能并發處理的最大連接數。最大客戶端連接數由 worker_processes 和 worker_connections 決定:Nginx 作為 HTTP 服務器時,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壓縮功能設置 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 設置 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 指定文件默認的 MIME 類型。例如,在沒有配置 asp 的環境時,Nginx 是不予解析的,此時,瀏覽器訪問 asp 文件就會出現下載了;
log_format 設置日志的格式;
access_log 設置 access_log 日志文件地址;
sendfile 是否開啟高效文件傳輸模式。將 tcp_nopush 和 tcp_nodelay 兩個指令設置為 on 用于防止網絡阻塞;
keepalive_timeout 設置客戶端連接保持活動的超時時間,在超過這個時間之后,服務器會關閉該連接;
gzip 是否開啟 gzip 壓縮,這將會減少我們發送的數據量;
client_max_body_size 允許客戶端請求的最大單文件字節數。如果上傳較大文件,請增加它的限制值;
client_body_buffer_size 允許客戶端請求的最大緩沖區字節數;
proxy_connect_timeout 設置與后端服務器連接超時時間。
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 設置監聽端口,默認 80,小于 1024 的要以 root 用戶啟動。可以為 listen *:80、listen 127.0.0.1:80 等形式;
server_name 設置域名,多個域名之間用空格分開;
root 設置虛擬主機的默認網站根目錄;
index 定義默認訪問的文件名;
charset 設置網頁的默認編碼格式;
error_page 設置錯誤頁面,相對于上面的 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 進行配置,有關 location 匹配規則詳情請見《Nginx 學習總結(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 模塊用于負載均衡,有關 upstream 模塊詳情請見《Nginx 學習總結(7) —— 負載均衡》。
參考文章:
nginx documentation
nginx 服務器安裝及配置文件詳解
nginx 的配置、虛擬主機、負載均衡和反向代理(1)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39852.html
摘要:改為后,顯示出文件的大概大小,單位是或者或者默認為,顯示的文件時間為時間。 這是 Nginx 學習總結的第三篇,上一篇介紹到了 Nginx 學習總結(2) —— 基本配置,這一篇會對Location 模塊 做一些總結。我們知道,Location 模塊 主要是用于針對某些特定的 URL 進行配置,可以由前綴字符串定義,也可以由正則表達式定義。 Location 匹配規則 location...
摘要:時間年月日星期六說明本文部分內容均來自慕課網。必填用于執行命令,當執行完畢后,將產生一個新的文件層。可選指定此鏡像啟動時默認執行命令。可選用于指定需要暴露的網絡端口號。可選向鏡像中掛載一個卷組。 時間:2017年09月16日星期六說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com 教學源碼:無 學習源碼:無 第一章:課程簡介 1-1 課程介紹 Docke...
摘要:實現負載均衡負載均衡是反向代理技術的一種運用。而實現負載均衡的核心在于如何將請求合理地分配給不同的后端服務器。 這是 Nginx 學習總結的第六篇,上一篇介紹到了 Nginx 學習總結(5) —— 反向代理,本文主要演示結合 proxy 和 upstream 模塊的使用來實現 Nginx 的負載均衡。 Nginx 官網中對 upstream 模塊的介紹:ngx_http_upstrea...
摘要:模塊化體系的內部結構是由核心部分和一系列的功能模塊所組成。除此之外,應用相關的功能都是在一系列的功能模塊中完成。將各功能模塊組織成一條鏈,當有請求到達的時候,請求依次經過這條鏈上的部分或者全部模塊進行處理。 Nginx 是什么 Nginx 是一款輕量的(相比 Apache、Lighttpd 而言)、高性能的 HTTP 服務器,同時也可以用作反向代理、負載平衡器和 HTTP 緩存。Ngi...
摘要:代理請求當代理請求時,它會將請求發送到指定的代理服務器,獲取響應并將其發送回客戶端。是否啟用緩沖使用指令,默認是開啟的。 這是 Nginx 學習總結的第五篇,上一篇介紹到了 Nginx 學習總結(4)—— Rewrite 模塊,這一篇會對 反向代理 相關知識做一些總結。 什么是代理?代理通常用于在多個服務器之間分配負載,無縫地顯示來自不同網站的內容,或通過除 HTTP 以外的協議將請求...
閱讀 2044·2021-10-08 10:05
閱讀 1886·2021-09-22 15:31
閱讀 3007·2021-09-22 15:13
閱讀 3485·2021-09-09 09:34
閱讀 2080·2021-09-03 10:46
閱讀 3119·2019-08-30 15:56
閱讀 1702·2019-08-30 15:53
閱讀 2355·2019-08-30 15:44