注意:以下文档只适用于TOP接口,请谨慎使用!
免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。
本文主要介绍Linux实例如何在Web服务中绑定域名。
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
本文主要介绍如下几点内容,您可以根据实际需要选择。
如下为配置Nginx服务绑定域名的步骤,此处的Nginx程序以通过Yum安装的Nginx为例,您需要根据实际情况进行调整。
1 | vi /etc/nginx/nginx.conf |
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
目录。
1 | nginx -s reload |
如下为配置Tomcat服务绑定域名的步骤,其中部分与Tomcat相关的路径,您需要根据实际情况进行调整。
1 | vi /[$Tomcat_Home]/conf/server.xml |
注:[$Tomcat_Home]指Tomcat程序的主目录,现场以实际情况为准。
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 "%r" %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 "%r" %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 "%r" %s %b" /><br> </Host> |
注:此处的配置主要实现如下两点目的。您需要根据实际需要调整对应的配置内容。
- 访问www.abc.com地址时,等于访问
/data/wwwroot/default
目录。- 访问www.123.com地址时,等于访问
/data/wwwroot/web
目录。
1 | /[$Tomcat_Home]/bin/shutdown |
1 | /[$Tomcat_Home]/bin/startup |
如下为配置Apache服务绑定域名的步骤。
1 | cd /[$Apache_Home]/conf/vhosts/ |
注:[$Apache_Home]指Apache程序的主目录,现场以实际情况为准。
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" |
注:请根据实际情况修改网站域名、网站根目录、日志文件名和目录等配置信息。
1 | /[$Apache_Home]/bin/apachectl restart |
假设网站的目录为/var/www/html
,网站目录结构如下。
开启Apache的虚拟主机功能,参考如下图,配置虚拟主机到对应的目录即可。
修改完成后,可以实现如下几点效果。
/var/www/html/a
目录。/var/www/html/b
目录。/var/www/html/c
目录。
在参考如下步骤配置二级域名前,您需要有一个泛域名解析的顶级域名,比如“aliyun.com”。
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服务配置文件所在路径,您需要根据实际情况修改。
/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 |
注:请注意保持 域名+ 空格+ 绝对路径 的格式。
/usr/local/www/data-dist
目录下创建对应的网站目录,比如aliyun、bbs、anyname等目录。创建目录后的效果如下。
/usr/local/www/data-dist/aliyun
目录。/usr/local/www/data-dist/aliyunbbs
目录。/usr/local/www/data-dist/anyname
目录。
如果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://www.abc.com/ http://www.123.com/ |
vi /etc/httpd/conf/httpd.conf
,打开Apache的配置文件,参考如下内容进行编辑。1 | NameVirtualHost *: 80 |
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> |
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> |
1 | /etc/httpd/bin/apachectl restart |
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> |