## Nginx * [1.请解éä¸ä¸ä»ä¹æ¯ Nginx ï¼](#1请解éä¸ä¸ä»ä¹æ¯-nginx-) * [2.为ä»ä¹è¦ç¨Nginxï¼](#2为ä»ä¹è¦ç¨nginx) * [3.Nginxæä¹å¤ç请æ±çï¼](#3nginxæä¹å¤ç请æ±ç) * [4.Nginxçä¼ç¼ºç¹ï¼](#4nginxçä¼ç¼ºç¹) * [5.Nginxåºç¨åºæ¯ï¼](#5nginxåºç¨åºæ¯) * [6.使ç¨âåå代çæå¡å¨âçä¼ç¹æ¯ä»ä¹?](#6使ç¨åå代çæå¡å¨çä¼ç¹æ¯ä»ä¹) * [7.å举Nginxæå¡å¨çæä½³ç¨éã](#7å举nginxæå¡å¨çæä½³ç¨é) * [8.请解éNginxå¦ä½å¤çHTTP请æ±ã](#8请解énginxå¦ä½å¤çhttp请æ±) * [9.å¨Nginxä¸ï¼å¦ä½ä½¿ç¨æªå®ä¹çæå¡å¨åç§°æ¥é»æ¢å¤ç请æ±?](#9å¨nginxä¸å¦ä½ä½¿ç¨æªå®ä¹çæå¡å¨åç§°æ¥é»æ¢å¤ç请æ±) * [10.å¨Nginxä¸å¦ä½å¨URLä¸ä¿çåæçº¿?](#10å¨nginxä¸å¦ä½å¨urlä¸ä¿çåæçº¿) * [11.ngx_http_upstream_moduleçä½ç¨æ¯ä»ä¹?](#11ngx_http_upstream_moduleçä½ç¨æ¯ä»ä¹) * [12. fastcgi ä¸ cgi çåºå«ï¼](#12-fastcgi-ä¸-cgi-çåºå«) * [13. Nginx 常ç¨å½ä»¤ï¼](#13-nginx-常ç¨å½ä»¤) * [14.Nginx 常ç¨é ç½®ï¼](#14nginx-常ç¨é ç½®) * [15.请éè¿°stub_statusåsub_filteræä»¤çä½ç¨æ¯ä»ä¹?](#15请éè¿°stub_statusåsub_filteræä»¤çä½ç¨æ¯ä»ä¹) * [åè龿¥](#åè龿¥) #### 1.请解éä¸ä¸ä»ä¹æ¯ Nginx ï¼ Nginx ï¼æ¯ä¸ä¸ª Web æå¡å¨ååå代çæå¡å¨ï¼ç¨äº HTTPãHTTPSãSMTPãPOP3 å IMAP åè®®ã ç®å使ç¨çæå¤ç Web æå¡å¨æè 代çæå¡å¨ï¼åæ·å®ãæ°æµªãç½æãè¿ é·çé½å¨ä½¿ç¨ã Nginx ç主è¦åè½å¦ä¸ï¼ ä½ä¸º http server (ä»£æ¿ Apache ï¼å¯¹ PHP éè¦ FastCGI å¤ç卿¯æ) FastCGIï¼Nginx æ¬èº«ä¸æ¯æ PHP çè¯è¨ï¼ä½æ¯å®å¯ä»¥éè¿ FastCGI æ¥å°è¯·æ±æç»æäºè¯è¨ææ¡æ¶å¤çã åå代çæå¡å¨ å®ç°è´è½½åè¡¡ èæä¸»æº #### 2.为ä»ä¹è¦ç¨Nginxï¼ è·¨å¹³å°ãé ç½®ç®åãæ¹å代çãé«å¹¶åè¿æ¥ï¼å¤ç2-3ä¸å¹¶åè¿æ¥æ°ï¼å®æ¹çæµè½æ¯æ5ä¸å¹¶åï¼å åæ¶èå°ï¼å¼å¯10个nginxæå 150Må å ï¼nginxå¤ç鿿件好ï¼èè´¹å åå°ï¼ èä¸Nginxå ç½®çå¥åº·æ£æ¥åè½ï¼å¦ææä¸ä¸ªæå¡å¨å®æºï¼ä¼åä¸ä¸ªå¥åº·æ£æ¥ï¼ååéç请æ±å°±ä¸ä¼åéå°å®æºçæå¡å¨äºãéæ°å°è¯·æ±æäº¤å°å ¶ä»çèç¹ä¸ã 使ç¨Nginxçè¯è¿è½ï¼ èçå®½å¸¦ï¼æ¯æGZIPå缩ï¼å¯ä»¥æ·»å æµè§å¨æ¬å°ç¼å ç¨³å®æ§é«ï¼å®æºçæ¦çéå¸¸å° æ¥æ¶ç¨æ·è¯·æ±æ¯å¼æ¥ç #### 3.Nginxæä¹å¤ç请æ±çï¼ - nginxæ¥æ¶ä¸ä¸ªè¯·æ±åï¼é¦å ç±listenåserver_nameæä»¤å¹é server模åï¼åå¹é server模åéçlocationï¼locationå°±æ¯å®é å°å ``` server { # 第ä¸ä¸ªServeråºåå¼å§ï¼è¡¨ç¤ºä¸ä¸ªç¬ç«çèæä¸»æºç«ç¹ listen 80ï¼ # æä¾æå¡ç端å£ï¼é»è®¤80 server_name localhostï¼ # æä¾æå¡çåå主æºå location / { # 第ä¸ä¸ªlocationåºåå¼å§ root htmlï¼ # ç«ç¹çæ ¹ç®å½ï¼ç¸å½äºNginxçå®è£ ç®å½ index index.html index.htmï¼ # é»è®¤çé¦é¡µæä»¶ï¼å¤ä¸ªç¨ç©ºæ ¼åå¼ } ``` #### 4.Nginxçä¼ç¼ºç¹ï¼ ä¼ç¹ï¼ å å åå°ï¼å¯å®ç°é«å¹¶åè¿æ¥ï¼å¤çååºå¿« å¯å®ç°httpæå¡å¨ãèæä¸»æºãæ¹å代çãè´è½½åè¡¡ Nginxé ç½®ç®å å¯ä»¥ä¸æ´é²æ£å¼çæå¡å¨IPå°å 缺ç¹ï¼ 卿å¤çå·®ï¼nginxå¤ç鿿件好,èè´¹å åå°ï¼ä½æ¯å¤ç卿页é¢åå¾é¸¡èï¼ç°å¨ä¸è¬å端ç¨nginxä½ä¸ºåå代çæä½ååï¼ #### 5.Nginxåºç¨åºæ¯ï¼ httpæå¡å¨ãNginxæ¯ä¸ä¸ªhttpæå¡å¯ä»¥ç¬ç«æä¾httpæå¡ãå¯ä»¥åç½é¡µéææå¡å¨ã èæä¸»æºãå¯ä»¥å®ç°å¨ä¸å°æå¡å¨èæåºå¤ä¸ªç½ç«ï¼ä¾å¦ä¸ªäººç½ç«ä½¿ç¨çèææºã åå代çï¼è´è½½åè¡¡ãå½ç½ç«ç访é®éè¾¾å°ä¸å®ç¨åº¦åï¼åå°æå¡å¨ä¸è½æ»¡è¶³ç¨æ·çè¯·æ±æ¶ï¼éè¦ç¨å¤å°æå¡å¨é群å¯ä»¥ä½¿ç¨nginxååå代çãå¹¶ä¸å¤å°æå¡å¨å¯ä»¥å¹³ååæ è´è½½ï¼ä¸ä¼åºä¸ºæå°æå¡å¨è´è½½é«å®æºèæå°æå¡å¨é²ç½®çæ åµã nginz ä¸ä¹å¯ä»¥é ç½®å®å ¨ç®¡çãæ¯å¦å¯ä»¥ä½¿ç¨Nginxæå»ºAPIæ¥å£ç½å ³,对æ¯ä¸ªæ¥å£æå¡è¿è¡æ¦æªã #### 6.使ç¨âåå代çæå¡å¨âçä¼ç¹æ¯ä»ä¹? åå代çæå¡å¨å¯ä»¥éèæºæå¡å¨çåå¨åç¹å¾ãå®å å½äºèç½äºåwebæå¡å¨ä¹é´çä¸é´å±ãè¿å¯¹äºå®å ¨æ¹é¢æ¥è¯´æ¯å¾å¥½çï¼ç¹å«æ¯å½æ¨ä½¿ç¨webæç®¡æå¡æ¶ã #### 7.å举Nginxæå¡å¨çæä½³ç¨éã Nginxæå¡å¨çæä½³ç¨æ³æ¯å¨ç½ç»ä¸é¨ç½²å¨æHTTPå 容ï¼ä½¿ç¨SCGIãWSGIåºç¨ç¨åºæå¡å¨ãç¨äºèæ¬çFastCGIå¤çç¨åºãå®è¿å¯ä»¥ä½ä¸ºè´è½½åè¡¡å¨ã #### 8.请解éNginxå¦ä½å¤çHTTP请æ±ã Nginx使ç¨ååºå¨æ¨¡å¼ã主äºä»¶å¾ªç¯çå¾ æä½ç³»ç»ååºåå¤äºä»¶çä¿¡å·ï¼è¿æ ·æ°æ®å°±å¯ä»¥ä»å¥æ¥å读åï¼å¨è¯¥å®ä¾ä¸è¯»åå°ç¼å²åºå¹¶è¿è¡å¤çãå个线ç¨å¯ä»¥æä¾æ°ä¸ä¸ªå¹¶åè¿æ¥ã #### 9.å¨Nginxä¸ï¼å¦ä½ä½¿ç¨æªå®ä¹çæå¡å¨åç§°æ¥é»æ¢å¤ç请æ±? åªéå°è¯·æ±å é¤çæå¡å¨å°±å¯ä»¥å®ä¹ä¸ºï¼ ``` Server { listen 80; server_name â â ; return 444; } ``` è¿éï¼æå¡å¨å被ä¿ç为ä¸ä¸ªç©ºå符串ï¼å®å°å¨æ²¡æâ主æºâ头忮µçæ åµä¸å¹é 请æ±ï¼èä¸ä¸ªç¹æ®ç`Nginx`çéæ å代ç `444`被è¿åï¼ä»èç»æ¢è¿æ¥ã #### 10.å¨Nginxä¸å¦ä½å¨URLä¸ä¿çåæçº¿? è¦å¨URLä¸ä¿çåæçº¿ï¼å°±å¿ 须使ç¨merge_slashes_offï¼è¯æ³:merge_slashes [on/off] ï¼ é»è®¤å¼: merge_slashes on ï¼ç¯å¢: httpï¼server #### 11.ngx_http_upstream_moduleçä½ç¨æ¯ä»ä¹? ngx_http_upstream_moduleç¨äºå®ä¹å¯éè¿fastcgiä¼ éãproxyä¼ éãuwsgiä¼ éãmemcachedä¼ éåscgiä¼ éæä»¤æ¥å¼ç¨çæå¡å¨ç»ã #### 12. fastcgi ä¸ cgi çåºå«ï¼ 1ï¼cgi web æå¡å¨ä¼æ ¹æ®è¯·æ±çå 容ï¼ç¶åä¼ fork ä¸ä¸ªæ°è¿ç¨æ¥è¿è¡å¤é¨ c ç¨åºï¼æ perl èæ¬â¦ï¼ï¼ è¿ä¸ªè¿ç¨ä¼æå¤çå®çæ°æ®è¿åç» web æå¡å¨ï¼æå web æå¡å¨æå 容åéç»ç¨æ·ï¼åæ fork çè¿ç¨ä¹éä¹éåºã 妿䏿¬¡ç¨æ·è¿è¯·æ±æ¹å¨æèæ¬ï¼é£ä¹ web æå¡å¨å忬¡ fork ä¸ä¸ªæ°è¿ç¨ï¼å¨èå¤å§çè¿è¡ã 2ï¼fastcgi web æå¡å¨æ¶å°ä¸ä¸ªè¯·æ±æ¶ï¼ä»ä¸ä¼éæ° fork ä¸ä¸ªè¿ç¨ï¼å 为è¿ä¸ªè¿ç¨å¨ web æå¡å¨å¯å¨æ¶å°±å¼å¯äºï¼èä¸ä¸ä¼éåºï¼ï¼web æå¡å¨ç´æ¥æå å®¹ä¼ éç»è¿ä¸ªè¿ç¨ï¼è¿ç¨é´éä¿¡ï¼ä½ fastcgi 使ç¨äºå«çæ¹å¼ï¼tcp æ¹å¼éä¿¡ï¼ï¼è¿ä¸ªè¿ç¨æ¶å°è¯·æ±åè¿è¡å¤çï¼æç»æè¿åç» web æå¡å¨ï¼æåèªå·±æ¥ççå¾ ä¸ä¸ä¸ªè¯·æ±çå°æ¥ï¼è䏿¯éåºã 综ä¸ï¼å·®å«å¨äºæ¯å¦éå¤ fork è¿ç¨ï¼å¤ç请æ±ã #### 13. Nginx 常ç¨å½ä»¤ï¼ å¯å¨ nginx ã 忢 nginx -s stop æ nginx -s quit ã éè½½é ç½® ./sbin/nginx -s reload(å¹³æ»éå¯) æ service nginx reload ã éè½½æå®é ç½®æä»¶ .nginx -c /usr/local/nginx/conf/nginx.conf ã æ¥ç nginx çæ¬ nginx -v ã æ£æ¥é ç½®æä»¶æ¯å¦æ£ç¡® nginx -t ã æ¾ç¤ºå¸®å©ä¿¡æ¯ nginx -h ã #### 14.Nginx 常ç¨é ç½®ï¼ ```nginx worker_processes 8; # å·¥ä½è¿ç¨ä¸ªæ° worker_connections 65535; # æ¯ä¸ªå·¥ä½è¿ç¨è½å¹¶åå¤çï¼åèµ·ï¼çæå¤§è¿æ¥æ°ï¼å 嫿æè¿æ¥æ°ï¼ error_log /data/logs/nginx/error.log; # é误æ¥å¿æå°å°å access_log /data/logs/nginx/access.log; # è¿å ¥æ¥å¿æå°å°å log_format main '$remote_addr"$request" ''$status $upstream_addr "$request_time"'; # è¿å ¥æ¥å¿æ ¼å¼ ## 妿æªä½¿ç¨ fastcgi åè½çï¼å¯ä»¥æ è§ fastcgi_connect_timeout=300; # è¿æ¥å°å端 fastcgi è¶ æ¶æ¶é´ fastcgi_send_timeout=300; # å fastcgi 请æ±è¶ æ¶æ¶é´(è¿ä¸ªæå®å¼å·²ç»å®æä¸¤æ¬¡æ¡æååfastcgiä¼ é请æ±çè¶ æ¶æ¶é´) fastcgi_rend_timeout=300; # æ¥æ¶ fastcgi åºçè¶ æ¶æ¶é´ï¼åç乿¯2æ¬¡æ¡æå fastcgi_buffer_size=64k; # 读å fastcgi åºç第ä¸é¨åéè¦å¤å¤§ç¼å²åºï¼è¯¥å¼è¡¨ç¤ºä½¿ç¨1个64kbçç¼å²åºè¯»ååºç第ä¸é¨å(åºç头),å¯ä»¥è®¾ç½®ä¸ºfastcgi_buffersé项ç¼å²åºå¤§å° fastcgi_buffers 4 64k; # æå®æ¬å°éè¦å¤å°åå¤å¤§çç¼å²åºæ¥ç¼å²fastcgiåºç请æ±ï¼å设ä¸ä¸ªphpæjavaèæ¬æäº§ç页é¢å¤§å°ä¸º256kb,é£ä¹ä¼ä¸ºå ¶åé 4个64kbçç¼å²æ¥ç¼å fastcgi_cache TEST; # å¼å¯fastcgiç¼åå¹¶ä¸ºå ¶æå®ä¸ºTESTåç§°ï¼éä½cpuè´è½½,鲿¢502é误åç listen 80; # çå¬ç«¯å£ server_name rrc.test.jiedaibao.com; # å 许åå root /data/release/rrc/web; # é¡¹ç®æ ¹ç®å½ index index.php index.html index.htm; # è®¿é®æ ¹æä»¶ ``` #### 15.请éè¿°stub_statusåsub_filteræä»¤çä½ç¨æ¯ä»ä¹? ï¼1ï¼Stub_statusæä»¤ï¼è¯¥æä»¤ç¨äºäºè§£Nginxå½åç¶æçå½åç¶æï¼å¦å½åçæ´»å¨è¿æ¥ï¼æ¥ååå¤çå½å读/å/çå¾ è¿æ¥çæ»æ° ï¼ ï¼2ï¼Sub_filteræä»¤ï¼å®ç¨äºæç´¢åæ¿æ¢ååºä¸çå 容ï¼å¹¶å¿«éä¿®å¤éæ§çæ°æ® #### åè龿¥ https://blog.csdn.net/a303549861/article/details/88672901 https://blog.csdn.net/weixin_43122090/article/details/105461971 https://www.wkcto.com/article/detail/233