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


前言

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

NGINX

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

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

反向代理

反向代理代理的是服務器

就好比當前這幅圖的情況下,用戶的瀏覽器訪問域名為http://abc.com 其實這個域名下存在兩個子域名的服務,blog.abc.com可以用來做博客服務,而file.abc.com 可以用來做測試文件服務,用於保存上傳的文件,這里我們單單用了一個Nginx 即可實現一個域名下多個二級域名的訪問形式。

正向代理

正向代理代理的是用戶端
image.png

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

安裝Nginx 服務器

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

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

RPM 內容介紹

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

源碼包

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

二進制包

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

RPM包統一命名格式

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

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

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

image.png
這里引用參考:http://c.biancheng.net/view/2868.html
至於自己的電腦版本如何查看,請用

uname -a

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

RPM包安裝升級

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

  • /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

image.png

# 啟動nginx
systemctl start nginx.service

# 開機啟動
systemctl enable nginx.service

# 查看端口運行情況
netstat -nltp

image.png

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

外部訪問嘗試

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

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

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

image.png

配置Nginx

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

192.168.0.120 abc.com

新建配置文件

nginx 的配置文件我們可以通過service 查看到其位置。因為這個是默認的配置文件,我們一般不做修改,而是再/conf.d/下新建一個.conf后綴的文件在進行修改並配置我們的邏輯。

image.png

# 復制一個默認的配置文件進行修改
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與之的配合如何實現服務的啟動。以及服務配置開機啟動等。

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM