日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx主配置文件nginx.conf中文详解

發(fā)布時間:2025/3/8 Nginx 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx主配置文件nginx.conf中文详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 nginx配置解釋圖解

2 Nginx核心配置文件nginx.conf史上最細(xì)中文詳解

2.1 定義Nginx運行的用戶和用戶組

2.2 nginxworker進(jìn)程數(shù),即處理請求的進(jìn)程(熟稱負(fù)責(zé)接客的服務(wù)員)

2.3 cpu親和力配置,讓不同的進(jìn)程使用不同的cpu

2.4 全局錯誤日志定義類型,[ debug|info|notice|warn|error|crit]

2.5 把進(jìn)程號記錄到文件

2.6 Nginx worker最大打開文件數(shù),可設(shè)置為系統(tǒng)優(yōu)化后的ulimit -HSn的結(jié)果

2.7 IO事件模型與worker進(jìn)程連接數(shù)設(shè)置

2.8 http模塊設(shè)置部分

2.9 設(shè)定基于域名的虛擬主機部分

2.10 反向代理負(fù)載均衡配置(代理blog.oldboyedu.com服務(wù))

2.11 設(shè)定查看Nginx狀態(tài)的地址

2.12 設(shè)定java程序動靜分離反向代理負(fù)載均衡配置




第1章 nginx配置解釋圖解


圖1-1 理解nginx http協(xié)議相關(guān)參數(shù)圖解



圖1-2 根據(jù)http原理及Fastcgi原理講解fastcgi參數(shù)優(yōu)化圖解




第2章 Nginx核心配置文件nginx.conf史上最細(xì)中文詳解

2.1 定義Nginx運行的用戶和用戶組

user nginx nginx; #改為特殊的用戶和組


2.2 nginxworker進(jìn)程數(shù),即處理請求的進(jìn)程(熟稱負(fù)責(zé)接客的服務(wù)員)

worker_processes 8; ?#初始可設(shè)置為CPU總核數(shù)

?

2.3 cpu親和力配置,讓不同的進(jìn)程使用不同的cpu

worker_cpu_affinity 0001 0010 0100 1000 0001 00100100 1000;


2.4 全局錯誤日志定義類型,[ debug|info|notice|warn|error|crit]

error_log logs/error.log error; ?#一定要設(shè)置warn級別以上


2.5 把進(jìn)程號記錄到文件

pid logs/nginx.pid; #用于管理nginx進(jìn)程


2.6 Nginxworker最大打開文件數(shù),可設(shè)置為系統(tǒng)優(yōu)化后的ulimit -HSn的結(jié)果

worker_rlimit_nofile 65535;


2.7 IO事件模型與worker進(jìn)程連接數(shù)設(shè)置

events

{

#epoll模型是Linux 2.6以上版本內(nèi)核中的高性能網(wǎng)絡(luò)I/O模型

use epoll;

#單個worker進(jìn)程最大連接數(shù)

worker_connections 10240; #nginx最大連接數(shù)=worker連接數(shù)*worker進(jìn)程數(shù)

}

2.8 http模塊設(shè)置部分

http

{

server_tokens off; ??#隱藏響應(yīng)header和錯誤通知中的版本號

include mime.types; ?#文件擴展名與文件類型映射表

default_type application/octet-stream;#默認(rèn)文件類型

server_names_hash_max_size 512; ????#服務(wù)域名的最大hash表大小

server_names_hash_bucket_size 128;#服務(wù)域名的hash表大小

#開啟高效文件傳輸模式,實現(xiàn)內(nèi)核零拷貝

sendfile on;

#激活tcp_nopush參數(shù)可以允許把httpresponse header和文件的開始放在一個文件里發(fā)布,積極的作用是減少網(wǎng)絡(luò)報文段的數(shù)量

tcp_nopush on;

#激活tcp_nodelay,內(nèi)核會等待將更多的字節(jié)組成一個數(shù)據(jù)包,從而提高I/O性能

tcp_nodelay on;

#連接超時時間,單位是秒

keepalive_timeout 120;

#目錄列表訪問參數(shù),合適http下載,默認(rèn)關(guān)閉。

autoindex off;

#讀取客戶端請求頭的超時時間(參看老男孩的書籍理解http協(xié)議原理)

client_header_timeout 15s;

#讀取客戶端請求主體的超時時間(參看老男孩的書籍理解http協(xié)議原理)

client_body_timeout 60s;

#設(shè)定讀取客戶端請求主體的最大大小。(參看老男孩的書籍理解http協(xié)議原理)

client_max_body_size 8m;

#設(shè)置服務(wù)器端傳送http響應(yīng)信息到客戶端的超時時間

send_timeout 60s;

#設(shè)定訪問日志的日志記錄格式,每列細(xì)節(jié)參考《跟老男孩學(xué)linux運維》:Web集群實戰(zhàn)

log_format?main? '$remote_addr - $remote_user$time_local] "$request" '?'$status $body_bytes_sent "$http_referer" '? '"$http_user_agent"$http_x_forwarded_for"';

#FastCGI參數(shù)是和動態(tài)服務(wù)器交互起作用的參數(shù)

#設(shè)定Nginx服務(wù)器和后端FastCGI服務(wù)器連接的超時時間

fastcgi_connect_timeout 60;

#設(shè)定Nginx允許FastCGI服務(wù)端返回數(shù)據(jù)的超時時間

fastcgi_send_timeout 60;

#設(shè)定Nginx從FastCGI服務(wù)端讀取響應(yīng)信息的超時時間

fastcgi_read_timeout 60;

#設(shè)定用來讀取從FastCGI服務(wù)端收到的第一部分響應(yīng)信息的緩沖區(qū)大小

fastcgi_buffer_size 64k;

#設(shè)定用來讀取從FastCGI服務(wù)端收到的響應(yīng)信息的緩沖區(qū)大小以及緩沖區(qū)數(shù)量

fastcgi_buffers 4 64k;

#設(shè)定系統(tǒng)很忙時可以使用的fastcgi_buffers大小,推薦大小為fastcgi_buffers *2。

fastcgi_busy_buffers_size 128k;

#fastcti臨時文件的大小,可設(shè)置128-256K

fastcgi_temp_file_write_size 128k;

#gzip壓縮模塊部分(此部分對于網(wǎng)站優(yōu)化極其重要)

#開啟gzip壓縮功能。

gzip on;

#設(shè)置允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從header頭的Content-Length中獲取。默認(rèn)值是0,表示不管頁面多大都進(jìn)行壓縮。建議設(shè)置成大于1K。如果小于1K可能會越壓越大。

gzip_min_length?1k;

#壓縮緩沖區(qū)大小。表示申請4個單位為16K的內(nèi)存作為壓縮結(jié)果流緩存,默認(rèn)值是申請與原始數(shù)據(jù)大小相同的內(nèi)存空間來存儲gzip壓縮結(jié)果。

gzip_buffers????4 16k;

#壓縮版本(默認(rèn)1.1,前端為squid2.5時使用1.0)用于設(shè)置識別HTTP協(xié)議版本,默認(rèn)是1.1,目前大部分瀏覽器已經(jīng)支持GZIP解壓,使用默認(rèn)即可。

gzip_http_version 1.1;

#壓縮比率。用來指定GZIP壓縮比,1壓縮比最小,處理速度最快;9壓縮比最大,傳輸速度快,但處理最慢,也比較消耗cpu資源。

gzip_comp_level 2;

#用來指定壓縮的類型,“text/html”類型總是會被壓縮,這個就是HTTP原理部分講的媒體類型。

gzip_typestext/plain application/x-javascript text/css application/xml;

#vary header支持。該選項可以讓前端的緩存服務(wù)器緩存經(jīng)過GZIP壓縮的頁面,例如用Squid緩存經(jīng)過Nginx壓縮的數(shù)據(jù)。

gzip_vary on;

#反向代理負(fù)載均衡設(shè)定部分(可選)

#upstream表示負(fù)載服務(wù)器池,定義名字為blog.oldboyedu.com的服務(wù)器池

upstream blog.oldboyedu.com {

#server是服務(wù)器節(jié)點起始標(biāo)簽,其后是節(jié)點地址,可為域名或IP,weight是權(quán)重,可以根據(jù)機器配置定義權(quán)重。weigth參數(shù)表示權(quán)值,權(quán)值越高被分配到的幾率越大。

ip_hash; #調(diào)度算法,默認(rèn)是rr輪詢。

server 172.16.1.7:80 weight=1;

server 172.16.1.8:80 weight=1;

server 172.16.1.9:80 weight=1 backup; #backup表示熱備

}


2.9 設(shè)定基于域名的虛擬主機部分

###oldboy www web php server

??? server {

???????listen?????? 80; #監(jiān)聽的端口,也可以是172.16.1.7:80形式

???????server_name? www.oldboyedu.comoldboyedu.com; #域名

???????root?? html/blog; #站點根目錄,即網(wǎng)站程序放的目錄

???????location / {? #默認(rèn)訪問的location標(biāo)簽段

???????????index? index.php index.htmlindex.htm; #首頁排序

??????? }

??? location ~.*.(php|php5)?$ { #符合php擴展名的請求調(diào)度到fcgi server

??? ? fastcgi_pass 127.0.0.1:9000; #拋給本機的9000端口(php fastcgi server)

??? ? fastcgi_index index.php; #設(shè)定動態(tài)首頁

??? ? include fastcgi.conf; #設(shè)定和fastcgi交互的相關(guān)參數(shù)包含文件

??? }

#將符合靜態(tài)文件的圖片視頻流媒體等設(shè)定expries緩存參數(shù),要求瀏覽器緩存。

??? location~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {

???????expires????? 10y; #客戶端緩存上述靜態(tài)數(shù)據(jù)10年

}

#將符合js,css文件的等設(shè)定expries緩存參數(shù),要求瀏覽器緩存。

??? location~ .*\.(js|css)?$ {

???????expires????? 30d; #客戶端緩存上述js,css數(shù)據(jù)30天

??? }

???????access_log?/app/logs/www_access.log? main; #根據(jù)日志格式記錄用戶訪問的日志

??? }

?

2.10 反向代理負(fù)載均衡配置(代理blog.oldboyedu.com服務(wù))

server {

?????? listen?????? 80; #監(jiān)聽的端口,也可以是172.16.1.7:80形式

?????? server_name? blog.oldboyedu.com; #代理的服務(wù)域名

?????? location / {

?????? #將訪問blog.oldboyedu.com的所有請求都發(fā)送到upstream定義的服務(wù)器節(jié)點池。

??????? proxy_passhttp://blog.oldboyedu.com;

??????? #在代理向后端服務(wù)器發(fā)送的http請求頭中加入host字段信息,用于當(dāng)后端服務(wù)器配置有多個虛擬主機時,可以識別代理的是哪個虛擬主機。這是節(jié)點服務(wù)器多虛擬主機時的關(guān)鍵配置。

??????? proxy_set_headerHost? $host;

??????? #在代理向后端服務(wù)器發(fā)送的http請求頭中加入X-Forwarded-For字段信息,用于后端服務(wù)器程序、日志等接收記錄真實用戶的IP,而不是代理服務(wù)器的IP。

???? ???proxy_set_header X-Forwarded-For$remote_addr;

#設(shè)定反向代理與后端節(jié)點服務(wù)器連接的超時時間,即發(fā)起握手等候響應(yīng)的超時時間。

??????? proxy_connect_timeout60;

#設(shè)定代理后端服務(wù)器的數(shù)據(jù)回傳時間

??????? proxy_send_timeout 60;

#設(shè)定Nginx從代理的后端服務(wù)器獲取信息的時間

??????? proxy_read_timeout 60;

#設(shè)定緩沖區(qū)的大小

??????? proxy_buffer_size 4k;

#設(shè)定緩沖區(qū)的數(shù)量和大小。nginx從代理的后端服務(wù)器獲取的響應(yīng)信息,會放置到緩沖區(qū)。

??????? proxy_buffers 4 32k;

#設(shè)定系統(tǒng)很忙時可以使用的proxy_buffers大小

???????proxy_busy_buffers_size 64k;

#設(shè)定proxy緩存臨時文件的大小

???????proxy_temp_file_write_size 64k;

#對于以上參數(shù)的詳細(xì)理解可見本文開頭圖解。

?????? }

access_log off; #反向代理如果并發(fā)大,務(wù)必要關(guān)閉日志,否則IO吃緊。

?

??? }


2.11 設(shè)定查看Nginx狀態(tài)的地址

location /status {

stub_status on; #開啟狀態(tài)功能

access_log off; #關(guān)閉記錄日志

auth_basic “Oldboy Server Status”; #設(shè)置基本認(rèn)證提示

auth_basic_user_file conf/htpasswd; #校驗密碼文件

}


2.12 設(shè)定java程序動靜分離反向代理負(fù)載均衡配置

#Oldboy Bbs server

?server {

???? listen?????? 80; #監(jiān)聽的端口,也可以是172.16.1.7:80形式

???? server_name? bbs.oldboyedu.com; #代理的域名

???? root??html/bbs; #程序目錄

???? index?index.php index.html index.htm;

#所有靜態(tài)文件由nginx服務(wù)處理

location ~.*.(htm|html|gif|jpg|jpeg|png|swf|flv)$ {

?expires 3650d;

}

location ~ .*.(js|css)?$ {

?expires 30d;

}

#所有java相關(guān)擴展名均交由tomcat或resin服務(wù)處理。

location ~ .(jsp|jspx|do)?$ {

#將訪問blog.oldboyedu.com的所有請求都發(fā)送到upstream定義的服務(wù)器節(jié)點池。

proxy_pass http://127.0.0.1:8080;

#在代理向后端服務(wù)器發(fā)送的http請求頭中加入host字段信息,用于當(dāng)后端服務(wù)器配置有多個虛擬主機時,可以識別代理的是哪個虛擬主機。這是節(jié)點服務(wù)器多虛擬主機時的關(guān)鍵配置。

??????? proxy_set_header Host? $host;

?#在代理向后端服務(wù)器發(fā)送的http請求頭中加入X-Forwarded-For字段信息,用于后端服務(wù)器程序、日志等接收記錄真實用戶的IP,而不是代理服務(wù)器的IP。

???? ???proxy_set_headerX-Forwarded-For $remote_addr;

}

??????? access_log?/app/logs/bbs_access.log? main; #記錄日志

??? }

}


轉(zhuǎn)載于:https://blog.51cto.com/wenzengliu/1828713

總結(jié)

以上是生活随笔為你收集整理的Nginx主配置文件nginx.conf中文详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。