




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第2章Web服務(wù)集群2.1Web服務(wù)集群簡介
2.2
搭建LAMP平臺2.3
搭建LNMP平臺2.4Nginx—負載均衡2.5Web集群實戰(zhàn)案例-業(yè)務(wù)上線了解Web服務(wù)集群的意義熟練搭建LAMP平臺熟練搭建LNMP平臺熟悉Nginx負載均衡熟練搭建Web服務(wù)集群引言大家所熟悉的博客、論壇等網(wǎng)站,其特點就是用戶群體較大。當Web服務(wù)器直接面向客戶端時,服務(wù)器往往要承載大量并發(fā)請求,單臺服務(wù)器難以負荷。為了應(yīng)對以上問題,可以配置多臺Web服務(wù)器組成集群,以擴展架構(gòu)的穩(wěn)定性和可擴展性,承載更多的并發(fā)量以及提高用戶的訪問速度。2.1Web服務(wù)集群簡介組成及概念Web集群基礎(chǔ)架構(gòu)2.1Web服務(wù)集群簡介Web服務(wù)集群是指配置若干(兩臺及以上)臺Web服務(wù)器組成一個系統(tǒng),作為一個整體為用戶提供Web服務(wù)。在Web集群環(huán)境中,前端使用負載均衡,將用戶請求的流量按照算法分散地移交到后端Web服務(wù)器集群中,實現(xiàn)請求的分發(fā),將會大大提升系統(tǒng)的吞吐量與請求性能。2.1Web服務(wù)集群簡介Web服務(wù)器又稱為網(wǎng)站服務(wù)器,能夠處理瀏覽器等客戶端的請求然后返回相應(yīng)結(jié)果,Web服務(wù)器可提供瀏覽類網(wǎng)站文件,又可提供下載類數(shù)據(jù)文件。常見的Web服務(wù)器協(xié)議有HTTP、HTML文檔格式、URL(UniformResourceLocator,統(tǒng)一資源定位符)等,其中URL就是用戶在瀏覽器中輸入的網(wǎng)站地址。2.1Web服務(wù)集群簡介當前主流的Web服務(wù)器有Apache、Nginx、IIS,在云端Web類應(yīng)用中,使用率可達95%以上。Apache是世界使用最多的Web服務(wù)器,是Web服務(wù)器的“領(lǐng)頭人”,同時,Nginx性能穩(wěn)定,有著代替Apache的趨勢,這兩者在Linux系統(tǒng)下都能被靈活地配置調(diào)用,而IIS主要用于Windows的Web類應(yīng)用。Web服務(wù)器的市場份額2.1Web服務(wù)集群簡介假設(shè)用戶A通過負載均衡登錄網(wǎng)站,第一次登錄的會話信息保存在Web服務(wù)器1中,保存的內(nèi)容叫做Session,可以保證用戶“在線”的狀態(tài)。當網(wǎng)站刷新,負載均衡把請求又分給了Web2,因為Web2沒有用戶A的登錄信息,網(wǎng)站就會提示用戶A重新登錄,以此類推,用戶A無法實現(xiàn)會話保持。實現(xiàn)Session共享就可以解決以上問題,如Nginx負載均衡的ip_hash算法、LVS的持久連接機制、HAProxy負載均衡的source算法以及基于cookie的會話保持處理機制。Web集群基礎(chǔ)架構(gòu)2.2搭建LAMP平臺LAMP簡介實驗的準備環(huán)境LAMP的部署及測試2.2
搭建LAMP
平臺2.2.1LAMP簡介在LAMP中,Linux是自由和開放源碼的類Unix操作系統(tǒng),可安裝在各種計算機硬件設(shè)備中。Apache是最受歡迎的一個開放源碼的Web服務(wù)器軟件,強大且實用。M可以是多線程、多用戶的SQL數(shù)據(jù)庫管理系統(tǒng)MySQL,也可以是MariaDB。P一般是指PHP、Perl或Python等腳本語言,其中PHP是一種編程語言,最初用來設(shè)計生產(chǎn)動態(tài)網(wǎng)站,主要用于服務(wù)器端的應(yīng)用程序軟件。LAMP可以是LinuxApacheMySQLPHP的簡寫,其實就是把Apache、MySQL以及PHP安裝在Linux系統(tǒng)上,來運行動態(tài)網(wǎng)站或者服務(wù)器,是比較常用的Web搭建框架。2.2
搭建LAMP
平臺2.2.1LAMP簡介LAMP的工作原理2.2
搭建LAMP
平臺2.2.1LAMP簡介瀏覽器向服務(wù)器發(fā)送HTTP請求,服務(wù)器(Apache)接受請求。PHP作為Apache的組件模塊也會一起啟動,它們具有相同的生命周期。Apache會將一些靜態(tài)資源保存,然后去調(diào)用PHP處理模塊進行PHP腳本的處理。腳本處理完后,Apache將處理完的信息通過httpresponse的方式發(fā)送給瀏覽器,經(jīng)瀏覽器解析、渲染等一系列操作后呈現(xiàn)整個網(wǎng)頁。LAMP的工作原理2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境本書全部實驗使用虛擬機代替物理服務(wù)器,在虛擬環(huán)境下的Linux操作系統(tǒng)中進行,實驗所用操作系統(tǒng)版本為CentOS7.6。CentOS7自帶Firewalld和SELinux守護工具,一外一內(nèi),保證系統(tǒng)的安全。嚴格意義上來說,可以通過配置相關(guān)策略來開放系統(tǒng)及服務(wù)的訪問權(quán)限,這種做法雖然較準確但是繁瑣。為了避免因防火墻造成各種連接不成功以至于實驗失敗的情況,這里直接關(guān)閉Firewalld和SELinux,后續(xù)章節(jié)的實驗也默認關(guān)閉。2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境1.查看系統(tǒng)版本號[root@qfedu~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境2.關(guān)閉CentOS7默認防火墻Firewalld[root@qfedu~]#systemctlstatusfirewalld●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded(/usr/lib/systemd/system/firewalld.service;enabled;vendorpreset:enabled)Active:active(running)since一2021-10-2518:05:27CST;7hleft……此處省略部分代碼……(1)首先查看虛擬機當前防火墻的狀態(tài)2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境2.關(guān)閉CentOS7默認防火墻Firewalld通過上面這段代碼的反饋信息,可以觀察到防火墻目前是開啟的。輸出結(jié)果第2行括號中的第二個字段表示的是服務(wù)的自啟動狀態(tài),若為enabled,則說明該服務(wù)會開機自啟動;若為disabled,則開機不會自啟。第3行active表示的是活動,其冒號后面若為active(running),則表示防火墻為啟動狀態(tài);若為inactive(dead),則說明當前防火墻為關(guān)閉狀態(tài)。(1)首先查看虛擬機當前防火墻的狀態(tài)2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境2.關(guān)閉CentOS7默認防火墻Firewalld[[root@qfedu~]#systemctlstopfirewalld[root@qfedu~]#systemctldisablefirewalld(2)關(guān)閉防火墻,并禁止其開機自啟2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境2.關(guān)閉CentOS7默認防火墻Firewalld[root@qfedu~]#systemctlstatusfirewalld●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded(/usr/lib/systemd/system/firewalld.service;disabled;vendorpreset:enabled)Active:inactive(dead)……此處省略部分代碼……(3)再次查看防火墻狀態(tài)當前防火墻的狀態(tài)為關(guān)閉2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境3.關(guān)閉SELinux[root@qfedu~]#getenforceEnforcing(1)首先查看當前SELinux的狀態(tài)系統(tǒng)返回的信息為Enforcing,意為執(zhí)行,即SELinux正在運行2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境3.關(guān)閉SELinux[root@qfedu~]#setenforce0[root@qfedu~]#getenforcePermissive(2)臨時關(guān)閉SELinux,并再次查看SELinux的狀態(tài)SELinux的狀態(tài)為Permissive,意為允許的2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境3.關(guān)閉SELinux[root@qfedu~]#vim/etc/selinux/config#ThisfilecontrolsthestateofSELinuxonthesystem.#SELINUX=cantakeoneofthesethreevalues:#enforcing-SELinuxsecuritypolicyisenforced.#permissive-SELinuxprintswarningsinsteadofenforcing.#disabled-NoSELinuxpolicyisloaded.#SELINUX=enforcing#修改前SELINUX=disabled#修改后(3)禁止SELinux開機自啟將SELINUX=enforcing修改為SELINUX=disabled2.2
搭建LAMP
平臺2.2.2實驗的準備環(huán)境3.關(guān)閉SELinux[root@qfedu~]#reboot[root@qfedu~]#getenforceDisabled(4)重啟虛擬機,再次查看SELinux狀態(tài)SELinux的狀態(tài)為Disabled,說明SELinux已關(guān)閉,并被禁止開機自啟。至此,準備工作已全部完成,本書后續(xù)實驗將不再詳細介紹該環(huán)節(jié)。2.2
搭建LAMP
平臺2.2.3LAMP的部署及測試在單機環(huán)境下部署LAMP環(huán)境,首先關(guān)閉防火墻及SELinux,之后利用yum工具依次安裝Apache、PHP和MySQL,并進行測試。準備1臺VM虛擬機搭建LAMP平臺HostNameIP說明web139搭建LAMP框架說明:操作系統(tǒng)版本CentOS7.6,提前關(guān)閉防火墻及SELinux。2.2
搭建LAMP
平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試[root@web1~]#yum-yinstallhttpd……此處省略部分代碼……已安裝:httpd.x86_640:2.4.6-97.el7.centos.2作為依賴被安裝:apr.x86_640:1.4.8-7.el7apr-util.x86_640:1.5.2-6.el7httpd-tools.x86_640:2.4.6-97.el7.centos.2mailcap.noarch0:2.1.41-2.el7完畢?。?)安裝Apache2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試[root@web1~]#httpd-vServerversion:Apache/2.4.6(CentOS)Serverbuilt:Nov10202114:41:18本次實驗的Apache版本為2.4.6(1)安裝Apache2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試[root@web1~]#systemctlstarthttpd[root@web1~]#systemctlenablehttpdCreatedsymlinkfrom/etc/systemd/system/multi-user.target.wants/httpd.serviceto/usr/lib/systemd/system/httpd.service.(3)啟動Apache服務(wù)并設(shè)置開機自啟2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試在本機瀏覽器中輸入虛擬機的IP地址,如果看到Apache默認的測試頁面,說明Apache服務(wù)成功運行。直接在瀏覽器上訪問當前主機的IP地址。(4)驗證Apache服務(wù)是否安裝成功2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試Apache的默認網(wǎng)站目錄是/var/www/html,先切換到該路徑,再創(chuàng)建HTML靜態(tài)頁面。(5)測試Apache是否能解析常見的靜態(tài)頁面[root@web1~]#cd/var/www/html/[root@web1html]#vimindex.htmlWelcometotheworld!2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試在瀏覽器中輸入IP地址。(5)測試Apache是否能解析常見的靜態(tài)頁面靜態(tài)頁面被成功解析,訪問正常2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試對動態(tài)頁面進行測試,這里選用的是動態(tài)語言中最常用的PHP語言作為測試對象。在網(wǎng)站根目錄編寫一個PHP文件:(5)測試Apache是否能解析常見的動態(tài)頁面[root@web1html]#vimindex.php<?phpphpinfo();?>2.2搭建LAMP平臺2.2.3LAMP的部署及測試1.Apache的安裝與測試在瀏覽器中訪問39/index.php(5)測試Apache是否能解析常見的動態(tài)頁面服務(wù)器僅僅把index.php當作正常的靜態(tài)語言原封不動地進行輸出,并沒有對PHP語言進行解釋,這是因為Apache本身并不能識別PHP語言。如果想達到預期效果,服務(wù)器需要先借助PHP軟件進行翻譯,再根據(jù)翻譯后的含義進行相關(guān)操作。2.2搭建LAMP平臺2.2.3LAMP的部署及測試2.PHP的安裝與測試[root@web1html]#yum-yinstallphp……此處省略部分代碼……已安裝:php.x86_640:5.4.16-48.el7作為依賴被安裝:libzip.x86_640:0.10.1-8.el7php-cli.x86_640:5.4.16-48.el7php-common.x86_640:5.4.16-48.el7完畢?。?)安裝PHP2.2搭建LAMP平臺2.2.3LAMP的部署及測試2.PHP的安裝與測試[root@web1html]#systemctlrestarthttpd(2)重啟Apache服務(wù)2.2搭建LAMP平臺2.2.3LAMP的部署及測試2.PHP的安裝與測試安裝PHP之后,Apache可以實現(xiàn)對動態(tài)頁面的正常訪問。需要注意的是安裝PHP之后,需要重啟Apache,才能實現(xiàn)Apache與PHP的連接。(3)再次訪問index.php2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試[root@web1~]#yum-yinstallmariadbmariadb-server……此處省略部分代碼……已安裝:
mariadb.x86_641:5.5.64-1.el7mariadb-server.x86_641:5.5.64-1.el7作為依賴被安裝:perl-Compress-Raw-Bzip2.x86_640:2.061-3.el7perl-Compress-Raw-Zlib.x86_641:2.061-4.el7perl-DBD-MySQL.x86_640:4.023-6.el7perl-DBI.x86_640:1.627-4.el7(1)安裝MariaDB客戶端與服務(wù)端perl-Data-Dumper.x86_640:2.145-3.el7perl-IO-Compress.noarch0:2.061-2.el7perl-Net-Daemon.noarch0:0.48-5.el7perl-PlRPC.noarch0:0.2020-14.el7作為依賴被升級:mariadb-libs.x86_641:5.5.68-1.el7完畢!2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(1)安裝MariaDB客戶端與服務(wù)端啟動MariaDB服務(wù),并設(shè)置其開機自啟[root@web1~]#systemctlstartmariadb[root@web1~]#systemctlenablemariadb2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(2)更改數(shù)據(jù)庫密碼首先,通過如下指令進入數(shù)據(jù)庫安全設(shè)置模式。[root@web1~]#mysql_secure_installation2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(2)更改數(shù)據(jù)庫密碼然后,對數(shù)據(jù)庫密碼進行修改。這里設(shè)置的用戶名默認為root,密碼為123。[root@web1~]#mysql_secure_installation……此處省略部分代碼……Entercurrentpasswordforroot(enterfornone):#回車OK,successfullyusedpassword,movingon...SettingtherootpasswordensuresthatnobodycanlogintotheMariaDBrootuserwithouttheproperauthorisation.Setrootpassword?[Y/n]YNewpassword:123Re-enternewpassword:123Passwordupdatedsuccessfully!Reloadingprivilegetables.....Success!……此處省略部分代碼……Cleaningup...Alldone!Ifyou'vecompletedalloftheabovesteps,yourMariaDBinstallationshouldnowbesecure.ThanksforusingMariaDB!2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(3)登錄數(shù)據(jù)庫測試[root@web1~]#mysql-uroot-p123WelcometotheMariaDBmonitor.Commandsendwith;or\g.YourMariaDBconnectionidis11Serverversion:5.5.64-MariaDBMariaDBServerCopyright(c)2000,2018,Oracle,MariaDBCorporationAbandothers.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.MariaDB[(none)]>\qBye2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(4)測試PHP與數(shù)據(jù)庫是否連通首先在網(wǎng)站根目錄下創(chuàng)建linktest.php,設(shè)定之前設(shè)置的數(shù)據(jù)庫賬戶及密碼,若能通過該賬戶密碼正常連接數(shù)據(jù)庫,則返回Successfully,否則返回Fail。[root@web1~]#vim/var/www/html/linktest.php<?php$link=mysql_connect('localhost','root','123');if($link)echo"Successfully";elseecho"Fail";mysql_close();?>2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(4)測試PHP與數(shù)據(jù)庫是否連通在瀏覽器上訪問linktest.php服務(wù)器目前無法處理這個請求。雖然已經(jīng)安裝了數(shù)據(jù)庫,但是并沒有將數(shù)據(jù)庫與網(wǎng)站服務(wù)連接起來,缺少PHP與數(shù)據(jù)庫連接的插件。2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(5)查看PHP的拓展模塊[root@web1~]#php-m|grepmysql2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(6)安裝php-mysql[root@web1~]#yum-yinstallphp-mysql……此處省略部分代碼……已安裝:php-mysql.x86_640:5.4.16-48.el7作為依賴被安裝:php-pdo.x86_640:5.4.16-48.el7完畢!2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(7)再次查看PHP的拓展模塊[root@web1~]#php-m|grepmysqlmysqlmysqlipdo_mysql2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(8)重啟Apache服務(wù)[root@web1~]#systemctlrestarthttpd2.2搭建LAMP平臺2.2.3LAMP的部署及測試3.數(shù)據(jù)庫的安裝與測試(9)再次在瀏覽器上訪問linktest.php改動linktest.php中的賬戶或密碼,這里將root改為rooot,再次訪問linktest.php2.2搭建LAMP平臺2.2.3LAMP的部署及測試由此可知,在Apache上運行一個網(wǎng)站是非常簡單的,只要將源碼放入網(wǎng)站根目錄即可。隨著業(yè)務(wù)的發(fā)展,越來越多的公司選擇使用Java語言來開發(fā)應(yīng)用。能夠發(fā)布JavaWeb程序的服務(wù)器需要支持Servlet和Jsp規(guī)范,常見的有Tomcat服務(wù)器、Resin服務(wù)器、JBoss服務(wù)器、WebLogic服務(wù)器等。其中Tomcat服務(wù)器性能穩(wěn)定且開源免費,易被初學者掌握,因此,讀者在課余時間可以學習Tomcat服務(wù)器的相關(guān)內(nèi)容。2.3搭建LNMP平臺LNMP簡介LNMP的部署及測試2.3
搭建LNMP平臺2.3.1
LNMP簡介LAMP是LinuxNginxMySQLPHP的簡寫,即把Nginx、MySQL以及PHP安裝在Linux系統(tǒng)上,組成一個高效、免費、高擴展的網(wǎng)站服務(wù)系統(tǒng),是國內(nèi)大中型互聯(lián)網(wǎng)公司網(wǎng)站常用的Web搭建框架。LAMP中是以Apache作為Web服務(wù)器與客戶端瀏覽器進行交互,顧名思義,在LNMP環(huán)境中,是以Nginx作為Web服務(wù)器。Nginx(enginex)是一款高性能、輕量級的Web服務(wù)器,是一款反向代理服務(wù)器,也是一款郵箱代理服務(wù)器(IMAP/POP3/SMTP),具有性能優(yōu)越、功能豐富、占有內(nèi)存少等優(yōu)點。Nginx既適用于靜態(tài)業(yè)務(wù)又適用于動態(tài)業(yè)務(wù),國內(nèi)的百度、淘寶、阿里、小米等知名網(wǎng)站都在使用Nginx來滿足其高并發(fā)業(yè)務(wù)的需求,已經(jīng)開始逐漸代替Apache。2.3
搭建LNMP平臺2.3.1
LNMP簡介LNMP的工作原理如圖所示。瀏覽器發(fā)送請求到服務(wù)器(Nginx),服務(wù)器響應(yīng)并處理Web請求。如果是靜態(tài)文本直接返回,否則將腳本(PHP)通過接口傳輸協(xié)議(網(wǎng)關(guān)協(xié)議)PHP-FCGI(fast-cgi,快速通用網(wǎng)關(guān)接口)傳輸給PHP-FPM(進程管理程序),然后PHP-FPM調(diào)用PHP解析器的其中一個進程PHP-CGI來解析PHP腳本信息。然后將解析后的腳本返回到PHP-FPM,PHP-FPM再通過fast-cgi的形式將腳本信息傳送給Nginx。服務(wù)器再通過Httpresponse的形式傳送給瀏覽器。瀏覽器再進行解析與渲染然后呈現(xiàn)給用戶。2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試在本案例中準備兩臺VM虛擬機(或物理服務(wù)器),分離部署LNMP環(huán)境,如表所示。說明:其中,應(yīng)用程序及文件服務(wù)器需要Nginx+PHP-FPM插件支持,數(shù)據(jù)庫服務(wù)器采用Mariadb進行實現(xiàn)。操作系統(tǒng)版本CentOS7.6,提前關(guān)閉防火墻及SELinux(過程不再贅述)。HostNameIP說明web139應(yīng)用程序及文件服務(wù)器db140數(shù)據(jù)庫服務(wù)器2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試(1)在準備的應(yīng)用服務(wù)器(1)上部署Nginx。首先查詢Nginx的安裝包信息。[root@web1~]#yuminfonginx已加載插件:fastestmirrorLoadingmirrorspeedsfromcachedhostfile*base:*extras:*updates:可安裝的軟件包名稱:nginx架構(gòu):x86_64時期:1版本:1.20.1發(fā)布:9.el7大?。?87k源:epel/x86_64簡介:Ahighperformancewebserverandreverseproxyserver網(wǎng)址:協(xié)議:BSD描述:NginxisawebserverandareverseproxyserverforHTTP,SMTP,POP3and:IMAPprotocols,withastrongfocusonhighconcurrency,performanceandlow:memoryusage.1.部署Nginx2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試(2)利用yum工具就可以實現(xiàn)Nginx的安裝。[root@web1~]#yum-yinstallnginx……此處省略部分代碼……已安裝:nginx.x86_641:1.20.1-9.el7作為依賴被安裝:centos-indexhtml.noarch0:7-9.el7.centosgperftools-libs.x86_640:2.6.1-1.el7nginx-filesystem.noarch1:1.20.1-9.el7openssl11-libs.x86_641:1.1.1k-2.el7完畢!1.部署Nginx(3)啟動Nginx服務(wù),并設(shè)置該項服務(wù)開機自啟。[root@web1~]#systemctlstartnginx[root@web1~]#systemctlenablenginx2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試(4)Nginx服務(wù)啟動后,會堅守在系統(tǒng)的80端口等待用戶請求的到來。檢查Nginx是否正常工作在80端口。[root@web1~]#netstat-unltp|grep80tcp00:80:*LISTEN14484inx:mastertcp600:::80:::*LISTEN14484inx:master1.部署Nginx(5)打開瀏覽器,輸入IP,即可看到Nginx的歡迎界面Nginx服務(wù)正常工作因為Nginx.conf文件中指向的/usr/share/nginx/html/index.html是CentOS歡迎頁面,并不影響Nginx的正常啟動。2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試(6)現(xiàn)在測試Nginx是否能解析常見的動靜態(tài)頁面。首先對靜態(tài)網(wǎng)頁進行測試。Nginx的默認網(wǎng)站目錄是/usr/share/nginx/html,先切換到該路徑,再創(chuàng)建Html靜態(tài)頁面,具體如下所示。[root@web1~]#cd/usr/share/nginx/html[root@web1html]#vimindex.htmlWelcometotheworld!1.部署Nginx網(wǎng)站的默認目錄是/usr/share/nginx/html,源碼包一般放在這里。錯誤日志目錄是/var/log/nginx/access.log,在實驗過程中,經(jīng)常會出錯,需要認真查看錯誤日志,進行排錯。(7)在瀏覽器中輸入IP地址,訪問結(jié)果如圖。靜態(tài)頁面被成功解析,訪問正常2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試(8)其次對動態(tài)頁面進行測試,這里選用的是動態(tài)語言中最常用的PHP語言作為測試對象。在網(wǎng)站根目錄編寫一個PHP文件。[root@web1html]#vimindex.php<?phpphpinfo();?>按Esc,輸入:wq進行保存。1.部署Nginx(9)在瀏覽器中訪問39/index.php,結(jié)果如圖。服務(wù)器并不認識index.php,將其當作其他文件進行下載。2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試(1)下載安裝PHP-FPM及相關(guān)插件。[root@web1~]#yuminstall-yphp-fpmphp-mysqlphp-gd2.部署PHP-FPMNginx不支持對外部動態(tài)程序的直接調(diào)用或者解析,所有的外部程序(包括PHP)必須通過FastCGI接口來調(diào)用。想要讓服務(wù)器可以處理PHP文件,則必須安裝PHP-FPM。此處采用YUM安裝的方式進行介紹,此操作依然在應(yīng)用服務(wù)器(39)上進行。(2)PHP-FPM安裝完成后,將其開啟并設(shè)置其開機自啟。不僅安裝了PHP-FPM,還安裝了相關(guān)依賴包。其中,PHP-Mysql是用于連接Mysql數(shù)據(jù)庫的程序,PHP-GD是用于處理圖片或者生成圖片的圖形庫程序。[root@web1~]#systemctlstartphp-fpm[root@web1~]#systemctlenablephp-fpm2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試(3)PHP正常工作在9000端口,查看PHP-FPM的進程信息。[root@qfedu~]#netstat-anpt|grepphp-fpmtcp00:9000:*LISTEN72441/php-fpm:mast(4)由于Nginx默認只處理以.html結(jié)尾的文件,而現(xiàn)在網(wǎng)站要處理PHP文件,那么需要將.php文件加入網(wǎng)站處理的范圍,更新網(wǎng)站接收的文件類型。#在Nginx配置文件的Server模塊內(nèi)進行添加即可。[root@web1~]#vim/etc/nginx/conf.d/default.confserver{listen80;server_namelocalhost;location/{root/usr/share/nginx/html;indexindex.htmlindex.htmindex.php;}#省略部分代碼}2.部署PHP-FPM服務(wù)器9000端口已經(jīng)被PHP-FPM程序使用。2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試(5)除了添加PHP主頁名稱,還需在其配置文件的Server模塊啟用nginx_fastcgi功能,修改其調(diào)用路徑,修改后的內(nèi)容如下所示。location~\.php${root/usr/share/nginx/html;fastcgi_pass:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME/$document_root$fastcgi_script_name;includefastcgi_params;}2.部署PHP-FPM其中一些參數(shù)的含義如下所示。location~\.php$表示收到類似于.php結(jié)尾的請求之后,將執(zhí)行以下配置,“~”符號表示類似;fastcgi_pass表示請求將發(fā)送的端口,此處為本機9000端口;fastcgi_index表示PHP的默認主頁;fastcgi_param表示調(diào)用PHP的環(huán)境變量,此處調(diào)用了腳本文件的請求路徑。2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試(6)修改完成后,再次重啟Nginx,訪問測試文件index.php,結(jié)果如圖。2.部署PHP-FPM此時已經(jīng)可以看到PHP的基礎(chǔ)信息,包括版本信息、創(chuàng)建時間、文件路徑等,應(yīng)用服務(wù)器已部署完成,接下來將介紹數(shù)據(jù)庫服務(wù)器的配置方式。2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試(1)在準備的數(shù)據(jù)庫服務(wù)器(40)上部署Mariadb。首先安裝MariaDB客戶端與服務(wù)端。[root@db1~]#yum-yinstallmariadbmariadb-server……此處省略部分代碼……已安裝:mariadb.x86_641:5.5.68-1.el7mariadb-server.x86_641:5.5.68-1.el7作為依賴被安裝:perl-Compress-Raw-Bzip2.x86_640:2.061-3.el7perl-Compress-Raw-Zlib.x86_641:2.061-4.el7perl-DBD-MySQL.x86_640:4.023-6.el7perl-DBI.x86_640:1.627-4.el7perl-Data-Dumper.x86_640:2.145-3.el7perl-IO-Compress.noarch0:2.061-2.el7perl-Net-Daemon.noarch0:0.48-5.el7perl-PlRPC.noarch0:0.2020-14.el7作為依賴被升級:mariadb-libs.x86_641:5.5.68-1.el7完畢!完畢!3.部署數(shù)據(jù)庫(2)啟動MariaDB服務(wù),并設(shè)置其開機自啟。[root@db1~]#systemctlstartmariadb[root@db1~]#systemctlenablemariadb2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試(3)通過如下指令進入數(shù)據(jù)庫安全設(shè)置模式,更改數(shù)據(jù)庫密碼。[root@db1~]#mysql_secure_installationNOTE:RUNNINGALLPARTSOFTHISSCRIPTISRECOMMENDEDFORALLMariaDBSERVERSINPRODUCTIONUSE!PLEASEREADEACHSTEPCAREFULLY!InordertologintoMariaDBtosecureit,we'llneedthecurrentpasswordfortherootuser.Ifyou'vejustinstalledMariaDB,andyouhaven'tsettherootpasswordyet,thepasswordwillbeblank,soyoushouldjustpressenterhere.Entercurrentpasswordforroot(enterfornone):OK,successfullyusedpassword,movingon...SettingtherootpasswordensuresthatnobodycanlogintotheMariaDBrootuserwithouttheproperauthorisation.Setrootpassword?[Y/n]YNewpassword:123Re-enternewpassword:123Passwordupdatedsuccessfully!Reloadingprivilegetables.....Success!……此處省略部分代碼……Cleaningup...Alldone!Ifyou'vecompletedalloftheabovesteps,yourMariaDBinstallationshouldnowbesecure.ThanksforusingMariaDB!3.部署數(shù)據(jù)庫這里設(shè)置的用戶名默認為root,密碼為123。2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試(4)登陸數(shù)據(jù)庫測試,并授予應(yīng)用服務(wù)器操作權(quán)限。[root@db1~]#mysql-uroot-p123WelcometotheMariaDBmonitor.Commandsendwith;or\g.YourMariaDBconnectionidis11Serverversion:5.5.68-MariaDBMariaDBServerCopyright(c)2000,2018,Oracle,MariaDBCorporationAbandothers.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.MariaDB[(none)]>grantallon*.*toroot@'39'identifiedby'123';QueryOK,0rowsaffected(0.00sec)MariaDB[(none)]>flushprivileges;QueryOK,0rowsaffected(0.00sec)MariaDB[(none)]>\qBye3.部署數(shù)據(jù)庫成功登錄數(shù)據(jù)庫完成相關(guān)授權(quán)。2.3
搭建LNMP平臺2.3.2
LNMP的分離部署及測試(5)在網(wǎng)站默認目錄下創(chuàng)建文件link.php。[root@db1~]#cat/usr/share/nginx/html/link.php<?php$link=mysql_connect('2','root','123');if($link)echo"Successfully";elseecho"Fail";mysql_close();?>3.部署數(shù)據(jù)庫(6)在瀏覽器中訪問link.php,結(jié)果如圖。2.4Nginx-負載均衡反向代理與負載均衡Nginx負載均衡的優(yōu)缺點Nginx負載均衡算法Nginx負載均衡后端狀態(tài)Nginx負載均衡的應(yīng)用2.4
Nginx-負載均衡2.4.1
反向代理與負載均衡Nginx不僅是一款優(yōu)秀的Web軟件,還可以作為七層代理和負載均衡。七層負載均衡在應(yīng)用層,可以完成很多應(yīng)用方面的協(xié)議請求,比如HTTP應(yīng)用負載均衡,它可以實現(xiàn)HTTP信息的改寫、頭信息的改寫、安全應(yīng)用規(guī)則控制、URL匹配規(guī)則控制,以及轉(zhuǎn)發(fā)、rewrite等規(guī)則。代理服務(wù)器(ProxyServer)是網(wǎng)絡(luò)信息的中轉(zhuǎn)站,是個人網(wǎng)絡(luò)和Internet服務(wù)商之間的中間代理機構(gòu),負責轉(zhuǎn)發(fā)合法的網(wǎng)絡(luò)信息,對轉(zhuǎn)發(fā)進行控制和登記。代理服務(wù)器大多被用來連接Internet(國際互聯(lián)網(wǎng))和LocalAreaNetwork(局域網(wǎng))。根據(jù)連接方式的不同,代理可以被分為正向代理和反向代理。2.4
Nginx-負載均衡2.4.1
反向代理與負載均衡正向代理可以隱藏客戶端信息,使服務(wù)端無法判斷是否為惡意訪問,給網(wǎng)站帶來了極大的安全隱患。由此,網(wǎng)站同樣也會使用代理器,防止惡意的客戶端會Web服務(wù)器的直接訪問,而網(wǎng)站使用的代理器叫做反向代理。正向代理是處于客戶端與服務(wù)端之間的代理節(jié)點。客戶端將請求發(fā)送給正向代理,正向代理再向服務(wù)端進行請求,最終正向代理將響應(yīng)返回給客戶端,常見的正向代理有路由器、防火墻等。通常防火墻不允許客戶機直接訪問外網(wǎng),正向代理的作用是代理內(nèi)網(wǎng)客戶機訪問外網(wǎng),并使外網(wǎng)服務(wù)端對客戶機不可見,如圖所示。2.4
Nginx-負載均衡2.4.1
反向代理與負載均衡正向代理和反向代理的區(qū)別在于代理的對象不一樣,正向代理的代理對象是客戶端,反向代理的代理對象是服務(wù)端。負載均衡也叫代理,是代理的一種,在Nginx負載集群中,Nginx僅僅是作為NginxProxy反向代理使用的,由于其反向代理的功能實現(xiàn)的效果是負載均衡集群的效果,本書把它稱為Nginx負載均衡。Nginx做反向代理時,可以根據(jù)URL進行判斷,然后分配到不同的后臺Web服務(wù)器上,所以說它是一個典型的七層負載均衡器。反向代理同樣是處于客戶端與服務(wù)端之間的代理節(jié)點,與正向代理不同的是,反向代理是服務(wù)于客戶端的代理節(jié)點。客戶端的請求不會直接發(fā)送給服務(wù)端,而是先由反向代理服務(wù)器接收,再由反向代理發(fā)送給服務(wù)端,如圖所示。2.4
Nginx-負載均衡2.4.1
反向代理與負載均衡當大量用戶訪問網(wǎng)站時,Nginx將用戶的請求轉(zhuǎn)發(fā)給后端對應(yīng)的服務(wù)器,服務(wù)器處理完請求后再轉(zhuǎn)發(fā)給Nginx負載均衡服務(wù)器,Nginx負載均衡服務(wù)器點最后響應(yīng)給客戶端,這樣即可實現(xiàn)負載均衡的功能,以提升系統(tǒng)的吞吐量、請求性能、高容災。Nginx要實現(xiàn)負載均衡需要用到proxy_pass代理模塊配置,與Nginx的代理功能較為相似。當客戶端訪問時,Nginx負載均衡將客戶端請求代理轉(zhuǎn)發(fā)至一組上游服務(wù)器,如圖所示。2.4
Nginx-負載均衡2.4.1
反向代理與負載均衡首先Nginx使用upstream模塊定義后端的上游服務(wù)器組。在上游服務(wù)器組中可以添加多臺后端服務(wù)器。然后在server模塊中定義虛擬主機,但是這個虛擬主機不指定自己的Web目錄站點,它將使用location規(guī)則匹配URL,然后轉(zhuǎn)發(fā)到上面定義好的上游服務(wù)器組中,最后根據(jù)調(diào)度算法再轉(zhuǎn)發(fā)到后端服務(wù)器上。Nginx負載均衡實現(xiàn)原理如圖所示。2.4
Nginx-負載均衡2.4.2
Nginx負載均衡的優(yōu)缺點Nginx作為負載均衡具備如下特點。1.作為開源軟件,功能強大,性能卓越,運行穩(wěn)定。2.配置文件簡單靈活。3.有內(nèi)置的健康檢查功能,能夠自動剔除工作不正常的后端服務(wù)器。4.上傳文件使用異步模式。5.支持多種分配策略,可以分配權(quán)重,分配方式靈活。Nginx作為負載均衡的優(yōu)缺點如下所示。優(yōu)點Nginx可以復制用戶請求。在后端服務(wù)器出現(xiàn)問題時,Nginx會再復制一份請求發(fā)給另一臺后端服務(wù)器。LVS在這種情況下,只能由用戶重新發(fā)請求。Nginx可以根據(jù)域名、URL識別用戶的請求類型,因此Nginx可以做動靜分離。而LVS作為4層負載均衡,只能針對IP進行負載均衡,無法針對文件類型做負載均衡。Nginx為開源軟件,可以免費使用。缺點Nginx不僅要把用戶的請求發(fā)送給后端真實服務(wù)器,還要將后端真實服務(wù)器返回的頁面發(fā)送給用戶,流量會經(jīng)過Nginx,所以Nginx可能成為瓶頸。2.4
Nginx-負載均衡2.4.3
Nginx負載均衡算法負載均衡將流量分發(fā)給后端Web服務(wù)器,不同的算法對應(yīng)著負載均衡不同的流量分發(fā)方式。下面是Nginx常用的5種算法。1.輪詢算法(RoundRobin,簡稱RR)2.加權(quán)輪詢算法(WeightRoundRobin,簡稱WRR)3.IP_hash算法4.fair公平算法5.URL_hash算法2.4
Nginx-負載均衡2.4.3
Nginx負載均衡算法1.輪詢算法(RoundRobin,簡稱RR)輪詢算法是負載均衡分發(fā)流量的默認算法。負載均衡調(diào)度器通過輪詢調(diào)度算法將外部請求按順序輪流分配到集群中的真實服務(wù)器上,它均等地對待每一臺服務(wù)器,而不管服務(wù)器上實際的連接數(shù)和系統(tǒng)負載。在配置文件的upstream模塊中輪詢算法的示例代碼。#配置服務(wù)器組upstreamtest{server1:8080;server2:8080;}server{······此處省略部分代碼······#引用服務(wù)器組location/{proxy_passhttp://test;proxy_set_headerHost$host:$server_port;}}2.4
Nginx-負載均衡2.4.3
Nginx負載均衡算法2.加權(quán)輪詢算法(WeightRoundRobin,簡稱WRR)負載均衡調(diào)度器可以通過weight指定輪詢的權(quán)重,權(quán)重(比例)越大,被調(diào)度的次數(shù)越多。在配置文件的upstream模塊中加權(quán)輪詢算法的示例代碼。upstreamtest{server1:8080weight=10;server2:8080weight=5;}3.IP_hash算法負載均衡調(diào)度器根據(jù)每個請求IP進行調(diào)度,可以解決會話的問題,且不能使用weight。即負載均衡調(diào)度器會將同一個客戶端IP,發(fā)給同一個Web服務(wù)器。在配置文件的upstream模塊中IP_hash算法的示例代碼。upstreamtest{ip_hash;server1:8080;server2:8080;}2.4
Nginx-負載均衡2.4.3
Nginx負載均衡算法4.fair公平算法fair公平算法是Nginx借助第三方插件實現(xiàn)的調(diào)度算法。負載均衡調(diào)度器可以根據(jù)請求頁面的大小和加載時間長短進行調(diào)度,前提是使用第三方的upstream_fair模塊。當客戶端請求頁面比較大時,負載均衡則將請求轉(zhuǎn)發(fā)給后端配置比較高的Web服務(wù)器。在配置文件的upstream模塊中fair公平算法的示例代碼。upstreambackserver{serverserver1;serverserver2;fair;}2.4
Nginx-負載均衡2.4.3
Nginx負載均衡算法5.URL_hash算法URL_hash算法是Nginx借助第三方插件實現(xiàn)的調(diào)度算法。負載均衡調(diào)度器按照客戶端請求的URL進行hash之后再進行調(diào)度,使每個URL定向到同一服務(wù)器,前提是使用第三方的hash模塊。當用戶再一次之前訪問過的頁面時,負載均衡就將請求轉(zhuǎn)發(fā)給同一個真實服務(wù)器。在配置文件的upstream模塊中URL_hash算法的示例代碼。upstreambackserver{hash$request_uri;hash_methodcrc32;server1:8080;server2:8080;}2.4
Nginx-負載均衡2.4.4
Nginx負載均衡后端狀態(tài)后端Web服務(wù)器在前端Nginx負載均衡調(diào)度中的狀態(tài),主要有以下幾種。down:表示當前的服務(wù)器暫時不參與負載。weight:默認值為1。weight值越大,負載的權(quán)重就越大。max_fails:表示允許請求失敗的次數(shù),默認值為1。當超過最大次數(shù)時,返回proxy_next_upstream模塊定義的錯誤。fail_timeout:達到max_fails所指定的失敗次數(shù)后需要暫停的時間。backup:所有的非backup狀態(tài)的服務(wù)器,down或者壓力很大時,backup服務(wù)器將會開始接受請求,所以這臺服務(wù)器壓力會最小。client_body_in_file_only:設(shè)置為on可以將客戶端上傳的數(shù)據(jù)記錄到文件中用來做調(diào)試。client_body_temp_path:設(shè)置記錄文件的目錄,最多可以設(shè)置3層目錄。Location:對URL進行匹配,可以進行重定向或者進行新的負載均衡。2.4
Nginx-負載均衡2.4.5
Nginx負載均衡的應(yīng)用實際上,對于用戶訪問量不大的小型企業(yè)來說,一般用不到負載均衡。訪問流量一般的中型企業(yè),通常只做四層負載均衡或七層負載均衡中的一種。而一些大型企業(yè)中,每時每刻訪問量都非常大,通常四、七層負載均衡都會做,常見的負載架構(gòu)如圖所示。2.4
Nginx-負載均衡2.4.4
Nginx負載均衡后端狀態(tài)大型企業(yè)中首先會搭建LVS進行四層請求的分發(fā),分發(fā)后的請求再經(jīng)過七層負載均衡器Nginx才能到達后端真實的服務(wù)器接受處理??偟膩碚f,負載均衡不論是各種軟件還是硬件上的解決方案,主要是將大量的并發(fā)請求按照一定的規(guī)律分發(fā)給不同的服務(wù)器處理,從而減少某臺服務(wù)器的瞬時壓力,提高網(wǎng)站的高可用性。Nginx在負載均衡的應(yīng)用之所以廣泛,主要歸功于它的靈活配置,一個nginx.conf文件解決大部分問題,不論是Nignx創(chuàng)建虛擬服務(wù)器、Nginx的反向代理服務(wù)器,還是本文介紹的Nginx的負載均衡,幾乎都在這個配置文件中進行。在服務(wù)器上只需要把Nginx搭建完成即可運行起來,而且它是一款輕量級應(yīng)用,只需要占用小部分資源即可實現(xiàn)多種實用性功能。2.5Web集群實戰(zhàn)案例-業(yè)務(wù)上線工作原理準備環(huán)境部署數(shù)據(jù)庫論壇業(yè)務(wù)上線部署負載均衡-Nginx實現(xiàn)Web服務(wù)負載均衡2.5
Web集群實戰(zhàn)案例-業(yè)務(wù)上線2.5.1
工作原理在負載均衡集群中,Web服務(wù)集群的所有服務(wù)器節(jié)點向客戶端提供相同的服務(wù)。集群負載均衡器則會接收用戶的入站請求,然后將請求分攤給后端的Web服務(wù)集群。這樣即可實現(xiàn)負載均衡的功能,以提升系統(tǒng)的吞吐量、請求性能、高容災。本節(jié)的案例中,將Nginx作為負載均衡器,也是反向代理服務(wù)器,在Web集群上部署博客應(yīng)用,其工作原理如圖2.22所示。Nginx要實現(xiàn)負載均衡需要用到proxy_pass代理模塊配置,與Nginx的代理功能較為相似。所有用戶的請求統(tǒng)一發(fā)送到Nginx負載均衡器,然后根據(jù)負載均衡器的調(diào)度算法請求訪問web1和web2。2.5
Web集群實戰(zhàn)案例-業(yè)務(wù)上線2.5.1
工作原理準備4臺VM虛擬機(或者物理服務(wù)器),一臺做負載均衡器,兩臺Web服務(wù)器做集群,一臺做數(shù)據(jù)庫服務(wù)器,具體如表所示。HostNameIP說明lb139Nginx負載均衡器web140Web服務(wù)器部署論壇應(yīng)用web241Web服務(wù)器部署論壇應(yīng)用db142數(shù)據(jù)庫服務(wù)器說明:數(shù)據(jù)庫服務(wù)器采用Mariadb進行實現(xiàn),操作系統(tǒng)版本CentOS7.6,提前關(guān)閉防火墻及SELinux(過程不再贅述)。2.5
Web集群實戰(zhàn)案例-業(yè)務(wù)上線2.5.1
工作原理為了保證各服務(wù)器的時間一致,保證工作內(nèi)容不會受時間干擾(有些計劃工作內(nèi)容與時間相關(guān)度很高),給用戶提供更優(yōu)質(zhì)的服務(wù),一般工作時都需要將網(wǎng)站后臺所有服務(wù)器的時間進行校準。1.首先,通過各個服務(wù)器上在服務(wù)器中安裝ntpdate工具,具體如下所示。在使用ntpdate工具校對時間時,在命令中添加時間服務(wù)器的IP地址或域名即可。而時間服務(wù)器的IP地址或域名只需要通過搜索引擎進行搜索即可得到。此處參考NTP授時快速域名服務(wù)網(wǎng)站(/),這個網(wǎng)站中有大量的時間服務(wù)器IP地址可供選擇。[root@qfedu~]#
yum-yinstallntpdate2.5
Web集群實戰(zhàn)案例-業(yè)務(wù)上線2.5.1
工作原理2.通過網(wǎng)站主頁面中的“IP池”,即可獲取時間服務(wù)器IP地址,如圖所示?!癐P池”中的時間服務(wù)器IP地址都是由網(wǎng)站本身、企業(yè)或個人提供的,為了保證其服務(wù)的可靠性,應(yīng)盡量選擇由網(wǎng)站本身或企業(yè)提供的時間服務(wù)器IP地址。3.此處選用阿里云提供的1進行時間校對,將“IP池”中對應(yīng)時區(qū)的時間服務(wù)器IP添加到時間調(diào)整命令中。[root@qfedu~]#ntpdate-u12.5
Web集群實戰(zhàn)案例-業(yè)務(wù)上線2.5.1
工作原理4.在線上業(yè)務(wù)中為了保證服務(wù)器系統(tǒng)時間的準確性,可以通過配置計劃任務(wù)定時對系統(tǒng)時間進行校準。[root@qfedu~]#crontab-e*/30****ntpdate-u1[root@qfedu~]#crontab-l*/30****ntpdate-u1添加了一條每30分鐘校準一次系統(tǒng)時間的計劃任務(wù)。2.5
Web集群實戰(zhàn)案例-業(yè)務(wù)上線2.5.3
部署數(shù)據(jù)庫1.在準備的數(shù)據(jù)庫服務(wù)器(42)上部署Mariadb。首先安裝MariaDB客戶端與服務(wù)端[root@db1~]#yum-yinstallmariadbmariadb-server……此處省略部分代碼……已安裝:mariadb.x86_641:5.5.68-1.el7mariadb-server.x86_641:5.5.68-1.el7作為依賴被安裝:perl-Compress-Raw-Bzip2.x86_640:2.061-3.el7……此處省略部分代碼……
作為依賴被升級:mariadb-libs.x86_641:5.5.68-1.el7完畢!完畢!2.啟動MariaDB服務(wù),并設(shè)置其開機自啟。[root@db1~]#systemctlstartmariadb[root@db1~]#systemctlenablemariadb2.5
Web集群實戰(zhàn)案例-業(yè)務(wù)上線2.5.3
部署數(shù)據(jù)庫3.通過如下指令進入數(shù)據(jù)庫安全設(shè)置模式,更改數(shù)據(jù)庫密碼。[root@db1~]#mysql_secure_installation……此處省略部分代碼……Setrootpassword?[Y/n]YNewpassword:123Re-enternewpassword:123Passwordupdatedsuccessfully!Reloadingprivilegetables.....Success!……此處省略部分代碼……Cleaningup...Alldone!Ifyou'vecompletedalloftheabovesteps,yourMariaDBinstallationshouldnowbesecure.ThanksforusingMariaDB!這里設(shè)置的用戶名默認為root,密碼為123。2.5
Web集群實戰(zhàn)案例-業(yè)務(wù)上線2.5.3
部署數(shù)據(jù)庫4.登錄數(shù)據(jù)庫,授予Web服務(wù)器操作權(quán)限,然后創(chuàng)建網(wǎng)站數(shù)據(jù)庫。[root@db1~]#mysql-uroot-p123……此處省略部分代碼……MariaDB[(none)]>grantallon*.*toroot@'40'identifiedby'123';QueryOK,0rowsaffected(0.00sec)MariaDB[(none)]>grantallon*.*toroot@'41'identifiedby'123';QueryOK,0rowsaffected(0.00sec)#創(chuàng)建discuz數(shù)據(jù)庫,做Web集群的數(shù)據(jù)庫MariaDB[(none)]>createdatabasediscuz;QueryOK,1rowaffected(0.21sec)MariaDB[(none)]>flushprivileges;QueryOK,0rowsaffected(0.06sec)MariaDB[(none)]>\qBye2.5
Web集群實戰(zhàn)案例-業(yè)務(wù)上線2.5.4
論壇業(yè)務(wù)上線1.在兩臺Web服務(wù)器上搭建LNMP環(huán)境,首先安裝Nginx,并設(shè)置為開機自啟。[root@web1~]#yuminstall-ynginx[root@web1~]#systemctlstartnginx[root@web1~]#systemctlenablenginx2.Nginx服務(wù)啟動后,會堅守在系統(tǒng)的80端口等待用戶請求的到來。檢查Nginx是否正常工作在80端口。[root@web1~]#netstat-unltp|grep80tcp00:80:*LISTEN14484inx:mastertcp600:::80:::*LISTEN14484inx:master3.下載安裝PHP-FPM及相關(guān)插件。[root@web1~]#yuminstall-yphp-fpmphp-mysqlphp-gd4.PHP-FPM安裝完成后,將其開啟并設(shè)置其開機自啟。[root@web1~]#systemctlstartphp-fpm[root@web1~]#systemctlenablephp-fpm2.5
Web集群實戰(zhàn)案例-業(yè)務(wù)上線2.5.4
論壇業(yè)務(wù)上線5.PHP正常工作在9000端口,查看PHP-FPM的進程信息。[root@web1~]#netstat-anpt|grepphp-fpmtcp00:9000:*LISTEN72441/php-fpm:mast6.由于Nginx默認只處理以.html結(jié)尾的文件,而現(xiàn)在網(wǎng)站要處理PHP文件,那么需要將.php文件加入網(wǎng)站處理的范圍,更新網(wǎng)站接收的文件類型。[root@web1~]#vi/etc/nginx/conf.d/default.confserver{listen80;server_namelocalhost;location/{root/usr/share/nginx/html;indexindex.phpindex.htmlindex.htm;}location
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東省菏澤市東明縣第一中學2025屆高三“一模”考試語文試題含解析
- 山東省濰坊市重點中學2025屆高三高考沖刺模擬考試(一)化學試題含解析
- 山西農(nóng)業(yè)大學《日本文學史與作品選讀》2023-2024學年第二學期期末試卷
- 武漢鐵路職業(yè)技術(shù)學院《物理化學基礎(chǔ)》2023-2024學年第二學期期末試卷
- 武漢工程大學郵電與信息工程學院《醫(yī)學分子生物學實驗技術(shù)》2023-2024學年第二學期期末試卷
- 2025年藝術(shù)生文化課模擬考試試題及答案
- 四川省瀘州市瀘縣重點名校2024-2025學年初三下學期入學摸底英語試題試卷含答案
- 2025年政府采購師考試試題及答案分析
- 烏海職業(yè)技術(shù)學院《臨床輸血學檢驗技術(shù)本》2023-2024學年第一學期期末試卷
- 鐵嶺師范高等??茖W校《土木工程專業(yè)前沿》2023-2024學年第一學期期末試卷
- 運動營養(yǎng)學知到課后答案智慧樹章節(jié)測試答案2025年春黑龍江冰雪體育職業(yè)學院
- AI時代職業(yè)院校財會類專業(yè)課程教學改革探討
- 金氏五行升降中醫(yī)方集
- 煤礦防洪專項應(yīng)急預案
- 中華民族節(jié)日文化知到課后答案智慧樹章節(jié)測試答案2025年春云南大學
- 汽輪機保護裝置原理與應(yīng)用考核試卷
- 回收設(shè)施布局與優(yōu)化-深度研究
- 勞務(wù)協(xié)議到期不續(xù)簽通知書(2025年版)
- 物流產(chǎn)業(yè)互聯(lián)網(wǎng)平臺發(fā)展研究及趨勢
- 2025發(fā)展對象考試試題庫及參考答案(完整版)
- 股份轉(zhuǎn)讓協(xié)議模板
評論
0/150
提交評論