1. 程式人生 > >Nginx設定虛擬主機,nginx反向代理

Nginx設定虛擬主機,nginx反向代理

Nginx設定虛擬主機

1.Nginx設定虛擬主機有那幾種方式:
基於埠號,域名和 IP地址

基於埠號配置虛擬主機

基於埠號來配置虛擬主機。原理就是Nginx監聽多個埠,根據不同的埠號,來區分不同的網站。
我們有二個位置寫配置檔案一個主檔案 etc/nginx/nginx.conf,一個子資料夾etc/nginx/conf.d/(有個預設的default.conf檔案)
我在子資料夾中重新建立一個 .conf 檔案,名字隨便起。
內容為監聽8001埠:

server{
        listen 8001;
        server_name localhost;
        root /usr/share/nginx/html/html8001;
        index index.html;
}

在建立HTML常用資料夾/usr/share/nginx/html/下,建立html用來瀏覽!而另一個.conf子檔案預設是來監聽80埠的,可根據需求做出修改!

基於IP配置虛擬主機

與埠配置方法一致,配置中用IP地址代替localhost。

server{
        listen 80;
        server_name 你的公網ip地址;
        root /usr/share/nginx/html/html8001;
        index index.html;
}
基於域名配置虛擬主機

域名個人感覺還是很便宜的,最便宜的才幾塊錢,是一年哦!作為程式設計師有自己獨特的域名,不過是學習還是測試都有所幫助,配置.conf檔案:

server{
        listen 80;
        server_name nginx2.ioshan.com;
        location / {
                root /usr/share/nginx/html/html8001;
                index index.html index.htm;
        }
}

用不同的域名指向服務地址的頁面,常用來訪問不同的專案,地址可以根據具體而定, 其中location / 全域性配置訪問地址,詳細頁面的資訊。

Nginx反向代理

反向代理(Reverse Proxy)方式是指以代理伺服器來接受internet上的連線請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時代理伺服器對外就表現為一個反向代理伺服器。

代理就是在Client端和Server端之間增加一個提供特定功能的伺服器

反向代理的用途和好處
  1. 安全性:正向代理的客戶端能夠在隱藏自身資訊的同時訪問任意網站,這個給網路安全代理了極大的威脅。因此,我們必須把伺服器保護起來,使用反向代理客戶端使用者只能通過外來網來訪問代理伺服器,並且使用者並不知道自己訪問的真實伺服器是那一臺,可以很好的提供安全保護。
  2. 功能性:反向代理的主要用途是為多個伺服器提供負債均衡、快取等功能。負載均衡就是一個網站的內容被部署在若干伺服器上,可以把這些機子看成一個叢集,那Nginx可以將接收到的客戶端請求“均勻地”分配到這個叢集中所有的伺服器上,從而實現伺服器壓力的平均分配,也叫負載均衡。
最簡單的反向代理

現在我們要訪問http://nginx2.ioshan.com然後反向代理到ioshan.com這個網站。可以直接到.conf進行修改。

server{
        listen 80;
        server_name nginx2.ioshan.com;
        location / {
               proxy_pass http://ioshan.com;
        }
}

一般我們反向代理的都是一個IP,但是我這裡代理了一個域名也是可以的。其實這時候我們反向代理就算成功了,我們可以在瀏覽器中開啟http://nginx2.ioshan.com來測試一下。文章中的域名都已經別關閉了,只是在寫文章測試用的!

其它反向代理指令
  • proxy_set_header :在將客戶端請求傳送給後端伺服器之前,更改來自客戶端的請求頭資訊。
  • proxy_connect_timeout:配置Nginx與後端代理伺服器嘗試建立連線的超時時間。
  • proxy_read_timeout : 配置Nginx向後端伺服器組發出read請求後,等待相應的超時時間。
  • proxy_send_timeout:配置Nginx向後端伺服器組發出write請求後,等待相應的超時時間。
  • proxy_redirect :用於修改後端伺服器返回的響應頭中的Location和Refresh。

當然還有很多。