十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
Nginx的介紹
Nginx (engine x) 是一個高性能的HTTP和反向代理web服務(wù)器,同時也提供了IMAP/POP3/SMTP服務(wù)。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發(fā)的,第一個公開版本0.1.0發(fā)布于2004年10月4日。
其將源代碼以類BSD許可證的形式發(fā)布,因它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。2011年6月1日,nginx 1.0.4發(fā)布。
Nginx是一款輕量級的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like 協(xié)議下發(fā)行。其特點是占有內(nèi)存少,并發(fā)能力強(qiáng),事實上nginx的并發(fā)能力在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好
Nginx的優(yōu)點
Nginx 可以在大多數(shù) UnixLinux OS 上編譯運(yùn)行,并有 Windows 移植版。 Nginx 的1.4.0穩(wěn)定版已經(jīng)于2013年4月24日發(fā)布,一般情況下,對于新建站點,建議使用最新穩(wěn)定版作為生產(chǎn)版本,已有站點的升級急迫性不高。
Nginx 的源代碼使用 2-clause BSD-like license。
Nginx 是一個很強(qiáng)大的高性能Web和反向代理服務(wù),它具有很多非常優(yōu)越的特性:
在連接高并發(fā)的情況下,Nginx是Apache服務(wù)不錯的替代品:Nginx在美國是做虛擬主機(jī)生意的老板們經(jīng)常選擇的軟件平臺之一。能夠支持高達(dá) 50,000 個并發(fā)連接數(shù)的響應(yīng),感謝Nginx為我們選擇了 epoll and kqueue作為開發(fā)模型。
一、動靜分離的簡介
Nginx 的靜態(tài)處理能力很強(qiáng),常用處理靜態(tài)請求,但是動態(tài)處理能力不足,因此,在企業(yè)中常用動靜態(tài)分離技術(shù)。
針對 PHP 的動靜分離,靜態(tài)頁面交給Nginx 處理,動態(tài)頁面交給PHP-FPM模塊或 Apache處理
在Nginx的配置中,是通過location 配置段配合正則匹配實現(xiàn)靜態(tài)與動態(tài)頁面的不同處理方式。
二、反向代理原理
Nginx 不僅能作為 Web服務(wù)器,還具有反向代理、負(fù)載均衡和緩存的功能。
Nginx 通過 proxy模塊實現(xiàn)將客戶端的請求代理至上游服務(wù)器,此時nginx與上游服務(wù)器的連接是通過http協(xié) 議進(jìn)行的。
nginx 在實現(xiàn)反向代理功能時的最重要指令為:proxy_pass 它的處理邏輯將用戶請求調(diào)度至上游服務(wù)器。
三、配置實驗
3.1、實驗要求
根據(jù)企業(yè)需要,將配置nginx 實現(xiàn)動靜分離,對PHP頁面的請求轉(zhuǎn)發(fā)給LAMP 處理,而靜態(tài)頁面交給 nginx處理,以實現(xiàn)動靜分離。
3.2、環(huán)境準(zhǔn)備
準(zhǔn)備兩臺centos虛擬機(jī),第一臺已經(jīng)搭建好 Nginx配置,第二臺用于搭建 LAMP平臺。
3.3、架構(gòu)LAMP
1、安裝 http,關(guān)閉防火墻
systemctl stop firewalld
setenfoce 0
yum install httpd httpd-devel -y
#開啟服務(wù)
systemctl start httpd
2、安裝數(shù)據(jù)庫MySQL,并開啟服務(wù)
#安裝 mariadb(簡單,快捷,輕量級別的,安裝便利)數(shù)據(jù)庫
yum install mariadb mariadb-server mariadb-libs mariadb-devel -y
#啟動 mariadb
systemctl start mariadb.service
#過濾看下
netstat -anpt | grep 3306
3、給MySQL數(shù)據(jù)庫設(shè)置密碼,進(jìn)行數(shù)據(jù)庫配置
mysql_secure_installstion
#回車
#給root 設(shè)置密碼:abc123
#回車
#會顯示Remove anonymouns users(匿名用戶)-> N
#回車
#Disallow root login remotely(是否拒絕root遠(yuǎn)程登陸)-> N
#回車
#Remove test database and access to it(是否刪除測試數(shù)據(jù)庫)->N
#回車
#Reload pricilegs tables now(是否重新加載權(quán)限列表)-> Y
4、安裝 php ,建立php和mysql關(guān)聯(lián)
#安裝php
yum install php -y
#安裝 (建立php和mysql)關(guān)聯(lián)插件
yum install php-mysql -y
5、安裝php插件
#安裝php插件
yum install -y php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath
6、新建PHP網(wǎng)頁內(nèi)容文件
cd /var/www/html
mv index.html index.php
vim index.php
echo "this is apache web";
?>
7、重啟服務(wù),在 ‘ nginx ’ 的瀏覽器中輸入 192.168.111.141/index.php
#再重啟服務(wù)
systemctl restart httpd.service
systemctl restart mariadb
3.4、架構(gòu)Nginx的靜態(tài)分離
nginx的安裝已經(jīng)提前配置好了,需要的可以看上一篇博客,鏈接為:Nginx 的配置
1、修改 Nginx 的配置文件,將PHP文件請求轉(zhuǎn)發(fā)到 Apache 處理。
vim /usr/local/nginx/conf/nginx.conf
2、重啟nginx服務(wù)
service nginx restart
3、在nginx的瀏覽器中訪問網(wǎng)站:192.168.111.139/index.php 驗證
. php是動態(tài)請求, html是靜態(tài)請求。
. 如果是靜態(tài)請求,Nginx直接進(jìn)行處理,若是動態(tài)請求,nginx自動將動態(tài)請求轉(zhuǎn)發(fā)給Apache處理。
訪問網(wǎng)站:192.168.111.139/index.html
LAMP平臺:192.168.111.141
Nginx平臺:192.168.111.139
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。