使用 Web 服務 為 ECS Linux 實例配置網站及綁定域名


Nginx 服務綁定域名

https://help.aliyun.com/knowledge_detail/41091.html?spm=a2c4e.11155515.0.0.4lvCpF

以 YUM 安裝的 Nginx 為例:

  1. 執行命令 vi /etc/nginx/nginx.conf 編輯 Nginx 的配置文件,將默認的server {...} 配置修改為以下內容:

    1. server {
    2. listen 80 default_server;
    3. server_name www.123.com;
    4. root /home/web1;
    5. location / {
    6. }
    7. error_page 404 /404.html;
    8. location = /40x.html {
    9. }
    10. error_page 500 502 503 504 /50.xhtml;
    11. location = /50x.html {
    12. }
    13. }
    14. server {
    15. server_name www.abc.com;
    16. root /home/web2;
    17. location / {
    18. }
    19. error_page 404 /404.html;
    20. location = /40x.html {
    21. }
    22. error_page 500 502 503 504 /50x.html;
    23. location = /50x.html {
    24. }
    25. }
    • 訪問 www.123.com 時,跳轉到 /home/web1 目錄。
    • 訪問 www.abc.com 時,跳轉到 /home/web2 目錄。
  2. 執行命令 nginx -s reload 重啟 Nginx 服務。

Tomcat 服務綁定域名

  1. 執行命令 vi /etc/TOMCAT_HOME/conf/server.xml編輯 Tomcat 配置文件。

    default_web

    將上述內容修改為:

    1. <Host name="localhost" appBase="webapps" unpackWARs="true" autoPlay="true">
    2. <Value className="org.apache.catalina.valves.AccessLogValue" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %c &quot;%r&quot; %s %b" />
    3. </Host>
    4. <Host name="120.76.210.250" appBase="/data/wwwroot/web" unpackWARs="true" autoPlay="true">
    5. <Content path="" docBase="/data/wwwroot/web" debug="0" reloadable="false" crossContext="true" />
    6. <Value className="org.apache.catalina.valves.AccessLogValue" directory="logs" prefix="120.76.210.250_access_log." suffix=".txt" pattern="%h %l %u %c &quot;%r&quot; %s %b" />
    7. </Host>
    8. <Host name="www.abc.com" appBase="/data/wwwroot/default" unpackWARs="true" autoPlay="true">
    9. <Content path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true" />
    10. <Value className="org.apache.catalina.valves.AccessLogValue" directory="logs" prefix="www.abc.com_access_log." suffix=".txt" pattern="%h %l %u %c &quot;%r&quot; %s %b" />
    11. </Host>
    • 訪問 www.abc.com 時,默認跳轉到 /data/wwwroot/default 目錄。
    • 訪問 120.76.210.250 時,默認跳轉到 /data/wwwroot/web 目錄。
  2. 運行 bin/shutdown 關閉 Tomcat 服務,再運行 bin/startup 重啟 Tomcat 服務。

Apache 服務綁定域名

以一鍵安裝包配置的 Apache 環境為例:

  1. 執行命令 cd /alidata/server/httpd/conf/vhosts/ 進入站點配置文件目錄。

  2. 執行命令 vi aa.conf 新建一個配置文件,按下鍵盤上的字母 “I” 鍵,復制並粘貼以下內容:

    1. Order allow,deny
    2. Deny from all
    3. DocumentRoot /alidata/www/test
    4. ServerName www.test.com
    5. ServerAlias test.com
    6. ErrorLog "/alidata/log/httpd/test-error.log"
    7. CustomLog "/alidata/log/httpd/test.log"

    注意:您需要修改對應的日志名字以區分不同網站的日志信息。

  3. 執行命令 /alidata/server/httpd/bin/apachectl restart 重啟 Apache 服務。

Apache 服務配置實現多域名跳轉

假設程序目錄為 /var/www/html,網站目錄結構如下:

websitedirectory

  1. 開啟 Apache 的虛擬主機功能,配置對應的虛擬主機到對應的目錄即可。

    80

    documentroot

    實現效果

    • 使用 a.example.com 訪問時,實際是訪問 /var/www/html/a 目錄。
    • 使用 b.example.com 訪問時,實際是訪問 /var/www/html/b 目錄。
    • 使用 c.example.com 訪問時,實際是訪問 /var/www/html/c 目錄。

Apache 服務配置二級域名

前提條件:您有一個泛域名解析的頂級域名,例如: aliyun.com 。

  1. 在 httpd.conf 中打開 mod_rewrite 模塊;
  2. 在 httpd.conf 的最后,添加以下內容:

    1. RewriteEngine on
    2. RewriteMap lowercase int:tolower
    3. RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
    4. RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
    5. RewriteCond ${vhost:%1} ^(/.*)$
    6. RewriteRule ^/(.*)$ %1/$1

    注意:/usr/local/etc/apache 是 Apache 服務配置文件所在路徑,您需要根據實際情況修改。

  3. 執行命令 vi vhost.map 新建文件,復制並粘貼以下內容:

    1. www.aliyun.com /usr/local/www/data-dist/aliyun
    2. bbs.aliyun.com /usr/local/www/data-dist/aliyunbbs
    3. anyname.aliyun.com /usr/local/www/data-dist/anyname

    注意:請注意保持域名+空格+絕對路徑的格式。

  4. 在根目錄 /usr/local/www/data-dist 下創建對應目錄:aliyun , bbs , any name 等目錄。

    • 通過瀏覽器訪問 www.aliyun.com 時,實際上訪問的就是 /usr/local/www/data-dist/aliyun 目錄下的文件。
    • 通過瀏覽器訪問 bbs.aliyun.com 時,實際上訪問的就是 /usr/local/www/data-dist/aliyunbbs 目錄下的文件。

您可以通過修改 vhost.map 來增加、刪除和修改您的二級域名和所指向的實際路徑,不需要重啟 Apache 服務。

Apache 禁止未經許可的域名訪問 ECS 上的網站

ECS 實例上的網站被人惡意指向,例如,您的實例 IP 地址為 123.123.123.123,正常服務的域名為 www.abc.com , 惡意用戶使用其他的域名 www.fake.com , 指向 123.123.123.123,此時客戶端訪問 www.fake.com 時會出現您的網站內容。

通過 Apache 的虛擬主機可以變通的解決這個問題。以如下場景為例:

Apache 版本號 ECS 實例上的網站
2.2.15 http://t1.huigher.cn/
http://p1.huigher.cn/
  1. 打開 Apache 的實際配置文件,如執行命令 vi /etc/httpd/conf/httpd.conf 打開 CentOS 的 Apache 配置文件,加入以下內容:

    1. 加入代碼 NameVirtualHost *:80,告知 Apache 使用基於 host 名的虛擬主機功能:

    2. 加入以下代碼。

      1. <ViretualHost *:80>
      2. DocumentRoot /var/www/html/error/
      3. ServerName *
      4. ErrorLog logs/dummy-host.example.com-error_log
      5. CustomeLog logs/dummy-host.example.com-access_log common
      6. </ViretualHost>

      注意:當客戶端攜帶的 host 名不在之后設置的網站域名內時,會指向一個 403 錯誤頁面告知用戶域名非法,其中 DocumentRoot 是放置錯誤提示頁面的目錄,在下面可以放置一個簡單的 html 頁面提示用戶正在訪問非法域名。

    3. 加入以下代碼。

      1. <VirtualHost *:80>
      2. ServerAdmin p1@huigher.cn
      3. DocumentRoot /var/www/html/another/
      4. ServerName p1.huigher.cn
      5. ErrorLog logs/p1.huigher.cn-error_loh
      6. CustomLog logs/p1.huigher.cn-access_log common
      7. </VirtualHost>
      8. <VirtualHost *:80>
      9. ServerAdmin t1@huigher.cn
      10. DocumentRoot /var/www/html/
      11. ServerName t1.huigher.cn
      12. ErrorLog logs/t1.huigher.cn-error_loh
      13. CustomLog logs/t1.huigher.cn-access_log common
      14. </VirtualHost>

      注意:這一步告知 Apache 合法的網站主機頭,您需要根據實際情況修改這個代碼塊內容,如示例中的 p1.huigher.cn 和 t1.huigher.cn。

  2. 執行命令 /etc/httpd/bin/apachectl restart 重啟 Apache 服務。

若您希望其他域名訪問您的網站時直接返回 403 錯誤:

    1. 修改第二步中的代碼為以下形式:

      1. <VirtualHost *:80>
      2. DucumentRoot /var/www/html/error/
      3. ServerName *
      4. <Location>
      5. Order Allow, Deny
      6. Deny from all
      7. </Location>
      8. ErrorLog logs/dummy-host.example.com-error_log
      9. CustomLog logs/dummy-host.example.com-access_log commom
      10. </VirtualHost>
    2. 執行命令 /etc/httpd/bin/apachectl restart 重啟 Apache 服務。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM