Nginx學習筆記03虛擬機與代理
1.1. 虛擬機
使用Nginx的配置文件中的server結點,可以很方便的在一個nginx實例中支持多個虛擬機。
前提條件:主機有多個域名。
本次試驗中用到的主機192.168.197.101有三個域名:
ng.coe2coe.me
計劃指向的網站目錄為nginx目錄下的html目錄
ng101a.coe2coe.me
計劃指向的網站目錄為nginx目錄下的host目錄下的ng101a.coe2coe.me目錄。
首頁內容中含有主機名稱ng101a.coe2coe.me。
ng101b.coe2coe.me
計劃指向的網站目錄為nginx目錄下的host目錄下的ng101b.coe2coe.me
首頁內容中含有主機名稱ng101b.coe2coe.me。
nginx.conf配置如下:
server {
listen 8000;
server_name ng.coe2coe.me;
location / {
root html;
index index.html;
}
}
server {
listen 8000;
server_name ng101a.coe2coe.me;
location / {
root host/ng101a.coe2coe.me;
index index.html;
}
}
server {
listen 8000;
server_name ng101b.coe2coe.me;
location / {
root host/ng101b.coe2coe.me;
}
執行nginx -s reload後進行測試:
ng.coe2coe.me:
ng101a.coe2coe.me:
ng101b.coe2coe.me:
1.2. 代理
在location結點使用proxy_pass配置項可以將訪問nginx服務器的http請求轉接到其它http服務器並將該服務器的相應結果返回給瀏覽器。
以下配置中,將訪問.jpg圖片的請求轉發到tomcat101b.coe2coe.me服務器,將/hello/開頭的請求轉發到tomcat101a.coe2coe.me服務器。二者皆為tomcat服務器。
server {
listen 8000;
server_name ng.coe2coe.me;
location / {
root html;
index index.html;
}
location ~ \.jpg$ {
proxy_pass http://tomcat101b.coe2coe.me:8081;
}
location ~ ^/hello/ {
index index.jsp;
proxy_pass http://tomcat101a.coe2coe.me:8080;
}
}
運行測試:
tomcat101a和tomcat101b服務器上的首頁內容重點是:顯示一行文字:
host:tomcat server a或tomcat server b。
顯示test.jpg圖片。
圖片中顯示的是一行類似的文字。
(1)單獨訪問tomcat101a服務器。
(2)單獨訪問tomcat101b服務器:
(3)使用Nginx訪問:
從上述結果可以看到,nginx成功的將test.jpg圖片請求轉接到了tomcat101b.coe2coe.me服務器上,而將/hello/應用其它頁面轉接到了tomcat101a.coe2coe.me服務器上了。這說明nginx的代理功能的基本配置成功。
Nginx學習筆記03虛擬機與代理