1. 程式人生 > >Nginx學習筆記03虛擬機與代理

Nginx學習筆記03虛擬機與代理

listen 服務器 htm tomcat 返回 conf 首頁 cati family

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;

}

}

運行測試:

tomcat101atomcat101b服務器上的首頁內容重點是:顯示一行文字:

host:tomcat server atomcat server b

顯示test.jpg圖片。

圖片中顯示的是一行類似的文字。

(1)單獨訪問tomcat101a服務器。

技術分享

(2)單獨訪問tomcat101b服務器:

技術分享

(3)使用Nginx訪問:

技術分享

從上述結果可以看到,nginx成功的將test.jpg圖片請求轉接到了tomcat101b.coe2coe.me服務器上,而將/hello/應用其它頁面轉接到了tomcat101a.coe2coe.me服務器上了。這說明nginx的代理功能的基本配置成功。

Nginx學習筆記03虛擬機與代理