Nginx網(wǎng)站服務(wù)詳解
一、基于授權(quán)的訪問控制
1:基于授權(quán)的訪問控制簡介
Nginx 與 Apahce 一樣,可以實現(xiàn)基于用戶授權(quán)的訪問控制,當客戶端想要訪問相應(yīng)網(wǎng)站或者目錄時,要求用戶輸入用戶名和密碼才能正常訪問,配置步驟與 Apache 基本一致。
概括為以下幾個步驟。
- 生成用戶密碼認證文件。
- 修改主配置文件相對應(yīng)目錄,添加認證配置項。
- 重啟服務(wù),訪問測試。
2:基于授權(quán)的訪問控制步驟
(1)使用 htpasswd 生成用戶認證文件
使用 htpasswd 生成用戶認證文件,如果沒有該命令,可使用 yum 安裝 httpd-tools軟件包,用法與 Apache 認證時方式相同,如:htpasswd -c /usr/local/nginx/passwd.db test。在/usr/local/nginx/目錄下生成了 passwd.db 文件,用戶名是 test,密碼輸入 2 次。在passwd.db 中生成用戶和密碼的密文。


(2)修改密碼文件權(quán)限為 400,將所有者改為 nginx,設(shè)置 Nginx 的運行用戶能夠讀取

(3)修改主配置文件 nginx.conf,添加相應(yīng)認證配置項


(4)檢測語法、重啟服務(wù)

(5)用瀏覽器訪問網(wǎng)址,檢驗控制效果

二、基于客戶端的訪問控制
1:基于客戶端的訪問控制簡介
基于客戶端的訪問控制是通過客戶端 IP 地址,決定是否允許對頁面訪問。
Nginx 基于客戶端的訪問控制要比 Apache 簡單,規(guī)則如下:
- deny IP/IP段:拒絕某個IP或IP段的客戶端訪問。
- allow IP/IP段:允許某個IP或IP段的客戶端訪問。
- 規(guī)則從上往下執(zhí)行,如匹配則停止,不再往下匹配
2:基于客戶端的訪問控制步驟
(1)修改主配置文件 nginx.conf,添加相應(yīng)配置項

三、Nginx 虛擬主機
利用虛擬主機,不用為每個要運行的網(wǎng)站提供一臺單獨的 Nginx 服務(wù)器或單獨運行一組 Nginx 進程,虛擬主機提供了在同一臺服務(wù)器,同一組 Nginx 進程上運行多個網(wǎng)站的功能。跟 Apache 一樣,Nginx 也可以配置多種類型的虛擬主機,分別是基于 IP 的虛擬主機、基于域名的虛擬主機、基于端口的虛擬主機
使用 Nginx 搭建虛擬主機服務(wù)器時,每個虛擬 Web 站點擁有獨立的“server{}”配置段,各自監(jiān)聽的 IP 地址、端口號可以單獨指定,當然網(wǎng)站名稱也是不同的。
1:基于域名的虛擬主機
(1)設(shè)置客戶端域名解析
修改hosts 文件,加入www.benet.com 和 www.accp.com 這兩個域名


(2)準備各個網(wǎng)站的目錄和測試首頁

(3)修改配置文件




(4)測試

2:基于 IP 的虛擬主機
一臺主機如果有多個 IP 地址,可以設(shè)置每一個 IP 對應(yīng)一個站點。主機安裝多個網(wǎng)卡可以有多個 IP,這里采用虛擬 IP 的方式使主機有多個 IP。
(1)為服務(wù)器設(shè)置多個IP地址




nmcli是NetworkManager的命令行工具,用于管理Linux系統(tǒng)中的網(wǎng)絡(luò)連接

(2)修改 Nginx的配置文件,使基于 IP 的虛擬主機生效




(3)訪問兩個IP網(wǎng)站,測試頁面是否生效

3:基于端口的虛擬主機
(1)選擇系統(tǒng)中不使用的端口,多個端口映射到同一 IP 地址



(2)檢測端口是否運行正常

(3)分別訪問 2 個端口地址

四、LNMP 架構(gòu)部署及應(yīng)用
眾所周知,LAMP 平臺是目前應(yīng)用最為廣泛的網(wǎng)站服務(wù)器架構(gòu),其中“A”對應(yīng)著 Web 服務(wù)軟件 Apache。隨著 Nginx 在企業(yè)中的使用越來越多,LNMP(或 LEMP)架構(gòu)也越老越受到企業(yè)的青睞。
1:編譯安裝 Mariadb服務(wù)
把數(shù)據(jù)庫安裝到第二臺服務(wù)器192.168.10.102中

開啟MySQL

給mysql密碼(默認沒密碼)

進入mysql

給root用戶提權(quán)為后續(xù)連接php做鋪墊
刷新策略

2:安裝 PHP 解析環(huán)境
(1)編譯安裝 PHP

備注:
libxml2-devel:libxml是一個用來解析XML文檔的函數(shù)庫
libjpeg-devel #是一個完全用C語言編寫的庫,包含了被廣泛使用的JPEG解碼、JPEG編碼和其他的JPEG功能的實現(xiàn)
libpng-devel #libpng 是一套免費的、公開源代碼的程序庫,支持對 PNG 圖形文件的創(chuàng)建、讀寫等操作
GD指的是Graphic Device,PHP的GD庫是用來處理圖形的擴展庫,通過GD庫提供的一系列API,可以對圖像進行處理或者直接生成新的圖片。PHP除了能進行文本處理以外,通過GD庫,可以對JPG、PNG、GIF、SWF等圖片進行處理
zlib-devel #Zlib是一個壓縮和解壓模塊

編譯php

注意:
–with-mysqli=mysqlnd需要用ip地址的方式連接數(shù)據(jù)庫,既可以是php和mysql裝在同一個服務(wù)器,也可以裝在不同的服務(wù)器。用127.0.0.1本地連接不需要為連接授權(quán),用192.168.10.101連接需要授權(quán),哪怕連接本地數(shù)據(jù)庫。
–with-mysqli=/usr/bin/mysql_config需要用localhost連接數(shù)據(jù)庫,只能用于本地連接,也就是php和mysql裝在同一個服務(wù)器上

(2)安裝后調(diào)整

(3)安裝 ZendGuardLoader



3:配置 Nginx 支持 PHP 環(huán)境
(1)啟用 php-fpm 進程





(2)配置 Nginx 支持 PHP 解析
調(diào)用本機的 php-fpm 進程



(3)PHP 頁面訪問測試




關(guān)MySQL防火墻

4.在 LNMP 平臺中部署 Web 應(yīng)用
(1):下載并部署程序代碼




(2):創(chuàng)建數(shù)據(jù)庫

(3):安裝 Web 應(yīng)用
訪問服務(wù)器 URL 地址,對網(wǎng)站進行初始化
http://192.168.10.101/bbs/install/index.php

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
生產(chǎn)環(huán)境之Nginx高可用方案實現(xiàn)過程解析
這篇文章主要介紹了生產(chǎn)環(huán)境之Nginx高可用方案實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
利用Nginx反向代理功能解決WEB網(wǎng)站80端口被封的解決方法
大陸的網(wǎng)絡(luò)環(huán)境,都在天朝神獸的制度下讓我等小P民悲劇一片;動不動就拔網(wǎng)線、封機房;現(xiàn)在更厲害的一招,從網(wǎng)關(guān)封殺你的80端口,一旦被封,網(wǎng)站域名就無法訪問2012-08-08

