1. 程式人生 > >linux中web伺服器的基本配置

linux中web伺服器的基本配置

一、實現一個web伺服器

1、安裝web服務

yum -y install httpd

image.png

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>

image.png

然後測試的時候要關閉防火牆以及selinux,或者通過設定防火牆和期望值來允許,這裡就直接全部關閉了

3、客戶端測試

curl system1.group8.example.com

image.png

curl system1.group8.example.com/private/

image.png

讓我們試一下本機連線

curl system1.group8.example.com/private/(後面‘/’一定要加)

image.png

不帶‘/’的後果(大家請注意)

image.png


二、配置安全web伺服器

1、首先安裝安全協議包mod_ssl

yum -y install mod_ssl

image.png

安裝完成包之後可以在/etc/httpd/conf.d/目錄下發現一個為ssl.conf檔案

image.png

vim /etc/httpd/conf.d/ssl.conf

image.png

從裡面取出這五行程式碼

image.png

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>

image.png

重新啟動httpd服務

systemctl restart httpd

image.png

3、客戶端測試

curl -k +測試地址  (curl 中的 -k 為忽視證書的合法性測試)

image.png


三、配置虛擬主機

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>

image.png

重新啟動httpd服務

systemctl restart httpd

2、客戶端測試

curl ceshi.com

image.png


四、基於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>

image.png

2、新增使用者xixi

vim /etc/httpd/conf/.htpasswd

image.png

image.png

htpasswd -b -c -m /etc/httpd/conf/.htpasswd xixi centos

image.png

htpasswd -b -m /etc/httpd/conf/.htpasswd haha redhat

image.png

3、客戶端測試

image.png

image.png