linux中web伺服器的基本配置
阿新 • • 發佈:2018-11-08
一、實現一個web伺服器
1、安裝web服務
yum -y install httpd
2、配置對應域名
我們可以在/etc/http/conf/ /etc/http/conf.d/ /etc/http/conf.modules.d/ 這三個目錄下建立以.conf為結尾的檔案,在重啟web服務時就會自動讀取配置檔案。
<VirtualHost *:80> DocumentRoot "/var/www/html" ServerName system1.group8.example.com <Directory "/var/www/html">(下列許可權對應的目錄) <RequireAll> Require all granted (允許所有) Require not host .my133t.org (禁止某一個域) </RequireAll> </Directory> <Directory "/var/www/html/private">(不同的許可權對應不同的目錄) Require all denied (禁止所有) Require local(只允許本地) </Directory> </VirtualHost>
然後測試的時候要關閉防火牆以及selinux,或者通過設定防火牆和期望值來允許,這裡就直接全部關閉了
3、客戶端測試
curl system1.group8.example.com
curl system1.group8.example.com/private/
讓我們試一下本機連線
curl system1.group8.example.com/private/(後面‘/’一定要加)
不帶‘/’的後果(大家請注意)
二、配置安全web伺服器
1、首先安裝安全協議包mod_ssl
yum -y install mod_ssl
安裝完成包之後可以在/etc/httpd/conf.d/目錄下發現一個為ssl.conf檔案
vim /etc/httpd/conf.d/ssl.conf
從裡面取出這五行程式碼
2、配置配置檔案
<VirtualHost *:443>(安全協議的埠為443埠) DocumentRoot "/var/www/html" ServerName system1.group8.example.com <Directory "/var/www/html"> <RequireAll> Require all granted Require not host .my133t.org </RequireAll> </Directory> SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCertificateFile /etc/pki/tls/certs/system1.crt (已經簽名的證書) SSLCertificateKeyFile /etc/pki/tls/private/system1.key (證書的金鑰) SSLCACertificateFile /etc/pki/tls/certs/ssl-ca.crt(此證書的CA認證中心) </VirtualHost>
重新啟動httpd服務
systemctl restart httpd
3、客戶端測試
curl -k +測試地址 (curl 中的 -k 為忽視證書的合法性測試)
三、配置虛擬主機
1、配置配置檔案,新增一個新的以埠,地址,或者域名不同的虛擬主機,這裡以域名為列子
vim /etc/httpd/conf.d/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/var/www/virtual" (新的DocumentRoot目錄) ServerName ceshi.com (不同的域名) <Directory "/var/www/virtual"> (對該目錄做的許可權) <RequireAll> Require all granted </RequireAll> </Directory> <Directory "/var/www/virtual/private"> (目錄下的子目錄不同許可權) Require all denied Require local </Directory></VirtualHost>
重新啟動httpd服務
systemctl restart httpd
2、客戶端測試
curl ceshi.com
四、基於AllowOverride實現認證
1、配置配置檔案
<VirtualHost> DocumentRoot "/var/www/html/admin" ServerName haha.com <Directory "/var/www/html/admin"> AllowOverride none AuthType Basic AuthName "Please login" AuthUserfile "/etc/httpd/conf/.htpasswd" Require user xixi </Directory> </VirtualHost>
2、新增使用者xixi
vim /etc/httpd/conf/.htpasswd
htpasswd -b -c -m /etc/httpd/conf/.htpasswd xixi centos
htpasswd -b -m /etc/httpd/conf/.htpasswd haha redhat
3、客戶端測試