Nginx各個(gè)模塊的配置及常用配置選項(xiàng)
接下來(lái),我們仔細(xì)分析下Nginx各個(gè)模塊的配置選項(xiàng)。
注意:http塊也可以進(jìn)一步分成3塊,http全局塊里的配置對(duì)所有站點(diǎn)生效,server塊配置選項(xiàng)僅對(duì)單個(gè)站點(diǎn)生效,而location塊的配置僅對(duì)單個(gè)頁(yè)面或url生效。
Nginx Location配置
Nginx Location配置是Nginx的核心配置,它負(fù)責(zé)匹配請(qǐng)求的url, 并根據(jù)Location里定義的規(guī)則來(lái)處理這個(gè)請(qǐng)求,比如拒絕、轉(zhuǎn)發(fā)、重定向或直接提供文件下載。
URL匹配方式及優(yōu)先級(jí)
Nginx的Location配置支持普通字符串匹配和正則匹配,不過(guò)url的各種匹配方式是有優(yōu)先級(jí)的,如下所示:
匹配符 匹配規(guī)則 優(yōu)先級(jí)逐級(jí)降低
= 精確匹配 1
^~ 以某個(gè)字符串開頭 2
~ 區(qū)分大小寫的正則匹配 3
~* 不區(qū)分大小寫的正則匹配 4
!~ 區(qū)分大小寫的不匹配正則 5
!~* 不區(qū)分大小寫的不匹配正則 6
/ 通用匹配,任何請(qǐng)求都會(huì)匹配到 7
為了加深你的理解,我們來(lái)看如下一個(gè)例子。由于規(guī)則2的優(yōu)先級(jí)更高,當(dāng)用戶訪問/static/或則/static/123.html時(shí),Nginx會(huì)優(yōu)先執(zhí)行規(guī)則2里的操作,其它的的請(qǐng)求則會(huì)交由規(guī)則1執(zhí)行。
# 規(guī)則1:通用匹配 location / { } # 規(guī)則2:處理以/static/開頭的url location ^~ /static { alias /usr/share/nginx/html/static; # 靜態(tài)資源路徑 }
上例中我們使用了alias別名設(shè)置了靜態(tài)文件所在目錄,我們還可以使用root指定靜態(tài)文件目錄。這里請(qǐng)一定注意alias和root的區(qū)別:
root對(duì)路徑的處理:root路徑 + location路徑alias對(duì)路徑的處理:使用alias路徑替換location路徑
如果用root設(shè)置靜態(tài)文件資源路徑,可以按如下代碼設(shè)置。兩者是等同的。
# 規(guī)則2:處理以/static/開頭的url location ^~ /static { root /usr/share/nginx/html; # 靜態(tài)資源路徑 }
Location還支持正則匹配,比如下例可以禁止用戶訪問所有的圖片格式文件。
# 拒絕訪問所有圖片格式文件 location ~* .*\.(jpg|gif|png|jpeg)$ { deny all; }
請(qǐng)求轉(zhuǎn)發(fā)和重定向
另一個(gè)我們?cè)贚ocation塊里經(jīng)常配置的就是轉(zhuǎn)發(fā)請(qǐng)求或重定向,如下例所示:
# 轉(zhuǎn)發(fā)動(dòng)態(tài)請(qǐng)求 server { listen 80; server_name localhost; client_max_body_size 1024M; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host:$server_port; } } # http請(qǐng)求重定向到https請(qǐng)求 server { listen 80; server_name Domain.com; return 301 https://$server_name$request_uri; }
無(wú)論是轉(zhuǎn)發(fā)請(qǐng)求還是重定向,我們都使用了以$符號(hào)開頭的變量,這些都是Nginx提供的全局變量。它們的具體含義如下所示:
$args, 請(qǐng)求中的參數(shù); $content_length, HTTP請(qǐng)求信息里的"Content-Length"; $content_type, 請(qǐng)求信息里的"Content-Type"; $document_root, 針對(duì)當(dāng)前請(qǐng)求的根路徑設(shè)置值; $document_uri, 與$uri相同; $host, 請(qǐng)求信息中的"Host",如果請(qǐng)求中沒有Host行,則等于設(shè)置的服務(wù)器名; $limit_rate, 對(duì)連接速率的限制; $request_method, 請(qǐng)求的方法,比如"GET"、"POST"等; $remote_addr, 客戶端地址; $remote_port, 客戶端端口號(hào); $remote_user, 客戶端用戶名,認(rèn)證用; $request_filename, 當(dāng)前請(qǐng)求的文件路徑名 $request_body_file,當(dāng)前請(qǐng)求的文件 $request_uri, 請(qǐng)求的URI,帶查詢字符串; $query_string, 與$args相同; $scheme, 所用的協(xié)議,比如http或者是https,比如rewrite ^(.+)$ $scheme://example.com$1 redirect; $server_protocol, 請(qǐng)求的協(xié)議版本,"HTTP/1.0"或"HTTP/1.1"; $server_addr, 服務(wù)器地址; $server_name, 請(qǐng)求到達(dá)的服務(wù)器名; $server_port, 請(qǐng)求到達(dá)的服務(wù)器端口號(hào); $uri, 請(qǐng)求的URI,可能和最初的值有不同,比如經(jīng)過(guò)重定向之類的。
知道這些全局變量的含義后,我們就可以限制用戶的請(qǐng)求方法。比如下例中配置了只允許用戶通過(guò)GET或POST方法訪問,其他的請(qǐng)求方法則返回405。
Nginx靜態(tài)文件配置
Nginx可直接作為強(qiáng)大的靜態(tài)文件服務(wù)器使用,支持對(duì)靜態(tài)文件進(jìn)行緩存還可以直接將Nginx作為文件下載服務(wù)器使用。
靜態(tài)文件緩存
緩存可以加快下次靜態(tài)文件加載速度。我們很多與網(wǎng)站樣式相關(guān)的文件比如css和js文件一般不怎么變化,緩存有效器可以通過(guò)expires選項(xiàng)設(shè)置得長(zhǎng)一些。
# 使用expires選項(xiàng)開啟靜態(tài)文件緩存,10天有效 location ~ ^/(images|javascript|js|css|flash|media|static)/ { root /var/www/big.server.com/static_files; expires 10d; }
靜態(tài)文件壓縮
Nginx可以對(duì)網(wǎng)站的css、js 、xml、html 文件在傳輸前進(jìn)行壓縮,大幅提高頁(yè)面加載速度。經(jīng)過(guò)Gzip壓縮后頁(yè)面大小可以變?yōu)樵瓉?lái)的30%甚至更小。使用時(shí)僅需開啟Gzip壓縮功能即可。你可以在http全局塊或server塊增加這個(gè)配置。
http { # 開啟gzip壓縮功能 gzip on; # 設(shè)置允許壓縮的頁(yè)面最小字節(jié)數(shù); 這里表示如果文件小于10k,壓縮沒有意義. gzip_min_length 10k; # 設(shè)置壓縮比率,最小為1,處理速度快,傳輸速度慢; # 9為最大壓縮比,處理速度慢,傳輸速度快; 推薦6 gzip_comp_level 6; # 設(shè)置壓縮緩沖區(qū)大小,此處設(shè)置為16個(gè)8K內(nèi)存作為壓縮結(jié)果緩沖 gzip_buffers 16 8k; # 設(shè)置哪些文件需要壓縮,一般文本,css和js建議壓縮。圖片視需要要鎖。 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; }
文件下載服務(wù)器
Nginx也可直接做文件下載服務(wù)器使用,在location塊設(shè)置autoindex相關(guān)選項(xiàng)即可。
server { listen 80 default_server; listen [::]:80 default_server; server_name _; location /download { # 下載文件所在目錄 root /usr/share/nginx/html; # 開啟索引功能 autoindex on; # 關(guān)閉計(jì)算文件確切大?。▎挝籦ytes),只顯示大概大小(單位kb、mb、gb) autoindex_exact_size off; #顯示本機(jī)時(shí)間而非 GMT 時(shí)間 autoindex_localtime on; # 對(duì)于txt和jpg文件,強(qiáng)制以附件形式下載,不要瀏覽器直接打開 if ($request_filename ~* ^.*?\.(txt|jpg|png)$) { add_header Content-Disposition 'attachment'; } } }
Nginx配置HTTPS
# 負(fù)載均衡,設(shè)置HTTPS upstream backend_server { server APP_SERVER_1_IP; server APP_SERVER_2_IP; } # 禁止未綁定域名訪問,比如通過(guò)ip地址訪問 # 444:該網(wǎng)頁(yè)無(wú)法正常運(yùn)作,未發(fā)送任何數(shù)據(jù) server { listen 80 default_server; server_name _; return 444; # HTTP請(qǐng)求重定向至HTTPS請(qǐng)求 listen 80; listen [::]:80; server_name your_domain.com; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://backend_server; } return 301 https://$server_name$request_uri; listen 443 ssl http2; listen [::]:443 ssl http2; # ssl證書及密鑰路徑 ssl_certificate /path/to/your/fullchain.pem; ssl_certificate_key /path/to/your/privkey.pem; # SSL會(huì)話信息 client_max_body_size 75MB; keepalive_timeout 10; proxy_pass http://django; # Django+uwsgi不在本機(jī)上,使用代理轉(zhuǎn)發(fā) }
Nginx日志配置
Nginx的日志主要包括訪問日志access_log和錯(cuò)誤日志error_log,你還可以通過(guò)log_format定義日志格式。你可以在全局塊,Server塊或Location塊定義日志。比如下例在http塊中定義了一個(gè)名為main的日志格式,所有站點(diǎn)的日志都會(huì)按這個(gè)格式記錄。
http { # 日志格式及access日志路徑 log_format main '$remote_addr - $remote_user [$time_local] $status ' '"$request" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; }
access_log文件隨著訪問記錄增多有可能變得非常大,我們可以使用access_log off關(guān)閉一些不需要記錄的訪問。比如當(dāng)一個(gè)站點(diǎn)沒有設(shè)置favicon.ico時(shí),access_log會(huì)記錄了大量favicon.ico 404信息, 這是沒有必要的, 可以按如下方式關(guān)閉訪問日志記錄。
location = /favicon.ico { log_not_found off; access_log off; # 不在access_log記錄該項(xiàng)訪問 }
Nginx超時(shí)設(shè)置
Nginx提供了很多超時(shí)設(shè)置選項(xiàng),目的是保護(hù)服務(wù)器資源,CPU,內(nèi)存并控制連接數(shù)。你可以根據(jù)實(shí)際項(xiàng)目需求在全局塊、Server塊和Location塊進(jìn)行配置。
請(qǐng)求超時(shí)設(shè)置
# 客戶端連接保持會(huì)話超時(shí)時(shí)間,超過(guò)這個(gè)時(shí)間,服務(wù)器斷開這個(gè)鏈接。 keepalive_timeout 60; # 設(shè)置請(qǐng)求頭的超時(shí)時(shí)間,可以設(shè)置低點(diǎn)。 # 如果超過(guò)這個(gè)時(shí)間沒有發(fā)送任何數(shù)據(jù),nginx將返回request time out的錯(cuò)誤。 client_header_timeout 15; # 設(shè)置請(qǐng)求體的超時(shí)時(shí)間,可以設(shè)置低點(diǎn)。 # 如果超過(guò)這個(gè)時(shí)間沒有發(fā)送任何數(shù)據(jù),nginx將返回request time out的錯(cuò)誤。 client_body_timeout 15; # 響應(yīng)客戶端超時(shí)時(shí)間 # 如果超過(guò)這個(gè)時(shí)間,客戶端沒有任何活動(dòng),nginx關(guān)閉連接。 send_timeout 15; # 上傳文件大小限制 client_max_body_size 10m; # 也是防止網(wǎng)絡(luò)阻塞,不過(guò)要包涵在keepalived參數(shù)才有效。 tcp_nodelay on; # 客戶端請(qǐng)求頭部的緩沖區(qū)大小,這個(gè)可以根據(jù)你的系統(tǒng)分頁(yè)大小來(lái)設(shè)置。 # 一般一個(gè)請(qǐng)求頭的大小不會(huì)超過(guò) 1k,不過(guò)由于一般系統(tǒng)分頁(yè)都要大于1k client_header_buffer_size 2k; # 這個(gè)將為打開文件指定緩存,默認(rèn)是沒有啟用的。 # max指定緩存數(shù)量,建議和打開文件數(shù)一致,inactive 是指經(jīng)過(guò)多長(zhǎng)時(shí)間文件沒被請(qǐng)求后刪除緩存。 open_file_cache max=102400 inactive=20s; # 這個(gè)是指多長(zhǎng)時(shí)間檢查一次緩存的有效信息。 open_file_cache_valid 30s; # 告訴nginx關(guān)閉不響應(yīng)的客戶端連接。這將會(huì)釋放那個(gè)客戶端所占有的內(nèi)存空間。 reset_timedout_connection on;
Proxy反向代理超時(shí)設(shè)置
# 該指令設(shè)置與upstream服務(wù)器的連接超時(shí)時(shí)間,這個(gè)超時(shí)建議不超過(guò)75秒。 proxy_connect_timeout 60; # 該指令設(shè)置應(yīng)用服務(wù)器的響應(yīng)超時(shí)時(shí)間,默認(rèn)60秒。 proxy_read_timeout 60; # 設(shè)置了發(fā)送請(qǐng)求給upstream服務(wù)器的超時(shí)時(shí)間 proxy_send_timeout 60; # max_fails設(shè)定Nginx與upstream服務(wù)器通信的嘗試失敗的次數(shù)。 # 在fail_timeout參數(shù)定義的時(shí)間段內(nèi),如果失敗的次數(shù)達(dá)到此值,Nginx就認(rèn)為服務(wù)器不可用。 upstream big_server_com { server 192.168.0.1:8000 weight=5 max_fails=3 fail_timeout=30s; # weight越高,權(quán)重越大 server 192.168.0.2:8000 weight=1 max_fails=3 fail_timeout=30s; server 192.168.0.3:8000; server 192.168.0.4:8001 backup; # 熱備 }
Nginx負(fù)載均衡
Nginx提供了多種負(fù)載均衡算法, 最常見的有5種。我們只需修改對(duì)應(yīng)upstream模塊即可。
輪詢(默認(rèn))
每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動(dòng)剔除;
# 輪詢,大家權(quán)重一樣 upstream backend_server { server 192.168.0.1:8000; server 192.168.0.2:8000; server 192.168.0.3:8000 down; # 不參與負(fù)載均衡 server 192.168.0.4:8001 backup; # 熱備 } server { listen 80; server_name big.server.com; access_log logs/big.server.access.log main; charset utf-8; client_max_body_size 10M; # 限制用戶上傳文件大小,默認(rèn)1M location / { # 使用proxy_pass轉(zhuǎn)發(fā)請(qǐng)求到通過(guò)upstream定義的一組應(yīng)用服務(wù)器 proxy_pass http://backend_server; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; }
權(quán)重(weight)
通過(guò)weight指定輪詢幾率,訪問比率與weight成正比,常用于后端服務(wù)器性能不均的情況。不怎么忙的服務(wù)器可以多承擔(dān)些任務(wù)。
# 權(quán)重,weight越大,承擔(dān)任務(wù)越多 upstream backend_server { server 192.168.0.1:8000 weight=3; server 192.168.0.2:8000 weight=1; }
ip_hash
每個(gè)請(qǐng)求按訪問ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問一個(gè)后端服務(wù)器,可以解決session的問題。
# 權(quán)重,weight越大,承擔(dān)任務(wù)越多 upstream backend_server { ip_hash; server 192.168.0.1:8000; server 192.168.0.2:8000; }
url_hash
按訪問url的hash結(jié)果來(lái)分配請(qǐng)求,使每個(gè)url定向到同一個(gè)后端服務(wù)器,后端服務(wù)器為緩存時(shí)比較有效。
# URL Hash upstream backend_server { hash $request_uri; server 192.168.0.1:8000; server 192.168.0.2:8000; }
fair(第三方)
按后端服務(wù)器的響應(yīng)時(shí)間來(lái)分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。使用這個(gè)算法需要安裝nginx-upstream-fair這個(gè)庫(kù)。
# Fair upstream backend_server { server 192.168.0.1:8000; server 192.168.0.2:8000; fair; }
Nginx與uWSGI服務(wù)器的溝通
在前面的案例中,Nginx都是使用proxy_pass轉(zhuǎn)發(fā)的動(dòng)態(tài)請(qǐng)求,proxy_pass使用普通的HTTP協(xié)議與應(yīng)用服務(wù)器進(jìn)行溝通。如果你部署的是Python Web應(yīng)用(Django, Flask), 你的應(yīng)用服務(wù)器(uwsgi, gunicorn)一般是遵守uwsgi協(xié)議的,對(duì)于這種情況,建議使用uwsgi_pass轉(zhuǎn)發(fā)請(qǐng)求。
如果你部署的是Django或則Flask Web應(yīng)用,一個(gè)完整的nginx配置文件如下所示,可以使用通過(guò)uWSGI或gunicorn部署的Python Web項(xiàng)目。
# nginx配置文件,nginx.conf # 全局塊 user www-data; worker_processes 2; ## 默認(rèn)1,一般建議設(shè)成CPU核數(shù)1-2倍 # Events塊 events { # 使用epoll的I/O 模型處理輪詢事件。 # 可以不設(shè)置,nginx會(huì)根據(jù)操作系統(tǒng)選擇合適的模型 use epoll; # 工作進(jìn)程的最大連接數(shù)量, 默認(rèn)1024個(gè) worker_connections 2048; # http層面的keep-alive超時(shí)時(shí)間 keepalive_timeout 60; } http { # 開啟gzip壓縮功能 gzip on; # 設(shè)置允許壓縮的頁(yè)面最小字節(jié)數(shù); 這里表示如果文件小于10k,壓縮沒有意義. gzip_min_length 10k; # 設(shè)置壓縮比率,最小為1,處理速度快,傳輸速度慢; # 9為最大壓縮比,處理速度慢,傳輸速度快; 推薦6 gzip_comp_level 6; # 設(shè)置壓縮緩沖區(qū)大小,此處設(shè)置為16個(gè)8K內(nèi)存作為壓縮結(jié)果緩沖 gzip_buffers 16 8k; # 設(shè)置哪些文件需要壓縮,一般文本,css和js建議壓縮。圖片視需要要鎖。 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; upstream backend_server { server 192.168.0.1:8000; # 替換成應(yīng)用服務(wù)器或容器實(shí)際IP及端口 server 192.168.0.2:8000; } server { listen 80; # 監(jiān)聽80端口 # 可以是nginx容器所在ip地址或127.0.0.1,不能寫宿主機(jī)外網(wǎng)ip地址 server_name localhost; charset utf-8; client_max_body_size 10M; # 限制用戶上傳文件大小 # 客戶端請(qǐng)求頭部的緩沖區(qū)大小 client_header_buffer_size 2k; client_header_timeout 15; client_body_timeout 15; access_log /var/log/nginx/mysite1.access.log main; error_log /var/log/nginx/mysite1.error.log warn; # 靜態(tài)資源路徑 location /static { alias /usr/share/nginx/html/static; } # 媒體資源路徑,用戶上傳文件路徑 location /media { alias /usr/share/nginx/html/media; location / { include /etc/nginx/uwsgi_params; uwsgi_pass backend_server; # 使用uwsgi_pass, 而不是proxy_pass uwsgi_read_timeout 600; # 指定接收uWSGI應(yīng)答的超時(shí)時(shí)間 uwsgi_connect_timeout 600; # 指定連接到后端uWSGI的超時(shí)時(shí)間。 uwsgi_send_timeout 600; # 指定向uWSGI傳送請(qǐng)求的超時(shí)時(shí)間 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr;
如果你的nginx與uwsgi在同一臺(tái)服務(wù)器上,用不到負(fù)載均衡,你還可以通過(guò)本地機(jī)器的unix socket進(jìn)行通信,這樣速度更快,如下所示:
location / { include /etc/nginx/uwsgi_params; uwsgi_pass unix:/run/uwsgi/django_test1.sock; }
注意:取決于Nginx采用那種方式與uWSGI服務(wù)器進(jìn)行通信(本地socket, 網(wǎng)絡(luò)TCP socket和http協(xié)議),uWSGI的配置文件也會(huì)有所不同。這里以u(píng)wsgi.ini為例展示了不同。
uwsgi.ini配置文件
# 對(duì)于uwsgi_pass轉(zhuǎn)發(fā)的請(qǐng)求,使用本地unix socket通信 # 僅適用于nginx和uwsgi在同一臺(tái)服務(wù)器上的情形 socket=/run/uwsgi/django_test1.sock # 對(duì)于uwsgi_pass轉(zhuǎn)發(fā)的請(qǐng)求,使用TCP socket通信 socket=0.0.0.0:8000 # 對(duì)于proxy_pass HTTP轉(zhuǎn)發(fā)的請(qǐng)求,使用http協(xié)議 http=0.0.0.0:8000
小結(jié)
本文總結(jié)了Nginx常用配置選項(xiàng),包括url匹配優(yōu)先級(jí)、請(qǐng)求轉(zhuǎn)發(fā)、日志配置、超時(shí)配置、靜態(tài)文件處理以及負(fù)載均衡的各項(xiàng)算法。
到此這篇關(guān)于Nginx各個(gè)模塊的配置的文章就介紹到這了,更多相關(guān)Nginx 模塊配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Nginx之Location配置(Location匹配順序)
這篇文章主要介紹了詳解Nginx之Location配置(Location匹配順序),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11詳解Nginx服務(wù)器中配置Sysguard模塊預(yù)防高負(fù)載的方案
這篇文章主要介紹了詳解Nginx服務(wù)器中配置Sysguard模塊預(yù)防高負(fù)載的方案,該模塊由阿里巴巴的團(tuán)隊(duì)開發(fā),能夠設(shè)置負(fù)載閥值,比較強(qiáng)大,需要的朋友可以參考下2016-01-01nginx中封禁ip和允許內(nèi)網(wǎng)ip訪問的實(shí)現(xiàn)示例
Nginx不僅僅只是一款反向代理和負(fù)載均衡服務(wù)器,本文主要介紹了nginx中封禁ip和允許內(nèi)網(wǎng)ip訪問的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Nginx如何實(shí)現(xiàn)pathinfo模式的方法詳解
pathinfo是偽靜態(tài)的一種,對(duì)于用過(guò)thinkphp的朋友們來(lái)說(shuō)應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于Nginx如何實(shí)現(xiàn)pathinfo模式的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-09-09Nginx實(shí)現(xiàn)靜態(tài)資源的反向代理實(shí)例
這篇文章主要介紹了Nginx實(shí)現(xiàn)靜態(tài)資源的反向代理實(shí)例,本文通過(guò)分析github發(fā)現(xiàn)這個(gè)應(yīng)用,可以避免在https的網(wǎng)站中出現(xiàn)http鏈接,需要的朋友可以參考下2015-03-03強(qiáng)大的 Web 應(yīng)?服務(wù)器OpenResty安裝(Nginx倉(cāng)庫(kù))
OpenResty 是?個(gè)強(qiáng)大的 Web 應(yīng)?服務(wù)器,Web 開發(fā)?員可以使用 Lua 腳本語(yǔ)?調(diào)動(dòng) Nginx ?持的各種 C 以及 Lua 模塊,更主要的是在性能方面,OpenResty可以快速構(gòu)造出足以勝任 10K 以上并發(fā)連接響應(yīng)的超高性能 Web 應(yīng)用系統(tǒng)2023-06-06