前言
在前一節的內容里面,我們學習了如何使用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與之的配合如何實現服務的啟動。以及服務配置開機啟動等。