柚子快報激活碼778899分享:運(yùn)維 Nginx網(wǎng)站服務(wù)
柚子快報激活碼778899分享:運(yùn)維 Nginx網(wǎng)站服務(wù)
一、Nginx基礎(chǔ)?
? ? ? ? Nginx專為性能優(yōu)化而開發(fā),最知名的優(yōu)點(diǎn)為:穩(wěn)定、資源消耗低和對HTTP并發(fā)連接的高處理能力。
1.1 Nginx安裝及運(yùn)行控制
? ? ? ? 1.1.1?Nginx安裝
? ? ? ? 以Nginx1.12版本為例,使用源代碼包(可從官方網(wǎng)站http://www.nginx.org下載的形式下載。
安裝過程中的pcre-devel和zlib-devel分別是提供基于perl語言的正則表達(dá)式和壓縮作用。?
? ? ? ? 1.1.2 Nginx的運(yùn)行控制
? ? ? ? 因為前面創(chuàng)建了一個連接,所以可以在任何環(huán)境中使用nginx,直接使用就是啟動nginx。結(jié)合“-t”選項是對主配置文件驗證,”-c“選項則可以指定其他配置文件的路徑進(jìn)行驗證。?
? ? ? ? 若要終止nginx的運(yùn)行,可以使用pkill命令終止nginx。也可以編寫Nginx服務(wù)腳本,這樣就能夠使用chkconfig和systemctl工具管理了。通過在”/etc/init.d/“中創(chuàng)建名為nginx的腳本,寫入以下內(nèi)容:
①指定解釋器
②第一項指定nginx進(jìn)程的運(yùn)行級別(即選擇運(yùn)行在單用戶模式、多用戶模式、圖形化模式等),全部為"-",多個級別之間沒有間隔。第二項指定開機(jī)自啟的優(yōu)先級,越大優(yōu)先級越高,普通進(jìn)程最高99。第三項指定關(guān)閉優(yōu)先級,越小關(guān)閉的時間靠后。
③寫描述,此項可以自定義。
④通過控制語句,如if、case,判斷輸入的參數(shù)(參數(shù)一般為start、reload、restart、stop),并進(jìn)行響應(yīng)的處理,這些處理需要使用nginx命令和pkill命令(用于終止nginx)。
在腳本編輯成功之后,加上運(yùn)行權(quán)限,使用”chkconfig --add nginx“將nginx添加為系統(tǒng)服務(wù),就可以使用chkconfig和systemctl進(jìn)行管理了。?
1.2 Nginx的主配置文件
? ? ? ? 主配置文件位于其安裝目錄的conf目錄中,名為”nginx.conf“,包括全局配置、I/O事件配置和HTTP配置這三大塊內(nèi)容,配置語句的格式為:”關(guān)鍵字 值;“。
? ? ? ? 1.2.1 全局配置
? ? ? ? 由各種配置語句組成,不使用特定的界定標(biāo)記??梢栽O(shè)置Nginx服務(wù)的運(yùn)行用戶、工作進(jìn)程數(shù)、錯誤日志、PID存放位置等。
? ? ? ? 1.2.2 I/O事件配置
? ? ? ? 使用”events {}“界定標(biāo)記,可以設(shè)置Nginx進(jìn)程的I/O響應(yīng)模型、每個進(jìn)程的連接數(shù)等設(shè)置。進(jìn)程的連接數(shù)與工作進(jìn)程數(shù)有關(guān)聯(lián),關(guān)系為:工作進(jìn)程數(shù)×進(jìn)程的連接數(shù)=nginx提供服務(wù)的連接數(shù)。
? ? ? ? 1.2.3 HTTP設(shè)置
? ? ? ? 使用”http {}“界定標(biāo)記,可以設(shè)置訪問日志、HTTP端口、網(wǎng)頁目錄、默認(rèn)字符集、連接保持、虛擬主機(jī)、PHP解析等,其中大部分配置語句都包含在子定界標(biāo)記"server {}"內(nèi)。
log_format main項可以設(shè)置訪問日志的格式
listen指定不同站點(diǎn)各自監(jiān)聽的端口
root指定網(wǎng)頁文件所在目錄
charset可以設(shè)置默認(rèn)字符集
keepalive_timeout設(shè)置連接保持時間
server {}設(shè)置虛擬主機(jī),也叫站點(diǎn)、網(wǎng)站
location ~\.php {} 可以設(shè)置php解析相關(guān)配置
1.3 訪問狀態(tài)統(tǒng)計
????????Nginx內(nèi)置了HTTP_STUB_STATUS狀態(tài)統(tǒng)計模塊,用來反饋當(dāng)前的Web訪問情況。需要在配置時添加該模塊,還需要修改nginx.conf配置文件,指定訪問位置并添加stub_status配置代碼。例如:
可以在瀏覽器中進(jìn)行驗證,使用IP地址進(jìn)行訪問并在后面指定"/status"?。
二、Nginx訪問控制
? ? ? ? 與Apache一樣,有基于用戶授權(quán)文件、IP的訪問控制。
2.1 基于授權(quán)的訪問控制
? ? ? ? 當(dāng)客戶端要訪問網(wǎng)頁時,需要輸入賬號和密碼才能繼續(xù)訪問,主要為以下幾個步驟:
生成用戶密碼認(rèn)證文件。
使用命令htpasswd生成用戶認(rèn)證文件(該命令可安裝httpd-tools獲取)。htpasswd -c nginx安裝路徑/文件名.db 用戶名 #新建授權(quán)文件并添加用戶?htpasswd nginx安裝路徑/文件名.db 用戶名 #在已有授權(quán)文件中添加用戶建議修改文件權(quán)限為400,且屬主改為nginx。
修改主配置文件相對應(yīng)記錄,添加認(rèn)證配置項。
在對應(yīng)的站點(diǎn)的location中添加以下字段
auth_basic ”secret“;#指定驗證方法為密碼auth_basic_user_file 用戶授權(quán)文件位置;
重啟服務(wù),訪問測試。
2.2 基于IP的訪問控制
? ? ? ? nginx基于客戶端的訪問控制規(guī)則如下:
deny IP/IP段:拒絕某個IP或網(wǎng)段的客戶端訪問。allow IP/IP段:允許某個IP或網(wǎng)段的客戶端訪問。?規(guī)則從上到下執(zhí)行,如匹配則停止。
? ? ? ?只需在站點(diǎn)的location中添加上述格式的規(guī)則語句,重啟服務(wù)后即可生效。
三、Nginx虛擬主機(jī)
? ? ? ? Nginx和Apache一樣,都可以在一臺主機(jī)中托管多個站點(diǎn)。這些站點(diǎn)可以基于IP、域名、端口進(jìn)行區(qū)分。
3.1 基于域名的虛擬主機(jī)
? ? ? ? 只需在主配置文件的對應(yīng)域名站點(diǎn)中的location中指定網(wǎng)頁文件所在的位置,并且確保nginx能夠找到這個位置。??
注意開始是沒有fkk這個目錄的,需要自己創(chuàng)建,并在里面添加網(wǎng)頁文件,不同的站點(diǎn)不能使用相同的目錄??梢愿鶕?jù)自己需求創(chuàng)建多個"server {}"站點(diǎn)。
3.2 基于IP的虛擬主機(jī)
? ? ? ? 這種方式的站點(diǎn)數(shù)量會受主機(jī)擁有的IP地址數(shù)量的限制,因為一個IP對應(yīng)一個站點(diǎn)。只需在站點(diǎn)中的listen項中添加IP地址即可,端口號可以保留或刪除。
3.3 基于端口的虛擬主機(jī)
在實(shí)驗環(huán)境中訪問時,也使用”IP:端口“方式。
四、LNMP架構(gòu)部署及應(yīng)用
4.1 安裝MySQL服務(wù)
? ? ? ? ? 一般建議以源碼包安裝,本次用MySQL的5.6.36版本。先解壓源碼包并進(jìn)入已解壓后的目錄中,使用cmake工具進(jìn)行配置,以上步驟成功之后進(jìn)行安裝。
????????在配置過程中,將默認(rèn)使用的字符集設(shè)置為utf8,并添加其他字符集的支持(需要先安裝cmake,可使用yum安裝)。
? ? ? ? 上述的配置命令中,各選項的含義如下:
-DCMAKE_INSTALL_PREFIX:指定將mysql數(shù)據(jù)庫程序安裝到某目錄下。-DSYSCONFDIR:指定初始化參數(shù)文件目錄-DEFAULT_CHARSET:指定默認(rèn)使用的字符集編碼。-DEFAULT-COLLATION:指定默認(rèn)使用的字符集校對規(guī)則,utf8_general_ci是適用于UTF-8字符集的通用規(guī)則。-DWITH_EXTRA_CHARSETS:指定額外支持的其他字符集編碼。
? 為了加強(qiáng)數(shù)據(jù)庫服務(wù)的權(quán)限控制,需要使用專門的運(yùn)行用戶。此用戶不需要登錄,不需要家目錄:
useradd -M -s /sbin/nologin mysql -g mysql
#使用此用戶對數(shù)據(jù)庫進(jìn)行初始化
mysql的安裝路徑/scripts/mysql_install_db --basedir=mysql的安裝路徑 datadir=mysql的安裝路徑/data --user=mysql? ? ?
以上所有步驟都完成之后就可以啟動mysql了,此時的mysql沒有root密碼,建議進(jìn)行設(shè)置。?
4.2 安裝PHP解析環(huán)境
? ? ? ? 若要讓Nginx能夠解析PHP網(wǎng)頁,有兩種方法:
將訪問PHP頁面的WEB請求交給其他服務(wù)器(LAMP)去處理。使用PHP的FPM模塊調(diào)用本機(jī)的PHP環(huán)境。
? ? ? ? 此次以FPM模塊進(jìn)行處理。大致步驟為:編輯php-fpm.conf文件,修改其中的PID文件、運(yùn)行用戶/組(需要創(chuàng)建一個php用戶,不能登錄)、服務(wù)數(shù)(進(jìn)程數(shù)量)等相關(guān)設(shè)置,之后啟動php-fpm程序即可。
? ? ? ?在php的安裝路徑/etc/php-fpm.conf文件中找到以下字符:
pid:此字符用于確認(rèn)pid文件的位置,去掉注釋user:運(yùn)行用戶?group:運(yùn)行組pm.max_children:pm.start_serverspm.min_spare_servers:最少空閑進(jìn)程數(shù)pm.max_spare_servers:最多空閑進(jìn)程數(shù)
????????建議在nginx的服務(wù)腳本中添加與nginx相同結(jié)構(gòu)的php-fpm的控制語句(php-fpm也可以直接執(zhí)行php-fpm指令啟動),以便在啟動/停止Nginx服務(wù)器時將php-fpm進(jìn)程也自動停止。
? ? ? ? 無論是將PHP頁面交給LAMP服務(wù)去解析,還是調(diào)用本機(jī)的php-fpm進(jìn)程進(jìn)行解析,都需要在“"server{}"配置段中添加location設(shè)置,以便指定當(dāng)訪問.php頁面時采取何種操作。
? ? ? ? 調(diào)用本機(jī)的php-fpm進(jìn)程進(jìn)行解析,使用的配置語句如下所示:
之后重啟nginx服務(wù)即可生效。最后可以創(chuàng)建一個測試頁面,位置在基于上面圖片中的root項,用來測試PHP語句能否正常解析,以及能否連接數(shù)據(jù)庫。
柚子快報激活碼778899分享:運(yùn)維 Nginx網(wǎng)站服務(wù)
相關(guān)文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。