Nginx配置性能優(yōu)化
時間:2023-07-14 13:51:02 | 來源:網(wǎng)站運營
時間:2023-07-14 13:51:02 來源:網(wǎng)站運營
Nginx配置性能優(yōu)化:
一. ngnix用途
1. Web 服務器:相比 Apache,Nginx 使用更少的資源,支持更多的并發(fā)連接,體現(xiàn)更高的效率,這點使 Nginx 尤其受到虛擬主機提供商的歡迎。能夠支持高達 50,000 個并發(fā)連接數(shù)的響應,感謝 Nginx 為我們選擇了 epoll and kqueue 作為開發(fā)模型.
2.負載均衡服務器支持作為 HTTP代理服務器對外進行服務。Nginx用C編寫,不論是系統(tǒng)資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。
3.作為郵件代理服務器Nginx 同時也是一個非常優(yōu)秀的郵件代理服務器(最早開發(fā)這個產(chǎn)品的目的之一也是作為郵件代理服務器),Last.fm 描述了成功并且美妙的使用經(jīng)驗.
4.優(yōu)勢安裝非常的簡單,配置文件 非常簡潔(還能夠支持perl語法),Bugs非常少的服務器, Nginx 啟動特別容易,并且?guī)缀蹩梢宰龅?*24不間斷運行,即使運行數(shù)個月也不需要重新啟動。你還能夠在 不間斷服務的情況下進行軟件版本的升級。
二. windows下安裝nginx
1. 下載nginx:http://nginx.org/en/download.html
2. 解壓即可3.nginx的啟動
3.nginx的啟動直接雙擊nginx.exe,雙擊后一個黑色的彈窗一閃而過.
打開cmd命令窗口,切換到nginx解壓目錄下,輸入命令 nginx.exe 或者 start nginx ,回車即可
檢查nginx啟動是否成:
直接在瀏覽器地址欄輸入網(wǎng)址http://localhost:80,回車,出現(xiàn)以下頁面說明啟動成功
三.nginx配置
1. nginx的配置文件是conf目錄下的nginx.conf
2. nginx默認的訪問路徑server_name:localhost和監(jiān)聽端口listen:80,啟動nginx之后,在瀏覽器中訪問http://localhost:80或者http://localhost(http默認端口80,可以不寫),即可出現(xiàn)nginx的歡迎頁面
3. 啟動之后, 如果80端口被占用(netstat -ano | findstr “80”), 可以修改listen的值,不需要重啟nginx,只需要執(zhí)行命令:nginx -s reload,即可生效。
四. nginx的location配置
location指令的作用是根據(jù)用戶請求的URI來執(zhí)行不同的應用,也就是根據(jù)用戶請求的網(wǎng)站URL進行匹配,匹配成功即進行相關的操作。
即:此模塊專門將請求導向其他服務
1. location的語法:location [ = | ~ | ~* | ^~ ] uri { … }
| 指令 | | 匹配標識 | | 匹配的網(wǎng)站網(wǎng)址 | | 匹配URI之后要執(zhí)行的配置段|
精確匹配(=) > 字符串打頭匹配(^~) > 正則匹配(或) > 否定式正則匹配(!或!) > 通用匹配(/)。兩種正則當中,區(qū)分大小寫的優(yōu)先級高,也就是不帶*的優(yōu)先級高(范圍從小到大)
2. 匹配模式:a. 精確匹配:b. ^~ 表示以什么打頭,關鍵在于正則的開頭符 ^
正則匹配(~ 區(qū)分大小寫的正則, ~* 不區(qū)分大小的正則)
排除法的正則,同樣區(qū)分大小寫優(yōu)先于不區(qū)分大小寫
f. “@”前綴
在這里插入代碼片
注意:inginx中配置proxy_pass時,當在后面的url加上了"/",相當于是絕對根路徑,則nginx不會把location中匹配的路徑部分代理走;如果沒有"/",則會把匹配的路徑部分也給代理走.例如:nginx請求鏈接:
http://localhost:8080/api/getName?name=xiaoming
a.第一種情況:proxy_pass鏈接的最后不帶"/"則被代理為
:http://localhost:8082/api/getName?name=xiaoming
b.第二種情況:proxy_pass鏈接的最后帶"/"
則被代理為
:http://localhost:8082/getName?name=xiaoming
五. 負載均衡:
1.nginx的反向代理:nginx的代理過程,就是將請求發(fā)送給nginx,然后將請求轉(zhuǎn)發(fā)給后端服務器,后端服務器處理完畢之后將結(jié)果再發(fā)給nginx,nginx再把結(jié)果發(fā)送給客戶端。后端服務器可在遠程也可在本地,也可以是nginx服務器內(nèi)部定義的其他虛擬主機。這些接收
nginx轉(zhuǎn)發(fā)的服務器被稱為上游(upstream)使用nginx做代理的目的之一是擴展基礎架構(gòu)的規(guī)模。nginx可以處理大量并發(fā)連接,請求到來后,nginx可將其轉(zhuǎn)發(fā)給任意數(shù)量的后臺服務器進行處理,這等于將負載均衡分散到整個集群
2.緩沖:nginx也提供了緩沖的機制,用于提高性能。沒有緩沖的情況下,數(shù)據(jù)直接從后端服務器發(fā)送給客戶端。緩沖的作用是在nginx上臨時存儲來自后端服務器的處理結(jié)果,從而可以提早關閉nginx到后端的連接,減少IO的損耗。一般內(nèi)容存放在內(nèi)存當中,但當內(nèi)容過多,造成的內(nèi)存不夠時,會把內(nèi)容存放在臨時文件目錄下。
3.負載均衡:客戶端訪問nginx的時候,只需要配置一個ip和一個端口,nginx幫助我們把請求轉(zhuǎn)發(fā)不同的后臺服務中。
nginx配置多個配置文件:
需要在server中加:include config/*.conf;
七. 跨域跨域請求就是指:當前發(fā)起請求的域與該請求指向的資源所在的域不一樣。這里的域指的是這樣的一個概念