1. 程式人生 > >Linux 學習筆記 6 搭建nginx 實現二級域名訪問

Linux 學習筆記 6 搭建nginx 實現二級域名訪問

前言

在前一節的內容裡面,我們學習瞭如何使用yum 包管理工具來安裝我們需要的軟體,這節內容,通過搭建Nginx 反向代理伺服器,以及學習服務的配置等內容。

NGINX

Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,在BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力在同類型的網頁伺服器中表現較好。

後端用的最多的地方就是:反向代理,那何謂反向代理,何謂正向代理呢?

反向代理

反向代理代理的是伺服器

就好比當前這幅圖的情況下,使用者的瀏覽器訪問域名為http://abc.com 其實這個域名下存在兩個子域名的服務,blog.abc.com可以用來做部落格服務,而file.abc.com 可以用來做測試檔案服務,用於儲存上傳的檔案,這裡我們單單用了一個Nginx 即可實現一個域名下多個二級域名的訪問形式。

正向代理

正向代理代理的是使用者端

簡單的瞭解一下正向代理,其實在對外的過程中,我們需要用一個正向代理的伺服器來隱藏訪問者本身,這就代理了使用者的客戶端,對於最終的伺服器而言,它只知道一個總的伺服器來訪問它,不知道這個伺服器下面的客戶端,和我們搭梯子掛VP* 其實是一個道理。

安裝Nginx 伺服器

在當前源下面,Nginx 的安裝包只有一個,這不滿足我們的需求,我們需要去官網找尋對應的RPM 包,手動加入其依賴項。
NGinx package


找到其對應的Centos 版本,我們選擇Centos 後選擇7版本,因為我們安裝的就是Centos7,而後就會遇到選擇如下的內容,就會比較懵逼,這咋選?

RPM 內容介紹

上面學習的內容涉及到RPM包管理的內容。這裡做一個簡單的瞭解和學習。比如Windows 大家都知道Windows的安裝包都是EXE 結尾的可執行檔案。那linux 也有自己的安裝包軟體。這裡首先從Linux的包管理型別入手:

原始碼包

原始碼包,字面意思就是開發人員寫完的程式碼包,不能直接執行,因為電腦是不認識程式語言的,需要將程式語言編譯成電腦認識的二進位制才可以執行。所以原始碼包需要編譯後才可進行安裝使用。新手不建議使用這個。

二進位制包

二進位制包就是原始碼包進行編譯後的內容。可以拿過來直接使用。我們需要的就是這個包,二進位制包大多使用tar.gz 格式進行解壓後可以直接使用。

RPM包統一命名格式

當我們檢視一款RPM 包的時候,免不了感覺一大堆的東西,很不易瞭解。我就拿一個例子來說明:

在阿里雲等倉庫搜尋這個包的時候,在名稱上出現很多的字元

  • 這裡的包名稱:pcp-pmda-nginx
  • 3.10.9 軟體包版本號
  • el6 發行版本號,就意思是編譯(釋出)了6個版本
  • i686 以上平臺架構


這裡引用參考:http://c.biancheng.net/view/2868.html
至於自己的電腦版本如何檢視,請用

uname -a

學習到了以上知識,我知道其實我們已經可以選擇自己需要的包了。

RPM包安裝升級

一般我們通過下載後得到RPM的安裝包,就可以進行安裝了。一般在Linux 裡面不需要指定軟體的安裝路徑,其都是統一規劃好的,我們只需要知道我們的配置檔案在哪兒以及軟體的執行目錄,搭配whereis xxx 命令進行查詢,就可以了。

  • /usr/bin 命令目錄
  • /usr/lib/ 相關庫的位置
  • /etc/ 配置檔案放置
  • /usr/share/man/ 幫助檔案位置

RPM包安裝

對於RPM包的安裝,一定要是包全名,就是必須是有名稱、版本號、發行版、等等

rpm -ivh nginx16-nginx-1.6.2-3.el6.x86_64.rpm
  • 選項i (install)安裝
  • v 詳細顯示資訊
  • h 列印內容

RPM包升級(常用)

rpm -Uvh nginx16-nginx-1.6.2-3.el6.x86_64.rpm
  • U U選項表示沒有安裝過這個包則直接安裝,安裝過則直接升級至最新版本。

開始安裝RPM包

首選從官網複製連結後下載,或者下載後上傳到伺服器,都是一樣的,按照個人習慣。

curl -O http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm
rpm -Uvh nginx-1.10.0-1.el7.ngx.x86_64.rpm

# 啟動nginx
systemctl start nginx.service

# 開機啟動
systemctl enable nginx.service

# 檢視埠執行情況
netstat -nltp

若這裡沒有netstat命令,請搜尋安裝 yum install net-tools.x86_64

外部訪問嘗試

這時候我們的Linux 是部署在虛擬機器上的,通過橋接的方式訪問。關閉防火牆,不然訪問不到。

# 關閉防火牆服務
systemctl stop firewalld.service

# 永久停止防火牆
systemctl disable firewalld.service

配置Nginx

配置NGinx 可真的是一門功課。此時我們的伺服器已經可以正常啟動了。我們需要配置才可以玩起來。首先就學習配置一個二級域名來使用。這裡我們用的是本機虛擬機器進行訪問的,我們修改host檔案的方式讓我們的虛擬機器擁有一個域名。假設這個域名就是http://abc.com

192.168.0.120 abc.com

新建配置檔案

nginx 的配置檔案我們可以通過service 檢視到其位置。因為這個是預設的配置檔案,我們一般不做修改,而是再/conf.d/下新建一個.conf字尾的檔案在進行修改並配置我們的邏輯。

# 複製一個預設的配置檔案進行修改
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/mynginx.conf

# 修改配置檔案
vi /etc/nginx/conf.d/mynginx.conf
server {
    listen       80;
    server_name  blog.abc.com;

    location / {
        proxy_pass   http://127.0.0.1:8080;
    }
    ### 省略其他   
}

server_name 修改為我們的二級域名xxx.abc.com;
proxy_pass 的地址就是我們要反向代理的地址。

測試效果

這裡因為轉發了一個8090的埠,我們可以將上一個節內容的tomcat 進行修改埠後啟動起來充當這個伺服器。

# 檢查配置檔案
nginx -t

# 過載配置資訊
nginx -s reload

啟動tomcat

# 進入tomcat 目錄
cd /root/apache-tomcat-8.5.50/bin/

# 啟動tomcat
./startup.sh

小結

學到這裡呢,我們已經學會了在nginx上如何使用tomct 的啟動,以及學會使用RPM 安裝包進行軟體的安裝,以及學會簡單的二級域名的配置。還是學到了很多實用的東西,非常nice

下節預告

下一節將學習service命令以及systemctl與之的配合如何實現服務的啟動。以及服務配置開機啟動等。

參考

  • 虛擬機器關閉防火牆:https://www.cnblogs.com/aprilwang/p/10954928.html
  • RPM 安裝命令 http://c.biancheng.net/view/2872.html
  • aliyun 倉庫 https://developer.aliyun.com/packageSearch?word=nginx