nginx 配置文件的介紹

一.nginx主配置文件目錄:

nginx配置文件目錄(排除默認文件)

1.win-utf, koi-utf,koi-win

這三個文件都是與編碼轉(zhuǎn)換映射文件喷市,用于在輸出內(nèi)容到客戶端時相种,將一種編碼轉(zhuǎn)換到另一種編碼。

koi-win:?charset_map??koi8-r < -- > windows-1251

koi-utf:?charset_map??koi8-r < -- > utf-8

win-utf:?charset_map??windows-1251 < -- > utf-8

koi8-r是斯拉夫文字8位元編碼品姓,供俄語及保加利亞語使用寝并。在Unicode未流行之前,KOI8-R?是最為廣泛使用的俄語編碼腹备,使用率甚至起ISO/IEC 8859-5還高衬潦。這3個文件存在是因為作者是俄國人的原因。

2.mine.type?

?文件擴展名與文件類型映射表馏谨,nginx根據(jù)映射關(guān)系别渔,設(shè)置http請求響應(yīng)頭的Content-Type值。當(dāng)文件類型映射表中查找不到的時候使用nginx.conf中http模塊中配置了default-type指定的默認值惧互。

 例如哎媚,默認配置中的指定的default-type為application/octet-stream。

? ? include???????mime.types;

????default_type??application/octet-stream;

mine.type部分內(nèi)容

3.fastcgi.conf(新)是nginx 0.8.30 (released: 15th of December 2009)才引入的

nginx配置Fastcgi解析時會調(diào)用fastcgi_params配置文件來傳遞服務(wù)器變量喊儡,這樣CGI中可以獲取到這些變量的值拨与。默認傳遞以下變量:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #腳本文件請求的路徑

fastcgi_param??QUERY_STRING???????$query_string;? ? ? ? ? ? ?#請求的參數(shù);如?app=123

fastcgi_param??REQUEST_METHOD?????$request_method;? ?#請求的動作(GET,POST)

fastcgi_param??CONTENT_TYPE???????$content_type;? ? ? ?#請求頭中的Content-Type字段

fastcgi_param??CONTENT_LENGTH?????$content_length;? ? #請求頭中的Content-length字段。

fastcgi_param??SCRIPT_NAME????????$fastcgi_script_name;? ? #腳本名稱

fastcgi_param??REQUEST_URI????????$request_uri;? ? ? ? ? ?#請求的地址不帶參數(shù)

fastcgi_param??DOCUMENT_URI???????$document_uri;? ? ?#與$uri相同艾猜。

fastcgi_param??DOCUMENT_ROOT??????$document_root;? ?#網(wǎng)站的根目錄买喧。在server配置中root指令中指定的值

fastcgi_param??SERVER_PROTOCOL????$server_protocol;? ?#請求使用的協(xié)議,通常是HTTP/1.0或HTTP/1.1匆赃。

fastcgi_param??GATEWAY_INTERFACE??CGI/1.1;? ? ? ? ? ? ?#cgi?版本

fastcgi_param??SERVER_SOFTWARE????nginx/$nginx_version;? ?#nginx?版本號淤毛,可修改、隱藏

fastcgi_param??REMOTE_ADDR????????$remote_addr;?#客戶端IP

fastcgi_param??REMOTE_PORT????????$remote_port;?#客戶端端口

fastcgi_param??SERVER_ADDR????????$server_addr;?#服務(wù)器IP地址

fastcgi_param??SERVER_PORT????????$server_port;?#服務(wù)器端口

fastcgi_param??SERVER_NAME????????$server_name;?#服務(wù)器名算柳,域名在server配置中指定的server_name

#fastcgi_param??PATH_INFO?????????$path_info;#可自定義變量

#?PHP?only,?required?if?PHP?was?built?with?–enable-force-cgi-redirect? ? ?#php編譯時候需要添加參數(shù)--enable-force-cgi-redirect

fastcgi_param??REDIRECT_STATUS????200;  〉偷#返回碼

自定義的變量例如:

#?用一個文件或狀態(tài)碼(404)作為最后一個參數(shù),如果是最后一個參數(shù)是文件,那么這個文件必須存在

try_files? $fastcgi_script_name?=?404;

#可以自定義值,比如區(qū)分開發(fā)(dev)和生成環(huán)境(product)瞬项,在php中用getenv('MY_ENV')或$_SERVER['MY_ENV']獲取

fastcgi_param?MY_ENV?"product";

#防跨站設(shè)置

fastcgi_param?PHP_ADMIN_VALUE?"open_basedir=$document_root/:/data/tmp/php/upload/:/proc/";

4.fastcgi_param

與fastcgi.conf的作用是一樣的蔗蹋,只不過fastcgi_param已經(jīng)被棄用了

兩者的區(qū)別就是(fastcgi.conf 比fastcgi_param多一行):

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #腳本文件請求的路徑

a.原本Nginx只有fastcgi_params,后來發(fā)現(xiàn)很多人在定義SCRIPT_FILENAME時使用了硬編碼的方式囱淋。例如猪杭,fastcgi_param SCRIPT_FILENAME?/var/www/foo$fastcgi_script_name。于是為了規(guī)范用法便引入了fastcgi.conf妥衣。

b.不過這樣的話就產(chǎn)生一個疑問:為什么一定要引入一個新的配置文件皂吮,而不是修改舊的配置文件戒傻?這是因為fastcgi_param指令是數(shù)組型的,和普通指令相同的是:內(nèi)層替換外層涮较;和普通指令不同的是:當(dāng)在同級多次使用的時候稠鼻,是新增而不是替換冈止。換句話說狂票,如果在同級定義兩次SCRIPT_FILENAME,那么它們都會被發(fā)送到后端熙暴,這可能會導(dǎo)致一些潛在的問題闺属,為了避免此類情況,便引入了一個新的配置文件周霉。

c.因此不再建議大家使用以下方式:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

而使用最新的方式:

include fastcgi.conf;

5.uwsgi_param

與fastcgi_params一樣掂器,傳遞哪些服務(wù)器變量,只有前綴不一樣俱箱,以uwsgi_param開始而非fastcgi_param国瓮。

6.uwsgi_param

與fastcgi_params一樣,傳遞哪些服務(wù)器變量狞谱,只有前綴不一樣乃摹,以uwsgi_param開始而非fastcgi_param

7.nginx.conf? ? nginx的主配置文件,其余配置文件跟衅,一般只需要使用默認提供即可

配置文件主要由四部分組成:main(全區(qū)設(shè)置)孵睬,event事件,http常量配置伶跷,server(主機配置)掰读。#代表默認參數(shù)

?1)main全局設(shè)置

Nginx的worker進程運行用戶以及用戶組

#user nobody nobody;

#Nginx開啟的進程數(shù)

worker_processes?1;

#worker_processes auto;

#以下參數(shù)指定了哪個cpu分配給哪個進程,一般來說不用特殊指定叭莫。如果一定要設(shè)的話蹈集,用0和1指定分配方式.

#這樣設(shè)就是給1-4個進程分配單獨的核來運行,出現(xiàn)第5個進程是就是隨機分配了雇初。

eg:

#worker_processes 4 #4核CPU

#worker_cpu_affinity 0001 0010 0100 1000

#定義全局錯誤日志定義類型拢肆,日志級別([debug|info|notice|warn|crit])

#error_log logs/error.log info;

錯誤日志 日志存放位置  日志級別

#指定進程ID存儲文件位置

#pid logs/nginx.pid;

#一個nginx進程打開的最多文件描述符數(shù)目,理論值應(yīng)該是最多打開文件數(shù)(ulimit -n)與nginx進程數(shù)相除抵皱,但是nginx分配請求并不是那么均勻善榛,所以最好與ulimit -n的值保持一致(文件描述符默認大小是1024)

#vim /etc/security/limits.conf(如修改它需要重新啟動)

# * soft nproc 65535

# * hard nproc 65535

# * soft nofile 65535

# * hard nofile 65535

worker_rlimit_nofile 65535;

2)event事件配置

events?{

#use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];

epoll模型是Linux 2.6以上版本內(nèi)核中的高性能網(wǎng)絡(luò)I/O模型呻畸,如果跑在FreeBSD上面移盆,就用kqueue模型。

use epoll;

#每個進程可以處理的最大連接數(shù)伤为,理論上每臺nginx服務(wù)器的最大連接數(shù)為worker_processes*worker_connections咒循。

理論值:worker_rlimit_nofile/worker_processes

#注意:最大客戶數(shù)也由系統(tǒng)的可用socket連接數(shù)限制(~ 64K)据途,所以設(shè)置不切實際的高沒什么好處

worker_connections?65535;? (默認設(shè)置為1024)

#worker工作方式:串行(一定程度降低負載,但服務(wù)器吞吐量大時叙甸,關(guān)閉使用并行方式)

#multi_accept on;

}

3)http時間配置

#文件擴展名與文件類型映射表

include mime.types;

#當(dāng)文件類型映射表中查找不到的時候使用默認文件類型

default_type application/octet-stream;

#日志相關(guān)定義

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '

# '$status $body_bytes_sent "$http_referer" '

# '"$http_user_agent" "$http_x_forwarded_for"';

#定義日志的格式颖医,定義要輸出的內(nèi)容及介紹。

#a.$remote_addr 與$http_x_forwarded_for 用以記錄客戶端的ip地址裆蒸;

#b.$remote_user :用來記錄客戶端用戶名稱熔萧;

#c.$time_local :用來記錄訪問時間與時區(qū);

#d.$request :用來記錄請求的url與http協(xié)議僚祷;

#e.$status :用來記錄請求狀態(tài)佛致;

#f.$body_bytes_sent :記錄發(fā)送給客戶端文件主體內(nèi)容大小辙谜;

#g.$http_referer :用來記錄從那個頁面鏈接訪問過來的俺榆;

#h.$http_user_agent :記錄客戶端瀏覽器的相關(guān)信息

#連接訪問日志的路徑,指定的日志級別放在最后装哆。

#access_log logs/access.log main;

#只記錄更為嚴(yán)重的錯誤日志罐脊,減少IO壓力

error_log logs/error.log crit;

#關(guān)閉日志

#access_log off;

#默認編碼

#charset utf-8;

#服務(wù)器名字的hash表大小

server_names_hash_bucket_size?128;

#客戶端請求單個文件的最大字節(jié)數(shù)

client_max_body_size?8m;

#指定來自客戶端請求頭的headerbuffer大小

client_header_buffer_size?32k;

#指定客戶端請求中較大的消息頭的緩存最大數(shù)量和大小

large_client_header_buffers?4?64k;

#開啟高效傳輸模式蜕琴。

sendfile on;

#防止網(wǎng)絡(luò)阻塞

tcp_nopush on;

tcp_nodelay on;?

#客戶端連接超時時間萍桌,單位是秒

keepalive_timeout?60;

#客戶端請求頭讀取超時時間,單位是秒

? ?client_header_timeout 10;

#設(shè)置客戶端請求主體讀取超時時間奸绷,單位是秒

? ?client_body_timeout 10;

#響應(yīng)客戶端超時時間梗夸,單位是秒

? send_timeout 10;

#FastCGI相關(guān)參數(shù)是為了改善網(wǎng)站的性能:減少資源占用,提高訪問速度号醉。

fastcgi_connect_timeout?300;

fastcgi_send_timeout?300;

fastcgi_read_timeout?300;

fastcgi_buffer_size?64k;

fastcgi_buffers?4?64k;

fastcgi_busy_buffers_size?128k;

fastcgi_temp_file_write_size?128k;

#gzip模塊設(shè)置反症,開啟gzip壓縮輸出

gzip on;

#最小壓縮文件大小

gzip_min_length?1k;

#壓縮緩沖區(qū)個數(shù)和大小

gzip_buffers?4?16k;

#壓縮版本(默認1.1,前端如果是squid2.5請使用1.0)

gzip_http_version?1.0;

#壓縮等級 1-9 等級越高畔派,壓縮效果越好铅碍,節(jié)約寬帶,但CPU消耗大

gzip_comp_level?2;

#壓縮類型线椰,默認就已經(jīng)包含text/html胞谈,所以下面就不用再寫了,寫上去也不會有問題憨愉,但是會有一個warn烦绳。

#gzip_types text/plain application/x-javascript text/css application/xml;

#前端緩存服務(wù)器緩存經(jīng)過壓縮的頁面

?gzip_vary on;

4)server虛擬主機基本設(shè)置:

#虛擬主機定義

server?{

? ? ? ?listen?80;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #監(jiān)聽端口

? ? ? ?server_name localhost;? ? ? ? ? ? #訪問域名

? ? ? ??#charset koi8-r;#編碼格式,若網(wǎng)頁格式與此不同配紫,將被自動轉(zhuǎn)碼

? ? ? ?#虛擬主機訪問日志定義及日志級別

? ? ? #access_log logs/host.access.log main;

? ? ? ?#對URL進行匹配

? ? ? ? location?/?{?

   ? ? ? ? ? ?root html;   #訪問路徑径密,可相對也可絕對路徑

   ? ? ? ? ? ? index index.html index.htm index.php;?#首頁文件。以下按順序匹配

? ? ? ? ? }

   #error_page 404 /404.html;? ? ? ? ??#錯誤信息返回頁面

   # redirect server error pages to the static page /50x.html? #服務(wù)器錯誤返回頁面

   error_page?500?502?503?504?/50x.html;

   location?=?/50x.html?{

      root html;

    }

#訪問URL以.php結(jié)尾則自動轉(zhuǎn)交給127.0.0.1

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

#location ~ \.php$ {

# proxy_pass http://127.0.0.1;

#}

#php腳本請求全部轉(zhuǎn)發(fā)給FastCGI處理

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#location ~ \.php$ {

# root html;

# fastcgi_pass 127.0.0.1:9000;

# fastcgi_index index.php;

# include fastcgi.conf;

#}

#禁止訪問.ht頁面 (需ngx_http_access_module模塊)

# deny access to .htaccess files, if Apache's document root

# concurs with nginx's one

#location ~ /\.ht {

# deny all;

#}

}

#ip加端口和域名加端口虛擬機配置

another virtual host using mix of IP-, name-, and port-based configuration

? ? #server {

? ? #? ? listen? ? ? 8000;

? ? #? ? listen? ? ? somename:8080;

? ? #? ? server_name? somename? alias? another.alias;

? ? #? ? location / {

? ? #? ? ? ? root? html;

? ? #? ? ? ? index? index.html index.htm;

? ? #? ? }

? ? #}

#HTTPS虛擬主機定義

# HTTPS server

#server {

# listen 443 ssl;

# server_name localhost;

# ssl_certificate cert.pem;

# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;

# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;

# ssl_prefer_server_ciphers on;

# location / {

# root html;

# index index.html index.htm;

# }

#}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市基跑,隨后出現(xiàn)的幾起案子欧啤,更是在濱河造成了極大的恐慌棺弊,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疹瘦,死亡現(xiàn)場離奇詭異财骨,居然都是意外死亡漓滔,警方通過查閱死者的電腦和手機氛魁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門暮顺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人呆盖,你說我怎么就攤上這事拖云。” “怎么了应又?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長乏苦。 經(jīng)常有香客問我株扛,道長,這世上最難降的妖魔是什么汇荐? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任洞就,我火速辦了婚禮,結(jié)果婚禮上掀淘,老公的妹妹穿的比我還像新娘旬蟋。我一直安慰自己,他們只是感情好革娄,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布倾贰。 她就那樣靜靜地躺著,像睡著了一般拦惋。 火紅的嫁衣襯著肌膚如雪匆浙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天厕妖,我揣著相機與錄音首尼,去河邊找鬼。 笑死言秸,一個胖子當(dāng)著我的面吹牛软能,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播举畸,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼查排,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了俱恶?” 一聲冷哼從身側(cè)響起雹嗦,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤范舀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后了罪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锭环,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年泊藕,在試婚紗的時候發(fā)現(xiàn)自己被綠了辅辩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡娃圆,死狀恐怖玫锋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情讼呢,我是刑警寧澤撩鹿,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站悦屏,受9級特大地震影響节沦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜础爬,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一甫贯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧看蚜,春花似錦叫搁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至碱茁,卻和暖如春裸卫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背纽竣。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工墓贿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蜓氨。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓聋袋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親穴吹。 傳聞我的和親對象是個殘疾皇子幽勒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容