24.Apache搭建網(wǎng)站服務(wù)器:加密、訪問(wèn)控制、虛擬主機(jī)等設(shè)置

一、Apache默認(rèn)登錄用戶是daemon,如何修改登錄用戶?

新建一個(gè)用戶Zhangsan和一個(gè)組httpd,修改httpd主配置文件。我是存放在/usr/local/apache2/conf/http.conf的。

將User daemon改為User ZhangSan

Group daemon改為Group httpd

重啟httpd,查看進(jìn)程用戶




二、加密

為網(wǎng)站設(shè)置加密,需提供賬號(hào)和密碼才能訪問(wèn)

修改httpd主配置文件。

vim?/usr/local/apache2/conf/http.conf

將AllowOverride none改為AllowOverride all

將Require all denied改為Require all granted

然后在htdocs目錄下新建隱藏配置文件.htaccess

cd /usr/local/apache2/htdocs

vim .htaccess ?//內(nèi)容如下

重啟httpd,然后用htpasswd(可以先用whereis htpasswd查看一下命令所在目錄,直接用絕對(duì)路徑,這樣不會(huì)出現(xiàn)命令找不到的問(wèn)題)命令生成上圖中的/usr/local/apache2/bin/a.psd文件

/usr/local/apache2/bin/apachectl restart ?//重啟httpd

/usr/local/apache2/bin/htpasswd -c /usr/local/apache2/bin/a.psd web //生成web用戶,并為其設(shè)置密碼

進(jìn)瀏覽器訪問(wèn),發(fā)現(xiàn)是需要賬號(hào)密碼登錄的了

如果想要去掉加密功能,可以直接將配置文件里的AllowOverride設(shè)為none




三、本機(jī)開(kāi)啟httpd服務(wù)后,局域網(wǎng)內(nèi)其他用戶不能訪問(wèn)網(wǎng)站

經(jīng)查是防火墻的原因

重新設(shè)置防火墻

重啟防火墻

成功




四、限制訪問(wèn)網(wǎng)站的客戶機(jī)地址

修改主配置文件

將Require all granted修改為

<requireall>

? ? Require all granted

? ? ? ? require ip 192.168.252.128 ?//設(shè)置此網(wǎng)站只能被192.168.252.128訪問(wèn),如果設(shè)置這個(gè)地址不能訪問(wèn),則在前面加not

</requireall>

按照上面的設(shè)置后,我再用本機(jī)訪問(wèn)網(wǎng)站地址,被拒絕了,用搭建這個(gè)網(wǎng)站的虛擬機(jī)來(lái)訪問(wèn)是可以的。


五、首頁(yè)文件缺失

首頁(yè)文件在主配置文件的設(shè)置模塊為

<IfModule dir_module>

? ? DirectoryIndex index.html

</IfModule>

如果首頁(yè)文件index.html被刪除的話,訪問(wèn)網(wǎng)站會(huì)直接顯示出網(wǎng)站上的其他文件,方便但是可能不太安全。

如果想要關(guān)閉這個(gè)功能,在首頁(yè)文件缺失的時(shí)候不暴露內(nèi)容,

用參數(shù)Options Index FollowSynlinks來(lái)控制,修改主配置文件。去掉Indexes參數(shù)

重新進(jìn)網(wǎng)站,已經(jīng)不會(huì)顯示其他文件了。



六、vhosts實(shí)現(xiàn)虛擬主機(jī)訪問(wèn)

vhosts功能開(kāi)關(guān)在主配置文件中,所以先修改主配置文件,使得httpd-vhosts.conf文件生效,在httpd-vhosts.conf文件中配置虛擬機(jī)信息,然后配置主機(jī)的hosts,重啟httpd,使配置生效。

vim /usr/local/apache2/conf/httpd.conf ? //修改主配置文件

?vim /usr/local/apache2/conf/extra/httpd-vhosts.conf ? //配置虛擬主機(jī)信息

vim /etc/hosts ?//修改hosts

為兩個(gè)虛擬主機(jī)添加首頁(yè)文件。

重啟httpd服務(wù)后,成功



七、本機(jī)可以訪問(wèn)虛擬主機(jī)域名,局域網(wǎng)內(nèi)其他用戶不可以

分析:

????設(shè)定虛擬主機(jī)后,發(fā)現(xiàn)只能在本機(jī)輸入域名訪問(wèn)才有效,在局域網(wǎng)內(nèi)的其他用戶都是無(wú)效的,仍然只能通過(guò)訪問(wèn)ip來(lái)進(jìn)行。這個(gè)問(wèn)題困擾了我好久,通過(guò)修改防火墻和vhosts配置問(wèn)價(jià)多次仍不得要領(lǐng)。所以仔細(xì)把ip和域名的關(guān)系縷了一遍,終于給我找到了問(wèn)題。因?yàn)槲覄倓傇诒緳C(jī)上的hosts文件添加了ip和域名的對(duì)應(yīng)關(guān)系,所以本機(jī)輸入域名是可以找到ip,并進(jìn)行解析的。但是在局域網(wǎng)內(nèi)的其他主機(jī)上并沒(méi)有這個(gè)對(duì)應(yīng)關(guān)系,所以我在windows系統(tǒng)的hosts文件中增加了對(duì)應(yīng)關(guān)系。windows系統(tǒng)的hosts文件存在這里:

成功!


八、設(shè)置網(wǎng)頁(yè)文件存放目錄

Apache的網(wǎng)頁(yè)文件存放目錄默認(rèn)為htdocs,在主配置文件中修改目錄權(quán)限。

[root@www htdocs]# vim /usr/local/apache2/conf/httpd.conf

? ??DocumentRoot "/usr/local/apache2/htdocs"

????<Directory "/usr/local/apache2/htdocs">

????Options Indexes FollowSymLinks? ? ? ? ? //Options指令通知Apache禁止使用目錄索引,F(xiàn)ollowSymLinks表示不允許使用符號(hào)鏈接

????AllowOverride None? ? ? ? ? //禁止用戶對(duì)目錄配置文件(.htaccess)進(jìn)行重載 (修改)

????Order deny,allow? ? ? ? ? //更改訪問(wèn)權(quán)限的優(yōu)先順序,禁止默認(rèn)訪問(wèn)的存在

????Allow from all?

</Directory>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容