Apache部署多網站(二級域名同理)

原文地址: https://www.jeremyjone.com/505/ ,轉載請註明。


Apache建站很容易,但是並不像IIS那樣隨便點幾下就萬事OK了,還是需要我們經過一些簡單的配置才能正常運行。

對於Apache,我也僅僅是簡單接觸,最近研究了一下二級域名的配置方法,也是出於好奇吧,把我的配置過程分享一下,對於多網站,這個是完全同理的,因爲多網站和二級域名都屬於跨域操作。

file

1、配置httpd.conf

設置多個站點,我們需要設置Apache提供的VirtualHost功能,我在網上看了不少教程,有很多坑,我一個一個都試過了,最後找到適合我的方案。

首先打開httpd.conf,這個是Apache的配置文件,因系統不同,可能名稱和路徑都不相同,以自己電腦爲準:

  • 我的配置:Apache/2.4.6 (CentOS)
vim /etc/httpd/conf/httpd.conf

打開後在大約80行的地方(如下圖所示),找到'Main' server configuration

file

我看了很多網上的教程,都是什麼直接解鎖註釋就OK了,很不幸,2.4.6版本已經沒有註釋的代碼了。。。所以需要我們自己填寫。不過這段註釋文本已經寫的很明白,我們照葫蘆寫即可。

所以其實這段代碼不一定寫在這裏,不過我還是習慣在相關注釋文本下寫對應的代碼塊。將如下代碼添加到此處,也就是上圖的代碼部分(88行開始)

其實這個就是默認配置,註釋已經寫明白,如果配置了<VirtualHost>,那麼默認配置將會被覆蓋,爲了默認可以正常使用,我們需要把這段配置放在第一個。

# 這是默認站點配置
<VirtualHost *:80>
    ServerAdmin root@localhost
    ServerName localhost:80
    DocumentRoot "/var/www/html"
    <Directory "/var/www/html">
        Options  Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

# 這是自定義的新站點配置
<VirtualHost *:80>
    ServerAdmin root@localhost  # 你的郵箱
    ServerName api.jeremyjone.com  # 該站點的訪問域名
    DocumentRoot "/var/www/html2"  # 該站點文件路徑
    <Directory "/var/www/html2">  # 該站點路徑訪問權限
		Options  Indexes FollowSymLinks
		AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

然後重啓:

systemctl restart httpd

嗯,你沒看錯,他已經可以了。當然,不要忘記創建上面新建的/var/www/html2文件夾,並且聲稱一個index.html文件,這樣,api.jeremyjone.com就可以訪問了。我的測試效果如下:

file

它的確已經成功了,但是此時它顯示的是"不安全",這個很頭疼。因爲它是新站點,需要重新配置SSL,所以,我們還需要配置一下SSL。

2、配置SSL.conf

同樣的,打開vim /etc/httpd/conf.d/ssl.conf文件,不用細看,直接反倒最下面,他應該是以</VirtualHost>結尾,沒有錯,這個配置文檔本身完完全全是爲了我們的默認主站點配置的。我們現在只需要在下面創建一個新配置即可。

<VirtualHost *:443>
    DocumentRoot "/var/www/html2"
    ServerName api.jeremyjone.com
    SSLEngine on
    SSLCertificateFile 你的certificateFile文件
    SSLCertificateKeyFile 你的certificateKeyFile文件
    SSLCertificateChainFile 你的certificateChainFile文件
</VirtualHost>
  • SSL認證文件可以在各個雲服務商免費索取。注意,免費的SSL認證只支持單個站點,即 www.jeremyjone.comapi.jeremyjone.com 不通用,需要單獨索取。

嗯,同樣就這麼簡單,他也配置好了,現在我們可以使用https://api.jeremyjone.com 訪問我們的新站點了。

file

對於http跳轉到https,還需要另外設置.htaccess文件,在/var/www/html2文件夾下創建一個新的.htaccess文件,把下列代碼複製過去即可:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{HTTP_HOST} ^api.jeremyjone.com [NC]
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/tz.php
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</IfModule>

多個網站已經在像你招手了,快去試一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章