Nginx網(wǎng)站服務(wù)詳解
一、基于授權(quán)的訪問(wèn)控制
1:基于授權(quán)的訪問(wèn)控制簡(jiǎn)介
Nginx 與 Apahce 一樣,可以實(shí)現(xiàn)基于用戶授權(quán)的訪問(wèn)控制,當(dāng)客戶端想要訪問(wèn)相應(yīng)網(wǎng)站或者目錄時(shí),要求用戶輸入用戶名和密碼才能正常訪問(wèn),配置步驟與 Apache 基本一致。
概括為以下幾個(gè)步驟。
- 生成用戶密碼認(rèn)證文件。
- 修改主配置文件相對(duì)應(yīng)目錄,添加認(rèn)證配置項(xiàng)。
- 重啟服務(wù),訪問(wèn)測(cè)試。
2:基于授權(quán)的訪問(wèn)控制步驟
(1)使用 htpasswd 生成用戶認(rèn)證文件
使用 htpasswd 生成用戶認(rèn)證文件,如果沒(méi)有該命令,可使用 yum 安裝 httpd-tools軟件包,用法與 Apache 認(rèn)證時(shí)方式相同,如: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)證配置項(xiàng)


(4)檢測(cè)語(yǔ)法、重啟服務(wù)

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

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

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


(2)準(zhǔn)備各個(gè)網(wǎng)站的目錄和測(cè)試首頁(yè)

(3)修改配置文件




(4)測(cè)試

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




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

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




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

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



(2)檢測(cè)端口是否運(yùn)行正常

(3)分別訪問(wèn) 2 個(gè)端口地址

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

開(kāi)啟MySQL

給mysql密碼(默認(rèn)沒(méi)密碼)

進(jìn)入mysql

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

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

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

編譯php

注意:
–with-mysqli=mysqlnd需要用ip地址的方式連接數(shù)據(jù)庫(kù),既可以是php和mysql裝在同一個(gè)服務(wù)器,也可以裝在不同的服務(wù)器。用127.0.0.1本地連接不需要為連接授權(quán),用192.168.10.101連接需要授權(quán),哪怕連接本地?cái)?shù)據(jù)庫(kù)。
–with-mysqli=/usr/bin/mysql_config需要用localhost連接數(shù)據(jù)庫(kù),只能用于本地連接,也就是php和mysql裝在同一個(gè)服務(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 頁(yè)面訪問(wèn)測(cè)試




關(guān)MySQL防火墻

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




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

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

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
nginx代理postgresql的實(shí)現(xiàn)示例
本文主要介紹了nginx代理postgresql的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-10-10
一個(gè)Nginx實(shí)現(xiàn)部署多個(gè)不同的項(xiàng)目方式
這篇文章主要介紹了一個(gè)Nginx實(shí)現(xiàn)部署多個(gè)不同的項(xiàng)目方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
生產(chǎn)環(huán)境之Nginx高可用方案實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了生產(chǎn)環(huán)境之Nginx高可用方案實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
基于Nginx實(shí)現(xiàn)灰度發(fā)布的詳細(xì)流程
灰度發(fā)布系統(tǒng)的核心是將用戶流量分成不同部分,一部分用戶使用新版本,而另一部分用戶繼續(xù)使用舊版本,其灰度發(fā)布通常是通過(guò) Nginx 實(shí)現(xiàn)的,所以本文給大家介紹了基于Nginx實(shí)現(xiàn)灰度發(fā)布的詳細(xì)流程,需要的朋友可以參考下2024-05-05
利用Nginx反向代理功能解決WEB網(wǎng)站80端口被封的解決方法
大陸的網(wǎng)絡(luò)環(huán)境,都在天朝神獸的制度下讓我等小P民悲劇一片;動(dòng)不動(dòng)就拔網(wǎng)線、封機(jī)房;現(xiàn)在更厲害的一招,從網(wǎng)關(guān)封殺你的80端口,一旦被封,網(wǎng)站域名就無(wú)法訪問(wèn)2012-08-08
Nginx中虛擬主機(jī)與指定訪問(wèn)路徑的設(shè)置方法講解
這篇文章主要介紹了Nginx中虛擬主機(jī)與指定訪問(wèn)路徑的設(shè)置方法講解,也是在同一個(gè)Nginx程序中部署多個(gè)站點(diǎn)的基本方法,需要的朋友可以參考下2016-03-03
Nginx+PHP8.0支持視頻上傳的項(xiàng)目實(shí)踐
在Ubuntu 20.04上配置Nginx和PHP 8.0以支持視頻上傳,介紹了調(diào)整Nginx和PHP的配置文件,增加上傳文件大小限制,調(diào)整超時(shí)時(shí)間和緩沖區(qū)大小等相關(guān)配置,感興趣的可以了解一下2025-02-02

