国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 操作系統(tǒng) > 正文

N26--第十二周博客作業(yè)

2024-06-28 16:02:35
字體:
供稿:網(wǎng)友

(一)請描述一次完整的http請求處理過程

http請求圖解 這里寫圖片描述

(二)httpd所支持的處理模型有哪些,他們的分別使用于哪些環(huán)境。

所謂httpd支持的處理模型及httpd的mpm機(jī)制 perfork:多進(jìn)程模型,每個進(jìn)程響應(yīng)一個請求 一個主進(jìn)程:負(fù)責(zé)生成子進(jìn)程及回收子進(jìn)程,負(fù)責(zé)創(chuàng)建套接字,負(fù)責(zé)接收請求,并將其派發(fā)給某子進(jìn)程進(jìn)行處理n個子進(jìn)程:每個子進(jìn)程處理一個請求工作模型:會預(yù)先生成5個空閑進(jìn)程,隨時等待用于響應(yīng)用戶請求;在其配置文件中可以指定負(fù)責(zé)最大空閑子進(jìn)程和最小空閑子進(jìn)程; 這里寫圖片描述適用場景:它適合于沒有線程安全庫,需要避免線程兼容性問題的系統(tǒng)。它是要求將每個請求相互獨立的情況下最好的MPM,這樣若一個請求出現(xiàn)問題就不會影響到其他請求,適合于并發(fā)量適中而又追求穩(wěn)定的用戶使用。worker:多進(jìn)程多線程模型,每線程處理一個用戶請求 一個主進(jìn)程:負(fù)責(zé)生成子進(jìn)程;負(fù)責(zé)創(chuàng)建套接字;負(fù)責(zé)接收請求,并將其派發(fā)給某子進(jìn)程進(jìn)行處理多個子進(jìn)程:每個子進(jìn)程負(fù)責(zé)生成多個線程每個線程:負(fù)責(zé)響應(yīng)用戶請求并發(fā)響應(yīng)數(shù)量:m*n,m:子進(jìn)程數(shù)量,n:每個子進(jìn)程所能創(chuàng)建的最大線程數(shù)量適用場景:占據(jù)更少的內(nèi)存,高并發(fā)下表現(xiàn)更優(yōu)秀。event:事件驅(qū)動模型,多進(jìn)程模型,每個進(jìn)程響應(yīng)多個請求 一個主進(jìn)程 :負(fù)責(zé)生成子進(jìn)程;負(fù)責(zé)創(chuàng)建套接字;負(fù)責(zé)接收請求,并將其派發(fā)給某子進(jìn)程進(jìn)行處理子進(jìn)程:基于事件驅(qū)動機(jī)制直接響應(yīng)多個請求適用場景:event模型是三種模型中效率最高的一種,可以突破10K的限制(即并發(fā)數(shù)1W),對海量的系統(tǒng)特別適用。 簡要圖解這里寫圖片描述

(三)源碼編譯安裝LAMP環(huán)境(基于WordPRess程序),并寫出詳細(xì)的安裝、配置、測試過程。

LAMP部署前,主機(jī)規(guī)劃 啟用兩臺CentOS 6主機(jī) ip:192.168.10.217,安裝httpd-2.4,php-5.4 IP:192.168.10.218,安裝MariaDB-5.5LAMP程序的安裝順序 先安裝:在 IP:192.168.10.218的主機(jī)上安裝MariaDB-5.5再安裝:在IP:192.168.10.217的主機(jī)上安裝httpd-2.4最后安裝:在IP:192.168.10.217的主機(jī)上安裝php-5.4安裝MariaDB-5.5 在 IP:192.168.10.218的主機(jī)上的/root目錄下下載 mariadb-5.5.54-linux-x86_64.tar源碼包準(zhǔn)備數(shù)據(jù)目錄 mkdir -pv /mydata/datachown -R MySQL.mysql /mydata/data (這是為了mysql能夠向目錄里面寫數(shù)據(jù))安裝配置mariadb groupadd mysqluseradd -g mysql mysqltar xf mariadb-5.5.54-linux-x86_64.tar -C /usr/localcd /usr/localln -sv mariaDB-version mysqlcd /usr/local/mysqlchown -R root:mysql ./*(防止mysql進(jìn)程被劫持,具有目錄的屬主權(quán)限)cp support-files/my-large.cnf /etc/mysql/my.cnf(mysql進(jìn)程讀取配置文件的順序/etc/my.cnf –> /etc/mysql/my.cnf –>–default-extra-file=/PATH/TO/CONF_FILE –> ~/.my.cnf)vi /etc/mysql/my.cnf 添加: datadir = /mydata/datainnodb_file_per_table = ONskip_name_resolve = ONscripts/mysql_install_db --user=mysql --datadir=/mydata/data 這個地方好像不能使用復(fù)制,必須手打cp support-files/mysql.server /etc/init.d/mysqldchkconfig –add mysqldservice mysqld start將mysql的庫文件共享鏈接出來 vi /etc/ld.so.conf.d/mysql.conf添加:/usr/local/msyql/lib重讀配置文件:ldconfig檢查mysql的庫文件是否可以讀取:ldconfig -p | grep mysql將mysql的客戶端程序的路徑添加到環(huán)境變量中 vi /etc/profile.d/mysql.sh添加 export PATH=/usr/local/mysql/bin:$PATH讓內(nèi)核重新讀取配置文件:. /etc/profile.d/mysql.sh使用mysql的安全安裝工具對mysql進(jìn)行安全加固 mysql_secure_installation登入mysql , 授權(quán)遠(yuǎn)程登入的root用戶 grant all on *.* to root@'192.168.%.%' identified by 'yhy3426356';flush privileges;安裝httpd-2.4 由于在CentOS 6上安裝httpd-2.4,需要編譯安裝,依賴apr-1.4+ , 依賴apr-util-1.4+,那么如果需要在CentOS 6上安裝httpd需要編譯安裝,并且安裝Development tools、Server Platform Development包組和pcre-devel包下載apr-1.5.2.tar和apr-util-1.5.4.tar在當(dāng)前目錄下 , 解壓 ,下載httpd-2.4到當(dāng)前目錄下,解壓1:編譯安裝apr-1.4+ ./configure --prefix=/usr/local/apr/make && make install2:編譯安裝apr-util-1.4+ ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/aprmake && make install3:編譯安裝httpd-2.4 ./configure --prefix=/usr/local/apache-2.4 --sysconfdir=/etc/httpd-2.4 --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-mpm=preformake && make install4:自帶的Apache服務(wù)控制腳本:apachectl腳本在/usr/local/httpd-2.4/bin/目錄下,可以將這個目錄添加到環(huán)境變量中,編輯 vi /etc/profile.d/httpd.sh, 添加export PATH=/usr/local/apache-2.4/bin/:$PATH,那么啟動的時候,就可以直接使用apachectl start5:另外,一般來說需要將頭文件和庫文件輸出 ln -sv /usr/local/apache-2.4/include /usr/include/httpd6:編寫服務(wù)腳本實現(xiàn)service httpd start 啟動httpd 可以拷貝一個啟動腳本,修改中對應(yīng)的變量cp /etc/init.d/httpd httpd2.4vi httpd-2.4#注釋 # if [ -f /etc/sysconfig/httpd ]; then # . /etc/sysconfig/httpd # fi # 修改為編譯安裝的apachectl路徑 apachectl=/usr/local/apache-2.4/bin/apachectl # 修改為編譯安裝的httpd路徑 httpd=${HTTPD-/usr/local/apache-2.4/bin/httpd} prog=httpd # 修改為編譯安裝的pidfile路徑 pidfile=${PIDFILE-/usr/local/apache-2.4/logs/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd-2.4} RETVAL=0 STOP_TIMEOUT=${STOP_TIMEOUT-10} 雖然可以這樣修改,但是服務(wù)控制腳本一定要會編寫,屬于shell編程部分chkconfig --add /etc/rc.d/init.d/httpd-2.4service httpd-2.4 start添加apache 用戶和用戶組,并且修改主配置文件指定user為apache,group為apacheCentOS 7 編譯安裝php5.4安裝 (編譯為httpd的模塊) 下載php-5.4.26.tar ,解壓yum install libxml2-devel libmcrypt-devel bzip2-devel curl-devel -y如果MariaDB和PHP安裝不在一臺主機(jī)上使用:./configure --prefix=/usr/local/php5.4 --with-mysql=mysqlnd --with-openssl --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mbstring --with-png-dir --with-jpeg-dir --with-freetype-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache-2.4/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-curl拷貝php的主配置文件:cp php.ini-production /etc/php.ini編輯httpd的主配置文件,注釋中心主機(jī),啟用虛擬機(jī),在主配置文件中添加: include /etc/httpd-2.4/extra/httpd-vhosts.conf include /etc/httpd-2.4/extra/httpd-php.conf編輯/etc/httpd-2.4/extra/httpd-vhosts.conf文件 修改:<VirtualHost *:80> ServerAdmin 307443272@QQ.com DocumentRoot "/apps/vhosts/b.net" ServerName www.b.net ErrorLog "logs/b.net_error_log" CustomLog "logs/b.net_access_log" common </VirtualHost> <VirtualHost *:80> ServerAdmin 307443272@qq.com DocumentRoot "/apps/vhosts/c.org" ServerName www.c.org ErrorLog "logs/c.org_error_log" CustomLog "logs/c.org_access_log" common </VirtualHost>編輯/etc/httpd-2.4/extra/httpd-php.conf 添加:DirectoryIndex index.php AddType application/x-httpd-php .php首先在/apps/vhosts/b.net中測試下php和mysql vi index.php <?php $conn=mysql_connect('192.168.10.218','root','yhy3426356'); if ($conn) echo "ok"; else echo "failured"; phpinfo(); ?>顯示結(jié)果為ok!!!和PHP的編譯參數(shù)下載WordPress源碼,將wordpress里面的所有的文件解壓至/apps/vhosts/b.net中并且在數(shù)據(jù)庫中創(chuàng)建Wordpress的數(shù)據(jù)庫,和授權(quán)一個用戶給WordPress

(四)建立httpd服務(wù)器(基于編譯的方式進(jìn)行),要求:

提供兩個基于名稱的虛擬主機(jī): (a)www1.stuX.com,頁面文件目錄為/web/vhosts/www1;錯誤日志為/var/log/httpd/www1.err,訪問日志為/var/log/httpd/www1.access; (b)www2.stuX.com,頁面文件目錄為/web/vhosts/www2;錯誤日志為/var/log/httpd/www2.err,訪問日志為/var/log/httpd/www2.access; (c)為兩個虛擬主機(jī)建立各自的主頁文件index.html,內(nèi)容分別為其對應(yīng)的主機(jī)名; (d)通過www1.stuX.com/server-status輸出httpd工作狀態(tài)相關(guān)信息,且只允許提供帳號密碼才能訪問(status:status)。 思路:提過一臺CentOS 7主機(jī),yum 安裝 httpd,在主配置文件中注釋中心主機(jī),在虛擬主機(jī)中啟用兩個server name 。www1.stuX.com虛擬機(jī)中,錯誤日志設(shè)置:ErrorLog “/var/log/httpd/www1.err”, 訪問日志設(shè)置:CustomLog “/var/log/httpd/www1.access” combined”。在 www1.stuX.com虛擬機(jī)中,錯誤日志設(shè)置:/var/log/httpd/www2.err,訪問日志設(shè)置:/var/log/httpd/www2.access。并且在每一個DocumentRoot中寫入index.html,內(nèi)容為其對應(yīng)的主機(jī)名

試驗過程如下:

(1)在主配置文件中注銷中心主機(jī)(2)編輯子配置文件中的虛擬主機(jī)文件 vi /etc/httpd/conf.d/vhost.conf添加內(nèi)容如下: <VirtualHost *:80> ServerName www1.stuX.com DocumentRoot "/web/vhosts/www1" ErrorLog "/var/log/httpd/www1.err" CustomLog "/var/log/httpd/www1.access" combined <Directory "/web/vhosts/www1"> Options none AllowOverride none Require all granted </Directory> <Location /server-status> SetHandler server-status AuthType Basic AuthName "please enter your username and password!" AuthUserFile "/etc/httpd/conf/.htpasswd" Require valid-user </Location> </VirtualHost> <VirtualHost *:80> ServerName www2.stuX.com DocumentRoot "/web/vhosts/www2" ErrorLog "/var/log/httpd/www2.err" CustomLog "/var/log/httpd/www2.access" combined <Directory "/web/vhosts/www2"> Options none AllowOverride none Require all granted </Directory> </VirtualHost>(3)生成虛擬用戶文件 htpasswd -m -c /etc/httpd/conf/.htpasswd tom

(4)測試結(jié)果

![Alt text](./屏幕快照 2017-02-13 上午12.30.23.png)

![Alt text](./屏幕快照 2017-02-13 上午12.38.25.png)

![Alt text](./屏幕快照 2017-02-13 上午12.49.49.png)![Alt text](./屏幕快照 2017-02-13 上午12.50.03.png)

(五)為第4題中的第2個虛擬主機(jī)提供https服務(wù),使得用戶可以通過https安全的訪問此web站點;

(1)要求使用證書認(rèn)證,證書中要求使用的國家(CN)、州(HA)、城市(ZZ)和組織(MageEdu);(2)設(shè)置部門為Ops,主機(jī)名為www2.stuX.com,郵件為admin@stuX.com;(1)準(zhǔn)備CA主機(jī),負(fù)責(zé)簽證(IP:192.168.10.219) (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655mkdir -pv /etc/pki/CA/{certs,crl,newcerts}touch /etc/pki/CA/{serial,index.txt}echo 01 > /etc/pki/CA/serial(2)在httpd服務(wù)器上(IP:192.168.10.216),申請簽證請求 mkdir /etc/httpd/sslcd /etc/httpd/ssl(umask 077;openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)openssl req -new -key /etc/httpd/ssl/httpd.key -out httpd.csr -days 365scp httpd.csr root@192.168.10.219:/root/(3)CA主機(jī)上給httpd服務(wù)器簽證 openssl ca -in /root/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365scp /etc/pki/CA/certs/httpd.crt root@192.168.10.216:/etc/httpd/ssl/(4)在httpd服務(wù)端安裝mod_ssl模塊,并設(shè)置https虛擬主機(jī) yum -y install mod_ssl編輯配置文件/etc/httpd/conf.d/ssl.conf修改: DocumentRoot "/web/vhosts/www2" ServerName www2.stuX.com SSLCertificateFile /etc/httpd/ssl/httpd.crt SSLCertificateKeyFile /etc/httpd/ssl/httpd.key <Directory "/web/vhosts/www2"> Options none AllowOverride none Require all granted </Directory>(5)檢驗結(jié)果 ![Alt text](./屏幕快照 2017-02-13 上午1.43.41.png)

(六)在LAMP架構(gòu)中,請分別以php編譯成httpd模塊形式和php以fpm工作為獨立守護(hù)進(jìn)程的方式來支持httpd,列出詳細(xì)的過程。

(1)php作為httpd的模塊編譯安裝 當(dāng)用戶的請求到達(dá)的時候,到達(dá)web服務(wù)器,靜態(tài)的內(nèi)容都會在本地裝載,都由httpd通過系統(tǒng)調(diào)用進(jìn)行裝載,如果裝載的是靜態(tài)內(nèi)容,直接返回,如果是動態(tài)內(nèi)容,交給httpd的php模塊進(jìn)行處理,將處理的結(jié)果進(jìn)行返回給客戶端,如果動態(tài)頁面需要請求數(shù)據(jù),那么php代碼會通過網(wǎng)絡(luò)套接字連接到MariaDB數(shù)據(jù)庫。這種模式可以使用兩天服務(wù)器,httpd+php 一臺,MariaDB一臺(2)php作為php-fpm編譯安裝,作為一項單獨的服務(wù) 當(dāng)用戶的請求到達(dá)的時候,到達(dá)web服務(wù)器,靜態(tài)的內(nèi)容都會在本地裝載,都由httpd通過系統(tǒng)調(diào)用進(jìn)行裝載,如果裝載的是靜態(tài)內(nèi)容,直接返回。如果是動態(tài)內(nèi)容,將整個請求的URL通過fcgi模塊反向代理至php-fpm服務(wù),php-fpm進(jìn)程會通過URL加載本地的動態(tài)資源路徑,如果動態(tài)頁面需要請求數(shù)據(jù),那么php代碼會通過網(wǎng)絡(luò)套接字連接到MariaDB數(shù)據(jù)庫。可以將三個服務(wù)分別拆分至不同的主機(jī)上
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 大城县| 奉化市| 德兴市| 襄汾县| 白山市| 阳原县| 宝清县| 公主岭市| 余干县| 南岸区| 栾城县| 长沙县| 嘉峪关市| 瓦房店市| 天长市| 邵武市| 永修县| 普兰店市| 寿光市| 宁国市| 澜沧| 武功县| 祁阳县| 东乌| 汕头市| 托克托县| 武胜县| 天津市| 肥东县| 噶尔县| 井陉县| 都兰县| 大厂| 乐山市| 苍溪县| 石柱| 石台县| 翁源县| 汉源县| 喀喇| 罗平县|