大綱
為了讓大家更快的學會,該部落格中的内容錄制成了視訊課程:馬上線上學習
1.什麼是nginx
Nginx是一款高性能的http 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。
由俄羅斯的程式設計師Igor Sysoev所開發,官方測試nginx能夠支支撐5萬并發連結(tomcat 500),并且cpu、記憶體等資源消耗卻非常低,運作非常穩定。
2.應用場景
1、http伺服器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜态伺服器。
2、虛拟主機。可以實作在一台伺服器虛拟出多個網站。例如個人網站使用的虛拟主機。
3、反向代理,負載均衡。當網站的通路量達到一定程度後,單台伺服器不能滿足使用者的請求時,需要用多台伺服器叢集可以使用nginx做反向代理。
并且多台伺服器可以平均分擔負載,不會因為某台伺服器負載高當機而某台伺服器閑置的情況。
3.nginx安裝\啟動\通路
3.1.安裝環境準備
需要安裝gcc的環境(就如同tomcat要運作需要jdk環境一樣)
gcc環境安裝
sudo apt-get update
sudo apt-get install gcc
安裝完了可以執行
gcc --v
的指令來檢視版本,輸出如下:
安裝Nginx時需要先安裝依賴包
首先使用dpkg指令檢視自己需要的軟體是否安裝。
例如檢視zlib是否安裝:
root@ubuntu:/usr/java/nginx-1.8.0# dpkg -l | grep zlib
解決依賴包openssl安裝,指令:
sudo apt-get install openssl libssl-dev
解決依賴包pcre安裝,指令:
sudo apt-get install libpcre3 libpcre3-dev
解決依賴包zlib安裝,指令:
sudo apt-get install zlib1g-dev
3.2.安裝步驟
下載下傳nginx:
官方網站:
http://nginx.org/
使用的版本是1.8.0版本。
第一步:把nginx-1.8.0.tar.gz上傳到linux系統
第二步:解壓縮
[root@localhost ~]# tar zxf nginx-1.8.0.tar.gz
第三步:使用configure指令建立一makeFile檔案。
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
注意:啟動nginx之前,上邊将臨時檔案目錄指定為/var/temp/nginx,需要在/var下建立temp及nginx目錄
[root@localhost sbin]# mkdir /var/temp/nginx/client -p
第四步:make
第五步:make install
3.3.啟動
進入sbin目錄
root@ubuntu:/usr/local/nginx/sbin# ./nginx
檢查是否啟動:
關閉方式一:nginx:
root@ubuntu:/usr/local/nginx/sbin# ./nginx -s stop
關閉方式二:
root@ubuntu:/usr/local/nginx/sbin# ./nginx -s quit
重新開機nginx:
1、先關閉後啟動。
2、重新整理配置檔案:
root@ubuntu:/usr/local/nginx/sbin# ./nginx -s reload
3.4.通路
192.168.25.106:80
預設是80端口。
注意:是否關閉防火牆。
4.配置虛拟主機
就是在一台伺服器啟動多個網站。
如何區分不同的網站:
1、域名不同
2、端口不同
4.1.通過端口區分不同虛拟主機
Nginx的配置檔案:
/usr/local/nginx/conf/nginx.conf
可以配置多個server,配置了多個虛拟主機。
複制一個目錄: root@ubuntu:/usr/local/nginx# cp html/ html81 -r
添加虛拟主機:
#測試使用81端口,對應的根檔案為:html81
server {
listen 81;
server_name localhost;
location / {
root html81;
index index.html index.htm;
}
}
重新啟動伺服器
root@ubuntu:/usr/local/nginx/sbin# ./nginx -s stop
分别通路80端口和81端口
192.168.25.106:81
4.2.通過域名區分不通虛拟主機
域名就是網站。
www.baidu.com
Dns伺服器:把域名解析為ip位址。儲存的就是域名和ip的映射關系。
一級域名:
Baidu.com
二級域名:
Item.baidu.com
三級域名:
1.Image.baidu.com
一個域名對應一個ip位址,一個ip位址可以被多個域名綁定。
本地測試可以修改hosts檔案。
修改window的hosts檔案:(C:\Windows\System32\drivers\etc)
可以配置域名和ip的映射關系,如果hosts檔案中配置了域名和ip的對應關系,不需要走dns伺服器。
下載下傳小工具:https://pc.qq.com/search.html#!keyword=SwitchHosts
4.3.nginx的域名配置
複制taobao目錄: root@ubuntu:/usr/local/nginx# cp html/ html-taobao -r
複制wfd360目錄: root@ubuntu:/usr/local/nginx# cp html/ html-wfd360 -r
添加如下兩個節點
#測試使用都是用域名配置的80端口 www.taobao.com
server {
listen 80;
server_name www.taobao.com;
location / {
root html-taobao;
index index.html index.htm;
}
}
#測試使用都是用域名配置的80端口 www.wfd360.com
server {
listen 80;
server_name www.wfd360.com;
location / {
root html-wfd360;
index index.html index.htm;
}
}
域名的配置:
192.168.25.128 www.taobao.com
192.168.25.128 www.wfd360.com
5.反向代理
5.1.什麼是反向代理
正向代理
正向代理類似一個跳闆機,代理通路外部資源。
舉個例子:
我是一個使用者,我通路不了某網站,但是我能通路一個代理伺服器,這個代理伺服器呢,他能通路那個我不能通路的網站,于是我先連上代理伺服器,告訴他我需要那個無法通路網站的内容,代理伺服器去取回來,然後傳回給我。從網站的角度,隻在代理伺服器來取内容的時候有一次記錄,有時候并不知道是使用者的請求,也隐藏了使用者的資料,這取決于代理告不告訴網站。
反向代理(Reverse Proxy)
實際運作方式是指以代理伺服器來接受internet上的連接配接請求,然後将請求轉發給内部網絡上的伺服器,并将從伺服器上得到的結果傳回給internet上請求連接配接的用戶端,此時代理伺服器對外就表現為一個伺服器。
5.2.nginx實作反向代理
需求:
兩個域名指向同一台nginx伺服器,使用者通路不同的域名顯示不同的網頁内容。
兩個域名是www.wfd360.com和www.wfd361.com
nginx伺服器使用虛拟機192.168.25.106
第一步:安裝兩個tomcat,分别運作在8180和8280端口。
修改首頁,便于區分
第二步:啟動兩個tomcat。
第三步:反向代理伺服器的配置
#反向代理伺服器的配置
upstream tomcat2 {
server 192.168.25.106:8280;
}
server {
listen 80;
server_name www.wfd362.com;
location / {
# root html-wfd360;
proxy_pass http://tomcat2;
index index.html index.htm;
}
}
upstream tomcat1 {
server 192.168.25.106:8180;
}
server {
listen 80;
server_name www.wfd361.com;
location / {
proxy_pass http://tomcat1;
index index.html index.htm;
}
}
第四步:nginx重新加載配置檔案
第五步:配置域名
在hosts檔案中添加域名和ip的映射關系
192.168.25.106 www.wfd360.com
192.168.25.106 www.wfd361.com
第六步:通路測試
5.3.負載均衡
如果一個服務由多條伺服器提供,需要把負載配置設定到不同的伺服器處理,需要負載均衡。
upstream tomcat2 {
server 192.168.25.106:8180;
server 192.168.25.106:8280;
}
可以根據伺服器的實際情況調整伺服器權重。權重越高配置設定的請求越多,權重越低,請求越少。預設是都是1
upstream tomcat2 {
server 192.168.25.106:8180;
server 192.168.25.106:8280 weight=2;
}
6.課程資料
1.nginx中文手冊:https://www.nginx.cn/nginx-how-to
2.為了讓大家更快的學會,該部落格中的内容錄制成了視訊課程:馬上線上學習
完美!