1 nginx 簡介
nginx (engine x異音) 是乙個高效能的 http 和反向**服務。nginx 是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的 站點(俄文:рамблер)開發的,第乙個公開版本 0.1.0發布於 2004 年 10 月 4 日。
nginx 是乙個很強大的高效能 web 和反向**服務,它具有很多非常優越的特性:在連線高併發的情況下,nginx 是 apache 服務不錯的替代品:nginx 在美國是做虛擬主機生意的老闆們經常選擇的軟體平台之一。
2 nginx 作用
2.1http 協議**
應用場景:(檔案上傳是基於ftp協議且上傳到ftp伺服器中)解決http不能餓訪問ftp伺服器中的資料。
2.2搭建虛擬主機
2.3服務的反向**
2.4在反向**中配置集群的負載均衡
**方式
1 正向**
正向**,意思是乙個位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向**傳送乙個請求並指定目標(原始伺服器),然後**向原始伺服器轉交請求並將獲得的內容返回給客戶端。客戶端才能使用正向**。
2 反向**
反向**(reverse proxy)方式是指以**伺服器來接受 internet 上的連線請求,然
後將請求**給內部網路上的伺服器,並將從伺服器上得到的結果返回給 internet 上請求連線的客戶端,此時**伺服器對外就表現為乙個反向**伺服器。
3 二者之間的區別
位置不同
正向**,架設在客戶機和目標主機之間;
反向**,架設在伺服器端;
**物件不同
正向**,**客戶端,服務端不知道實際發起請求的客戶端;(如vpn)
反向**,**服務端,客戶端不知道實際提供服務的服務端。
安裝 nginx
nginx 安裝環境
nginx 是 c 語言開發,建議在 linux 上執行
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
2.將 nginx 安裝包上傳到 linux 中
3.解壓安裝包:
tar -zxvf nginx-1.8.1.tar.gz
4.編譯安裝
進入到 nginx 的根目錄:cd nginx-1.8.0
配置安裝引數: ./configure --prefix=/usr/local/nginx
編譯:make
編譯安裝 make install
5.nginx的啟動和關閉
啟動:./nginx
關閉:./nginx -s quit
重啟:./nginx -s reload
6.測試
安裝成功後,啟動nginx,在瀏覽器上直接輸入ip即可。(nginx預設監聽的是80埠)
注意:記得關閉防火牆
配置虛擬主機
需求一台 linux 伺服器繫結兩個 ip:192.168.70.144、192.168.70.188
訪問不同的 ip 請求不同的 html 目錄,即:
訪問 將訪問「html144」目錄下的 html 網頁
訪問 將訪問「html188」目錄下的 html 網頁
2.nginx的虛擬主機配置方式
nginx 支援三種型別的虛擬主機配置
基於 ip 的虛擬主機
基於埠的虛擬主機
基於網域名稱的虛擬主機
2.1基於 ip 的虛擬主機
將動態 ip 修改為靜態 ip
–cd /etc/sysconfig/network-scripts
–vim ifcfg-eth0
2)將/etc/sysconfig/network-scripts/ifcfg-eth0 檔案複製乙份,命名為
ifcfg-eth0:1;
–cp -rf ifcfg-eth0 ifcfg-eth0:1
修改複製後的ifcfg-eth0:1
–vim ifcfg-eht0:1
修改其中內容:
device=eth0:1
ipaddr=192.168.70.188
其他項不用修改
重啟網路
–service network restart
3)修改 nginx 的配置檔案nginx.conf完成基於 ip 的虛擬主機配置
nginx.conf
nginx 對提供 8080 與 9090 兩個埠的監聽服務
請求 8080 埠則訪問 html8080 目錄下的 index.html
請求 9090 埠則訪問 html9090 目錄下的 index.html
修改 nginx 的配置檔案完成基於埠的虛擬主機配置
#乙個 server 就是乙個虛擬主機 基於埠
server
error_page 500 502 503 504 /50x.html;
location = /50x.html
}#乙個 server 就是乙個虛擬主機
server
error_page 500 502 503 504 /50x.html;
location = /50x.html }}
2)重啟nginx
2.3基於網域名稱的虛擬主機
1)需求
兩個網域名稱指向同乙個 nginx 伺服器,使用者訪問不同的網域名稱時顯示不同的內容。
網域名稱規劃:
1, 2, www.itbaizhan.cn
2)修改 windows 的 hosts 檔案配置網域名稱與 ip 的對映
檔案路徑:c:\windows\system32\drivers\etc
五、nginx 中配置服務的反向**
1需求安裝兩個 tomcat 服務,通過 nginx 反向**。
本案例中使用兩台虛擬機器演示。
tomcat 安裝到 192.168.70.143 環境中。埠為 8080 與 9090
nginx 安裝在 192.168.70.144 環境中
2.反向**實現
安裝 2個tomcat
修改其中一台的埠號
vim server.xml(3個都加10)
修改tomcat首頁進行區分 index.jsp
配置nginx的nginx.conf來實現服務的反向**
修改:nginx.conf
upstream tomcat_server1
upstream tomcat_server2
server
error_page 500 502 503 504 /50x.html;
location = /50x.html
}#乙個 server 就是乙個虛擬主機
server
error_page 500 502 503 504 /50x.html;
location = /50x.html }}
測試結果: 跳轉到 ;server 192.168.70.143:8080;(tomcat1)
跳轉到:server 192.168.70.143:9090;(tomcat2)
六、在反向**中配置負載均衡
1.nginx 負載均衡策略
1)輪詢(預設)
每個請求按時間順序逐一分配到不同的後端伺服器,如果後
端伺服器 down 掉,能自動剔除。
2)指定權重
指定輪詢機率,weight 和訪問比率成正比,用於後端伺服器
效能不均的情況。
upstream backserver
error_page 500 502 503 504 /50x.html;
location = /50x.html
}
Nginx 學習筆記
nginx配置proxy pass 的 路徑問題 在nginx中配置proxy pass時,如果是按照 匹配路徑時,要注意proxy pass後的url最後的 當加上了 相當於是絕對根路徑,則nginx不會把location中匹配的路徑部分 走 如果沒有 則會把匹配的路徑部分也給 走。locatio...
Nginx學習筆記
常用命令 啟動 start nginx 或者 nginx.exe 停止 nginx.exe s stop 或者 nginx.exe s quit stop是快速停止nginx,quit是完整有序的停止nginx 重啟 nginx.exe s reload 配置資訊修改使用此命令 配置 1 匹配以ro...
nginx學習筆記
mac os x 10.11.5環境 brew install nginx 即可。預設安裝目錄 usr local etc nginx。可以修改目錄下nginx.conf檔案的配置,將8080改為8081,則通過http localhost 8081訪問就可以看到nginx的歡迎介面了。主程序可以處...