Nginx下載及配置


一. ngnix用途
1. Web 服務器:
相比 Apache,Nginx 使用資源更少,支持並發連接更多,效率更高,能夠支持高達 50,000 個並發連接數的響應。

2.負載均衡服務器
支持作為 HTTP代理服務器對外進行服務。Nginx用C編寫,不論是系統資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。

3.作為郵件代理服務器
Nginx 同時也是一個非常優秀的郵件代理服務器(最早開發這個產品的目的之一也是作為郵件代理服務器)。

4.優勢
安裝非常的簡單;配置文件 非常簡潔 (還能夠支持perl語法);bug非常少的服務器; Nginx 啟動特別容易,並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動;能夠在不間斷服務的情況下進行軟件版本的升級。

二. windows下安裝nginx


1. nginx下載地址: http://nginx.org/en/download.html

 

 選擇紅框穩定版最后一個下載即可,下載好后解壓得到如下目錄


2. 解壓即可

 

3.nginx的啟動
在此目錄下打開cmd命令窗口,切換到nginx解壓目錄下,輸入命令 start nginx.exe ,回車即可
檢查nginx啟動是否成:
直接在瀏覽器地址欄輸入網址http://localhost:80,回車,出現以下頁面說明啟動成功

 

簡單介紹下幾個nginx命令

start nginx.exe    啟動nginx
nginx  -s reload  :修改配置后重新加載生效
nginx  -s reopen  :重新打開日志文件
nginx  -t -c /path/to/nginx.conf 測試nginx配置文件是否正確

關閉nginx:
nginx -s stop  :快速停止nginx
         quit  :完整有序的停止nginx

 


三.nginx配置
1. nginx的配置文件是conf目錄下的nginx.conf

 

 

2. nginx默認的訪問路徑server_name:localhost和監聽端口listen:80,啟動nginx之后,在瀏覽器中訪問http://localhost:80或者http://localhost(http默認端口80,可以不寫),即可出現nginx的歡迎頁面

 

 

3. 啟動之后, 如果80端口被占用(netstat -ano | findstr “80”), 可以修改listen的值,執行命令:nginx -s reload。

 

4. 也可以采用自定義conf配置文件然后用命令include內嵌到nginx.conf的方式    


四. nginx的location配置
location指令的作用是根據用戶請求的URI來執行不同的應用,也就是根據用戶請求的URL進行匹配,匹配成功即進行相關的操作。
即:此模塊專門將請求導向其他服務

1. location的語法:
          location [ = | ~ | ~* | ^~ ] uri { … }           
         指令 | | 匹配標識 | | 匹配的網站網址 | | 匹配URI之后要執行的配置段|
         精確匹配(=) > 字符串打頭匹配(^~) > 正則匹配(或) > 否定式正則匹配(!或!) > 通用匹配(/)。兩種正則當中,區分大小寫的優先級高,也就是不帶*的優先級高(范圍從小到大)

 

2. 匹配模式:

          精確匹配:
          location = / {
          #精確匹配訪問網站根目錄
          }
          location = /login {
          #精確匹配http://xxx.com/login

          ^~ 表示以什么打頭,關鍵在於正則的開頭符 ^
          location ^~ /static/ {
          #以/static打頭,比如 http://xxx.com/static/jQuery.js
          }

          正則匹配(~ 區分大小寫的正則, ~* 不區分大小的正則)
           location ~ \.png {
           #以png結尾,比如比如 http://xxx.com/img/a.png
           }
           location ~* \.png$ {
           #以png或者PNG或者Png等等結尾,比如  http://xxx.com/img/a.pNg。               如果是png結尾,會優先匹配上面一條。
           }

          排除法的正則,同樣區分大小寫優先於不區分大小寫
          location !~ \.png$ {
          #匹配“以png結尾”失敗,進入location,那就情況多了去了,只要不以png結             尾就行
          }
          location !~* \.png$ {
          #匹配“以png或者PNG或者PnG等等”結尾失敗,進入location,那情況也多了            去了,只要不是PNG的各種大小寫變體就行
          }

          通用匹配
          location / {
          #用來兜底的,當前面其他所有的規則都不滿足條件,就歸入這個通用的
          }

          “@”前綴

 


注意: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的代理過程,就是將請求發送給nginx,然后將請求轉發給后端服務器,后端服務器處理完畢之后將結果再發給nginx,nginx再把結果發送給客戶端。后端服務器可在遠程也可在本地,也可以是nginx服務器內部定義的其他虛擬主機。這些接收nginx轉發的服務器被稱為上游(upstream),使用nginx做代理的目的之一是擴展基礎架構的規模。nginx可以處理大量並發連接,請求到來后,nginx可將其轉發給任意數量的后台服務器進行處理,這等於將負載均衡分散到整個集群

2.緩沖:
nginx也提供了緩沖的機制,用於提高性能。沒有緩沖的情況下,數據直接從后端服務器發送給客戶端。緩沖的作用是在nginx上臨時存儲來自后端服務器的處理結果,從而可以提早關閉nginx到后端的連接,減少IO的損耗。一般內容存放在內存當中,但當內容過多,造成的內存不夠時,會把內容存放在臨時文件目錄下。

3.負載均衡:
客戶端訪問nginx的時候,只需要配置一個ip和一個端口,nginx幫助我們把請求轉發不同的后台服務中。

 

 


六. nginx配置多個配置文件
需要在server中加:include config/*.conf;  (此處config為文件夾名,可更改)

七. 跨域

跨域請求就是指:當前發起請求的域與該請求指向的資源所在的域不一樣。這里的域指的是這樣的一個概念:協議 + 域名 + 端口號均相同,那么就是同域。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM