Nginx網(wǎng)站服務(wù)詳解
一、基于授權(quán)的訪問控制
1:基于授權(quán)的訪問控制簡介
Nginx 與 Apahce 一樣,可以實現(xiàn)基于用戶授權(quán)的訪問控制,當(dāng)客戶端想要訪問相應(yīng)網(wǎng)站或者目錄時,要求用戶輸入用戶名和密碼才能正常訪問,配置步驟與 Apache 基本一致。
概括為以下幾個步驟。
- 生成用戶密碼認(rèn)證文件。
- 修改主配置文件相對應(yīng)目錄,添加認(rèn)證配置項。
- 重啟服務(wù),訪問測試。
2:基于授權(quán)的訪問控制步驟
(1)使用 htpasswd 生成用戶認(rèn)證文件
使用 htpasswd 生成用戶認(rèn)證文件,如果沒有該命令,可使用 yum 安裝 httpd-tools軟件包,用法與 Apache 認(rèn)證時方式相同,如:htpasswd -c /usr/local/nginx/passwd.db test。在/usr/local/nginx/目錄下生成了 passwd.db 文件,用戶名是 test,密碼輸入 2 次。在passwd.db 中生成用戶和密碼的密文。
(2)修改密碼文件權(quán)限為 400,將所有者改為 nginx,設(shè)置 Nginx 的運(yùn)行用戶能夠讀取
(3)修改主配置文件 nginx.conf,添加相應(yīng)認(rèn)證配置項
(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 虛擬主機(jī)
利用虛擬主機(jī),不用為每個要運(yùn)行的網(wǎng)站提供一臺單獨(dú)的 Nginx 服務(wù)器或單獨(dú)運(yùn)行一組 Nginx 進(jìn)程,虛擬主機(jī)提供了在同一臺服務(wù)器,同一組 Nginx 進(jìn)程上運(yùn)行多個網(wǎng)站的功能。跟 Apache 一樣,Nginx 也可以配置多種類型的虛擬主機(jī),分別是基于 IP 的虛擬主機(jī)、基于域名的虛擬主機(jī)、基于端口的虛擬主機(jī)
使用 Nginx 搭建虛擬主機(jī)服務(wù)器時,每個虛擬 Web 站點(diǎn)擁有獨(dú)立的“server{}”配置段,各自監(jiān)聽的 IP 地址、端口號可以單獨(dú)指定,當(dāng)然網(wǎng)站名稱也是不同的。
1:基于域名的虛擬主機(jī)
(1)設(shè)置客戶端域名解析
修改hosts 文件,加入www.benet.com 和 www.accp.com 這兩個域名
(2)準(zhǔn)備各個網(wǎng)站的目錄和測試首頁
(3)修改配置文件
(4)測試
2:基于 IP 的虛擬主機(jī)
一臺主機(jī)如果有多個 IP 地址,可以設(shè)置每一個 IP 對應(yīng)一個站點(diǎn)。主機(jī)安裝多個網(wǎng)卡可以有多個 IP,這里采用虛擬 IP 的方式使主機(jī)有多個 IP。
(1)為服務(wù)器設(shè)置多個IP地址
nmcli是NetworkManager的命令行工具,用于管理Linux系統(tǒng)中的網(wǎng)絡(luò)連接
(2)修改 Nginx的配置文件,使基于 IP 的虛擬主機(jī)生效
(3)訪問兩個IP網(wǎng)站,測試頁面是否生效
3:基于端口的虛擬主機(jī)
(1)選擇系統(tǒng)中不使用的端口,多個端口映射到同一 IP 地址
(2)檢測端口是否運(yùn)行正常
(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密碼(默認(rèn)沒密碼)
進(jìn)入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 是一套免費(fèi)的、公開源代碼的程序庫,支持對 PNG 圖形文件的創(chuàng)建、讀寫等操作
GD指的是Graphic Device,PHP的GD庫是用來處理圖形的擴(kuò)展庫,通過GD庫提供的一系列API,可以對圖像進(jìn)行處理或者直接生成新的圖片。PHP除了能進(jìn)行文本處理以外,通過GD庫,可以對JPG、PNG、GIF、SWF等圖片進(jìn)行處理
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 進(jìn)程
(2)配置 Nginx 支持 PHP 解析
調(diào)用本機(jī)的 php-fpm 進(jìn)程
(3)PHP 頁面訪問測試
關(guān)MySQL防火墻
4.在 LNMP 平臺中部署 Web 應(yīng)用
(1):下載并部署程序代碼
(2):創(chuàng)建數(shù)據(jù)庫
(3):安裝 Web 應(yīng)用
訪問服務(wù)器 URL 地址,對網(wǎng)站進(jìn)行初始化
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)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08基于Nginx實現(xiàn)灰度發(fā)布的詳細(xì)流程
灰度發(fā)布系統(tǒng)的核心是將用戶流量分成不同部分,一部分用戶使用新版本,而另一部分用戶繼續(xù)使用舊版本,其灰度發(fā)布通常是通過 Nginx 實現(xiàn)的,所以本文給大家介紹了基于Nginx實現(xiàn)灰度發(fā)布的詳細(xì)流程,需要的朋友可以參考下2024-05-05利用Nginx反向代理功能解決WEB網(wǎng)站80端口被封的解決方法
大陸的網(wǎng)絡(luò)環(huán)境,都在天朝神獸的制度下讓我等小P民悲劇一片;動不動就拔網(wǎng)線、封機(jī)房;現(xiàn)在更厲害的一招,從網(wǎng)關(guān)封殺你的80端口,一旦被封,網(wǎng)站域名就無法訪問2012-08-08Nginx中虛擬主機(jī)與指定訪問路徑的設(shè)置方法講解
這篇文章主要介紹了Nginx中虛擬主機(jī)與指定訪問路徑的設(shè)置方法講解,也是在同一個Nginx程序中部署多個站點(diǎn)的基本方法,需要的朋友可以參考下2016-03-03