Nginx的安裝和多域名配置

zacklee發表於2019-02-16

centos6.x yum預設沒有nginx的軟體包 安裝方式: 到nginx下載頁面http://nginx.org/en/linux_packages.html#stable,複製CENTOS 6的nginx軟體源安裝包 執行命令:

Nginx的安裝和多域名配置
安裝rpm包

Nginx的安裝和多域名配置
此步實際只是加入了nginx的軟體包源

執行 yum install nginx -y 就可以安裝好nginx了。

nginx預設安裝為Linux的服務 ,所以可以使用service nginx start, stop, restart, try-restart, reload, force-reload, status來操作nginx。 Nginx配置檔案

nginx的配置檔案預設讀取/etc/nginx/nginx.conf檔案。

當然也可以修改使用的conf路徑,使用命令:

Nginx的安裝和多域名配置
可以相對路徑或者絕對路徑。 如果是不熟悉環境的Linux伺服器,可以使用命令來快速查詢nginx.conf檔案 :

Nginx的安裝和多域名配置
也可以使用命令

Nginx的安裝和多域名配置
來輸出正在使用的配置檔案:

Nginx的安裝和多域名配置
nginx的配置都是由 directives組成,directives由簡單指令或者區塊指令組成 簡單指令:listen 80; 區塊指令由{}包含,區塊指令又可以包含多個簡單指令和區塊指令:

Nginx的安裝和多域名配置
多域名配置 我們都知道如果在域名管理的控制皮膚設定域名對應ip只能設定到ip,不能詳細設定到埠。如果一臺伺服器部署了多個web應用,使用的不同埠啟動的,那麼就可以Nginx做對映。

比如我有一個域名 www.525.life。

域名還可以分出2級域名: admin.525.life。

我在域名控制皮膚把這兩個域名都指向我的伺服器公網ip 123.123.123.123。

這時候發現www.525.life和admin.525.life域名訪問都只是對應到了 使用埠80的Web程式(預設的)。

如果我們要訪問81埠的應用程式只能使用:

www.525.life:81或者

admin.525.life:81。

但是這樣很不方便。我們要把埠去掉也能訪問就需要使用Nginx做對映。

我們期望www.525.life訪問8880埠,admin.525.life訪問8881埠。那麼可以設定如下:

Nginx的安裝和多域名配置
這樣設定就可以了。把8880和8881都對映到80埠的監聽。

使用過載命令使nginx生效:

Nginx的安裝和多域名配置
使用命令重啟nginx生效:

Nginx的安裝和多域名配置
這樣就能使用www.525.life訪問8880埠,admin.525.life訪問8881埠。

每個域名一個conf的寫法

我們在上面的例子中使用的是一個檔案多個域名的寫法,也就是隻使用一個conf,在裡面不斷的增加server。這種方式很直觀,但是域名多了不好管理。 Nginx支援引入的用法,也就是我們可以在其他地方先新建好conf檔案,conf檔案中記錄server的資訊如下: admin.conf中的內容是:

Nginx的安裝和多域名配置
www.conf中的內容是:

Nginx的安裝和多域名配置
admin.conf和www.conf都放在/data/nginx/conf/vhost目錄下。 然後在nginx.conf中使用引入命令:

Nginx的安裝和多域名配置
即可。 需要注意的是這句命令應該放在 http{ } 的花括號內。 因為include的命令引入相當於被引入的所有程式碼寫在nginx.conf中一樣。

301跳轉

我們留意到生活中很多時候不帶www也能訪問到某個網站,這也能通過Nginx實現。跟上面的配置一樣,再增加一個server如下:

Nginx的安裝和多域名配置
或者進行301跳轉

Nginx的安裝和多域名配置
新增404網頁 新增404網頁,都可又直接在裡面新增,如:

Nginx的安裝和多域名配置
禁止IP直接訪問 最後還有一個方法需要注意,可能有需要禁止IP直接訪問80埠或者禁止非本站的域名繫結我們的IP,這樣的話應該 如下處理,放到最前一個server上面即可:

Nginx的安裝和多域名配置

加Java架構師群獲取Java工程化、高效能及分散式、高效能、深入淺出。高架構。效能調優、Spring,MyBatis,Netty原始碼分析和大資料等多個知識點高階進階乾貨的直播免費學習許可權 都是大牛帶飛 讓你少走很多的彎路的 群..號是:855801563 對了 小白勿進 最好是有開發經驗的哦~

相關文章