注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 云服务器 ECS

使用 Web 服务 为 ECS Linux 实例配置网站及绑定域名

更新时间: 访问次数:3997

免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

 

概述

本文主要介绍Linux实例如何在Web服务中绑定域名。

 

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

本文主要介绍如下几点内容,您可以根据实际需要选择。

 

Nginx服务绑定域名

如下为配置Nginx服务绑定域名的步骤,此处的Nginx程序以通过Yum安装的Nginx为例,您需要根据实际情况进行调整。

  1. 执行如下命令编辑Nginx的配置文件。
    1
    vi /etc/nginx/nginx.conf
  2. 将默认的“server {...}”配置段修改为如下内容。
    1
    server {<br>     listen    80 default_server;<br>     server_name    www.123.com;<br>     root    /home/web1;<br>     location / {<br>     }<br>     error_page 404 /404.html;<br>         location = /40x.html {<br>     }<br>     error_page 500 502 503 504 /50.xhtml;<br>         location = /50x.html {<br>     }<br> }<br> server {<br>     server_name www.abc.com;<br>     root    /home/web2;<br>     location / {<br>     }<br>     error_page 404 /404.html;<br>         location = /40x.html {<br>     }<br>     error_page 500 502 503 504 /50x.html;<br>         location = /50x.html {<br>     }<br> }
    注:此处的配置主要实现如下两点目的。您需要根据实际需要调整对应的配置内容。
    • 访问www.123.com地址时,等于访问/home/web1目录。
    • 访问www.abc.com地址时,等于访问/home/web2目录。
    您需要根据实际需要调整对应的配置内容。
  3. Ecs 键退出编辑模式,输入 :wq 保存并退出。
  4. 执行如下命令,重启Nginx服务。
    1
    nginx -s reload

 

Tomcat服务绑定域名

如下为配置Tomcat服务绑定域名的步骤,其中部分与Tomcat相关的路径,您需要根据实际情况进行调整。

  1. 执行如下命令,编辑Tomcat 配置文件。
    1
    vi /[$Tomcat_Home]/conf/server.xml
    注:[$Tomcat_Home]指Tomcat程序的主目录,现场以实际情况为准。
  2. 找到如下的默认配置。
    62.png
  3. 将上述内容修改为如下配置。
    1
    <Host name="localhost"    appBase="webapps"    unpackWARs="true"    autoDeploy="true"><br> <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" /><br> </Host><br> <Host name="www.123.com"    appBase="/data/wwwroot/web"    unpackWARs="true"    autoDeploy="true"><br> <Content path=""    docBase="/data/wwwroot/web"    debug="0"    reloadable="false"    crossContext="true" /><br> <Value className="org.apache.catalina.valves.AccessLogValue"    directory="logs"    prefix="www.123.com_access_log."    suffix=".txt"    pattern="%h %l %u %c &quot;%r&quot; %s %b" /><br> </Host><br> <Host name="www.abc.com"    appBase="/data/wwwroot/default"    unpackWARs="true"    autoDeploy="true"><br> <Content path=""    docBase="/data/wwwroot/default"    debug="0"    reloadable="false"    crossContext="true" /><br> <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" /><br> </Host>
    注:此处的配置主要实现如下两点目的。您需要根据实际需要调整对应的配置内容。
    • 访问www.abc.com地址时,等于访问/data/wwwroot/default目录。
    • 访问www.123.com地址时,等于访问/data/wwwroot/web目录。
  4. Ecs 键退出编辑模式,输入 :wq 保存并退出。
  5. 执行如下命令,关闭Tomcat服务。
    1
    /[$Tomcat_Home]/bin/shutdown
  6. 执行如下命令,启动Tomcat服务。
    1
    /[$Tomcat_Home]/bin/startup

 

Apache服务绑定域名

如下为配置Apache服务绑定域名的步骤。

  1. 执行如下命令,进入Apache站点配置文件目录。
    1
    cd /[$Apache_Home]/conf/vhosts/
    注:[$Apache_Home]指Apache程序的主目录,现场以实际情况为准。
  2. 执行vi test.conf命令新建一个配置文件,按 i 键进入编辑模式,参考如下配置,复制到test.conf文件中。
    1
    Order allow,deny<br>Deny from all<br>DocumentRoot /alidata/www/test<br>ServerName www.test.com<br>ServerAlias test.com<br>ErrorLog "/alidata/log/httpd/test-error.log"<br>CustomLog "/alidata/log/httpd/test.log"
    注:请根据实际情况修改网站域名、网站根目录、日志文件名和目录等配置信息。
  3. 执行如下命令,重启Apache服务。
    1
    /[$Apache_Home]/bin/apachectl restart

 

Apache服务配置实现多域名跳转

假设网站的目录为/var/www/html,网站目录结构如下。
63.png

开启Apache的虚拟主机功能,参考如下图,配置虚拟主机到对应的目录即可。
64.png
65.png
修改完成后,可以实现如下几点效果。

  • 访问a.xxxx.com地址时,等于访问/var/www/html/a目录。
  • 访问b.xxxx.com地址时,等于访问/var/www/html/b目录。
  • 访问c.xxxx.com地址时,等于访问/var/www/html/c目录。

 

Apache服务配置二级域名

在参考如下步骤配置二级域名前,您需要有一个泛域名解析的顶级域名,比如“aliyun.com”。

  1. 在Apache的httpd.conf配置文件中启用mod_rewrite模块。
  2. 在httpd.conf配置文件的结尾处添加如下内容。
    1
    RewriteEngine on<br>RewriteMap lowercase int:tolower<br>RewriteMap vhost txt:/usr/local/etc/apache/vhost.map<br>RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$<br>RewriteCond ${vhost:%1} ^(/.*)$<br>RewriteRule ^/(.*)$ %1/$1
    注: /usr/local/etc/apache是Apache服务配置文件所在路径,您需要根据实际情况修改。
  3. /usr/local/etc/apache路径下执行vi vhost.map命令,新建文件,并复制如下内容到该文件中。
    1
    www.aliyun.com /usr/local/www/data-dist/aliyun<br>bbs.aliyun.com /usr/local/www/data-dist/aliyunbbs<br>anyname.aliyun.com /usr/local/www/data-dist/anyname
    注:请注意保持 域名+ 空格+ 绝对路径 的格式。
  4. /usr/local/www/data-dist目录下创建对应的网站目录,比如aliyun、bbs、anyname等目录。创建目录后的效果如下。
    • 访问www.aliyun.com地址时,等于访问/usr/local/www/data-dist/aliyun目录。
    • 访问bbs.aliyun.com地址时,等于访问/usr/local/www/data-dist/aliyunbbs目录。
    • 访问anyname.aliyun.com地址时,等于访问/usr/local/www/data-dist/anyname目录。
  5. 您可以通过修改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的虚拟主机功能变通的解决该问题。

  1. 此处涉及的示例信息如下。
    Apache版本号 ECS实例上的网站
    2.2.15 http://www.abc.com/
    http://www.123.com/
  2. 参考该命令vi /etc/httpd/conf/httpd.conf,打开Apache的配置文件,参考如下内容进行编辑。
    1. 加入如下代码,使Apache启用基于主机名的虚拟主机功能。
      1
      NameVirtualHost *:80
    2. 加入如下代码。当客户端访问的Host名不在之后设置的网站域名内时,会指向一个403错误页面。其中DocumentRoot是放置错误提示页面的目录,在该目录中可以放置一个简单的HTML页面提示用户正在访问非法域名。
      1
      <VirtualHost *:80><br>    DocumentRoot /var/www/html/error/<br>    ServerName *<br>    ErrorLog logs/dummy-host.example.com-error_log<br>    CustomeLog logs/dummy-host.example.com-access_log common<br></VirtualHost>
    3. 加入如下代码。告知Apache合法的网站主机头,您需要根据实际情况修改这个代码块内容,如示例中的“www.abc.com”和“www.123.com”。
      1
      <VirtualHost *:80><br>     ServerAdmin admin@abc.com<br>     DocumentRoot /var/www/html/another/<br>     ServerName www.abc.com<br>     ErrorLog logs/www.abc.com-error_loh<br>     CustomLog logs/www.abc.com-access_log common<br></VirtualHost><br><VirtualHost *:80><br>     ServerAdmin admin@123.com<br>     DocumentRoot /var/www/html/<br>     ServerName www.123.com<br>     ErrorLog logs/www.123.com-error_loh<br>     CustomLog logs/www.123.com-access_log common<br></VirtualHost>
  3. 执行如下命令,重启Apache服务。
    1
    /etc/httpd/bin/apachectl restart
  4. 如果您希望其他域名在访问您的网站时直接返回403错误,您可以修改第2步中的b步骤,将其代码修改为如下内容。
    1
    <VirtualHost *:80><br>    DucumentRoot /var/www/html/error/<br>    ServerName *<br><Location><br>    Order Allow, Deny<br>    Deny from all<br></Location><br>    ErrorLog logs/dummy-host.example.com-error_log<br>    CustomLog logs/dummy-host.example.com-access_log commom<br></VirtualHost> 
  5. 重启Apache服务。

 

适用于

  • 云服务器 ECS

FAQ

关于此文档暂时还没有FAQ
返回
顶部