Nginx詳解+身份驗證+虛擬主機+反向代理負載均衡


一、差異對比

Apache Nginx
配置相對復雜 配置相對簡單
原生支持動態和靜態頁面 支持靜態頁面
模塊相對安全 高性能模塊出產迅速、社區活躍
BUG相對較少,消耗資源較多 BUG相對較多,節省資源
對加密支持較好 對反向代理支持較好
同步阻塞型應用 異步非阻塞型應用

運用的函數:select 運用的函數:epoll

源碼包nginx的配置文件位置/usr/local/nginx/conf/nginx.conf

二、配置文件詳解

丄指定運行的身份是誰

丄指定同時有幾個子進程運行,同時可以處理幾個任務,cpu的一個線程,就代表可以同時處理一個任務。

丄日志已經pid(進程號)

丄每個進程可以支持多少連接

mime.types文件中指定哪種格式的文件交給那個模塊處理(和apache一樣)

丄開啟高效文件傳輸(默認開啟有可能導致圖片顯示不出來)

丄開啟高效文件傳輸(默認開啟有可能導致圖片顯示不出來)

丄定義每個分發路徑的區域 端口和域名。

1,定義網頁分發根目錄所在位置2,定義索引文件

丄定義了報錯404時使用的頁面的位置

丄定了這些錯誤碼去哪里引用

丄如果網頁分發根目錄下有.php結尾的文件就交給本地端口9000去處理,處理完請求后交給nginx去返回請求

 

三、單個Nginx 的安裝
yum -y install gcc*
yum -y install pcre pcre-devel zlib zlib-devel openssl-devel openssl
useradd -M -s /sbin/nologin nginx
解壓軟件包 nginx
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
make
make install

 

useradd -M -s /sbin/nologin nginx
添加監控模塊
vi /usr/local/nginx/conf/nginx.conf
location /abc {
stub_status on;
}

 

保存退出,重啟服務。

訪問前面指定的abc目錄

 

1,當前有4個鏈接,2,第一,請求的次數,第二,響應的次數,第三,返回的請求的次數3,請求中的信息,返回的信息,正在等待的請求。

四、 Nginx實驗

1Nginx 身份驗證

a、基於用戶名密碼

vi /usr/local/nginx/conf/nginx.conf
location /abc {#為上面的狀態統計做加密
stub_status on;#開啟
auth_basic "Welcome to nginx!";#歡迎信息
auth_basic_user_file /usr/local/nginx/html/a.psd;#信息的文件所在位置
}
htpasswd -c /usr/local/nginx/html/a.psd zhangsan#htpasswdapache的命令,所以需要安裝apache,通過這個命令生成指定哪個用戶可以訪問。
htpasswd -m/usr/local/nginx/html/a.psd lisi

修改配置文件

保存退出,創建密碼文件htpasswd -c /usr/local/nginx/html/a.psd zhangsan

 

重啟nginx -t檢查配置文件語法

 

再次訪問abc監控文件測試

 

輸入zhangsan密碼123登陸

b、基於IP限制訪問

實驗環境nginx服務器64,客戶端76
vi /usr/local/nginx/conf/nginx.conf
location /abc {
stub_status on;
auth_basic "Welcome to nginx!";
auth_basic_user_file /usr/local/nginx/html/a.psd;
allow 192.168.116.64;     

deny 192.168.116.0/24;     允許64拒絕116網段,拒絕所有 0.0.0.0

}

更改后如下

;保存退出重啟服務。

64訪問。

其他人訪問。

c、虛擬主機

實驗環境:64服務器,73客戶端
vi /usr/local/nginx/conf/nginx.conf
復制 server{} 區域,不同的 server區域則是不同的虛擬主機,同 apache 擁有基於域名端口的虛擬
主機

刪掉配置文件里server區的模板和注釋后復制server

基於端口不同。修改兩者的不同,端口和家目錄

創建目錄,和網頁文件

重啟服務

訪問80端口

訪問8080端口

基於域名不同。端口相同修改域名。

在客戶端映射文件中寫入ip域名對應關系。

分別訪問測試

dNginx的反向代理功能
說明:反向代理的實現過程是,當客戶端訪問請求道 nginx 服務器是,nginx充當客戶端去真正的服務端去
數據,返回給client端,這個過程稱之為反向代理
實驗環境說明:192.168.116.73安裝了lamp環境,192.168.116.64安裝了 nginx 程序,實現 nginx 完全的反
向代理 lamp

73,啟動apache服務,到網頁分發目錄下創建index.html文件寫入test用於測試

64,修改nginx的配置文件

 修改server區的location區刪除路徑和格式兩行,添加proxy_pass   http://192.168.116.7380;

、在 / 的區域內設置反向代理

location / {

proxy_pass   http//dudu.com

}

保存,重啟服務

訪問,反向代理nginx服務器

e、負載調度的用法

upstream:可以進行一些簡單的負載 應用層可以跨平台。

rr輪詢機制算法。收到的請求在每個服務器之間切換。

hash,某個ip斷開后下次仍然可以訪問用一個服務器。

實驗環境:64nginx反向代理服務器 ,73,和75,做apache服務器或lamp

、在server區域外創建一個 upstream 區域,此區域中編寫的內容為負載群

upstream dudu.com {
ip_hash; #指定算法
#調度算法,默認 rr 輪訓,hash常用語解決session共享的問題
server 192.168.116.73:80 weight 1; #指定后端服務器server 192.168.116.75:80 weight 1;
server 192.168.116.xx:80 weight 1 backup;
#backup 表示機器處於熱備狀態,weight代表權重(可以不寫),權重越高代表使用越多
}

退出,重啟服務

76客戶端訪問測試

刷新

使用hash算法

重啟服務

測試

刷新不變

 


免責聲明!

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



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