使用 Web 服务 为 ECS Linux 实例配置网站及绑定域名
Nginx 服务绑定域名
https://help.aliyun.com/knowledge_detail/41091.html?spm=a2c4e.11155515.0.0.4lvCpF
以 YUM 安装的 Nginx 为例:
执行命令
vi /etc/nginx/nginx.conf编辑 Nginx 的配置文件,将默认的server {...}配置修改为以下内容:server {listen 80 default_server;server_name www.123.com;root /home/web1;location / {}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50.xhtml;location = /50x.html {}}server {server_name www.abc.com;root /home/web2;location / {}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}
- 访问 www.123.com 时,跳转到 /home/web1 目录。
- 访问 www.abc.com 时,跳转到 /home/web2 目录。
执行命令
nginx -s reload重启 Nginx 服务。
Tomcat 服务绑定域名
执行命令
vi /etc/TOMCAT_HOME/conf/server.xml编辑 Tomcat 配置文件。
将上述内容修改为:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoPlay="true"><Value className="org.apache.catalina.valves.AccessLogValue" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %c "%r" %s %b" /></Host><Host name="120.76.210.250" appBase="/data/wwwroot/web" unpackWARs="true" autoPlay="true"><Content path="" docBase="/data/wwwroot/web" debug="0" reloadable="false" crossContext="true" /><Value className="org.apache.catalina.valves.AccessLogValue" directory="logs" prefix="120.76.210.250_access_log." suffix=".txt" pattern="%h %l %u %c "%r" %s %b" /></Host><Host name="www.abc.com" appBase="/data/wwwroot/default" unpackWARs="true" autoPlay="true"><Content path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true" /><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" /></Host>
- 访问 www.abc.com 时,默认跳转到 /data/wwwroot/default 目录。
- 访问 120.76.210.250 时,默认跳转到 /data/wwwroot/web 目录。
运行
bin/shutdown关闭 Tomcat 服务,再运行bin/startup重启 Tomcat 服务。
Apache 服务绑定域名
以一键安装包配置的 Apache 环境为例:
执行命令
cd /alidata/server/httpd/conf/vhosts/进入站点配置文件目录。执行命令
vi aa.conf新建一个配置文件,按下键盘上的字母 “I” 键,复制并粘贴以下内容:Order allow,denyDeny from allDocumentRoot /alidata/www/testServerName www.test.comServerAlias test.comErrorLog "/alidata/log/httpd/test-error.log"CustomLog "/alidata/log/httpd/test.log"
注意:您需要修改对应的日志名字以区分不同网站的日志信息。
执行命令
/alidata/server/httpd/bin/apachectl restart重启 Apache 服务。
Apache 服务配置实现多域名跳转
假设程序目录为 /var/www/html,网站目录结构如下:

开启 Apache 的虚拟主机功能,配置对应的虚拟主机到对应的目录即可。


实现效果:
- 使用 a.example.com 访问时,实际是访问 /var/www/html/a 目录。
- 使用 b.example.com 访问时,实际是访问 /var/www/html/b 目录。
- 使用 c.example.com 访问时,实际是访问 /var/www/html/c 目录。
Apache 服务配置二级域名
前提条件:您有一个泛域名解析的顶级域名,例如: aliyun.com 。
- 在 httpd.conf 中打开 mod_rewrite 模块;
在 httpd.conf 的最后,添加以下内容:
RewriteEngine onRewriteMap lowercase int:tolowerRewriteMap vhost txt:/usr/local/etc/apache/vhost.mapRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$RewriteCond ${vhost:%1} ^(/.*)$RewriteRule ^/(.*)$ %1/$1
注意:/usr/local/etc/apache 是 Apache 服务配置文件所在路径,您需要根据实际情况修改。
执行命令
vi vhost.map新建文件,复制并粘贴以下内容:www.aliyun.com /usr/local/www/data-dist/aliyunbbs.aliyun.com /usr/local/www/data-dist/aliyunbbsanyname.aliyun.com /usr/local/www/data-dist/anyname
注意:请注意保持域名+空格+绝对路径的格式。
在根目录 /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/ |
打开 Apache 的实际配置文件,如执行命令
vi /etc/httpd/conf/httpd.conf打开 CentOS 的 Apache 配置文件,加入以下内容:加入代码
NameVirtualHost *:80,告知 Apache 使用基于 host 名的虚拟主机功能:加入以下代码。
<ViretualHost *:80>DocumentRoot /var/www/html/error/ServerName *ErrorLog logs/dummy-host.example.com-error_logCustomeLog logs/dummy-host.example.com-access_log common</ViretualHost>
注意:当客户端携带的 host 名不在之后设置的网站域名内时,会指向一个 403 错误页面告知用户域名非法,其中
DocumentRoot是放置错误提示页面的目录,在下面可以放置一个简单的 html 页面提示用户正在访问非法域名。加入以下代码。
<VirtualHost *:80>ServerAdmin p1@huigher.cnDocumentRoot /var/www/html/another/ServerName p1.huigher.cnErrorLog logs/p1.huigher.cn-error_lohCustomLog logs/p1.huigher.cn-access_log common</VirtualHost><VirtualHost *:80>ServerAdmin t1@huigher.cnDocumentRoot /var/www/html/ServerName t1.huigher.cnErrorLog logs/t1.huigher.cn-error_lohCustomLog logs/t1.huigher.cn-access_log common</VirtualHost>
注意:这一步告知 Apache 合法的网站主机头,您需要根据实际情况修改这个代码块内容,如示例中的 p1.huigher.cn 和 t1.huigher.cn。
执行命令
/etc/httpd/bin/apachectl restart重启 Apache 服务。
若您希望其他域名访问您的网站时直接返回 403 错误:
修改第二步中的代码为以下形式:
<VirtualHost *:80>DucumentRoot /var/www/html/error/ServerName *<Location>Order Allow, DenyDeny from all</Location>ErrorLog logs/dummy-host.example.com-error_logCustomLog logs/dummy-host.example.com-access_log commom</VirtualHost>
执行命令
/etc/httpd/bin/apachectl restart重启 Apache 服务。
使用 Web 服务 为 ECS Linux 实例配置网站及绑定域名的更多相关文章
- 阿里云服务器 ECS Linux SWAP 配置概要说明
SWAP 简介 Linux 中的 SWAP(交换分区),类似于 Windows 的虚拟内存.系统会把一部分硬盘空间虚拟成内存使用,将系统内非活动内存换页到 SWAP,以提高系统可用内存. 注:参阅 E ...
- Linux 服务器如何配置网站以及绑定域名
因为域名没有备案,国内地区不能直接域名访问.前段时间在阿里云租购了一台的香港服务器,添加子域名时解析的时发现不能添加直接解析至端口,找了些资料,发现了Nginx绑定域名的方法,在这里做个记录. 1.香 ...
- Linux防火墙配置—访问外网WEB
一.实验目标 1.本次实验在"Linux基础网络搭建实验"的基础上,在外网虚拟机上搭建WEB服务,并分别配置外网和网关的防火墙规则,使内网能够访问WEB服务 2.Linux基础网络 ...
- Nginx配置web服务
Nginx配置虚拟主机 虚拟主机概述 所谓虚拟主机,在web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可以是IP或者端口),具有独立的程序及资源目录,可以独立的对外提供服务,继而给用户访 ...
- linux系统下开启一个简单的web服务
linux 下开启一个简单的web服务: 首先需要linux下安装nodejs 然后创建一个test.js: vi test.js var http =require("http&quo ...
- nginx下配置多个web服务
参考 nginx配置详解 nginx反向代理与负载均衡详解 一.nginx简介: Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能 ...
- Linux 实例常用内核网络参数介绍与常见问题处理
本文总结了常见的 Linux 内核参数及相关问题.修改内核参数前,您需要: 从实际需要出发,最好有相关数据的支撑,不建议随意调整内核参数. 了解参数的具体作用,且注意同类型或版本环境的内核参数可能有所 ...
- Asp.net web服务处理程序(第六篇)
四.Web服务处理程序 对于Web服务来说,标准的方式是使用SOAP协议,在SOAP中,请求和回应的数据通过XML格式进行描述.在Asp.net 4.0下,对于Web服务来说,还可以选择支持Ajax访 ...
- idea/eclipse下Maven工程集成web服务(tomcat、jetty)
idea/eclipse下Maven工程集成web服务 转载请注明出处:http://www.cnblogs.com/funnyzpc/p/8093554.html 应用服务器最常用的一般有这哥仨: ...
随机推荐
- jenkins 相关默认信息
(1) 默认安装目录 /usr/lib/jenkins/:jenkins安装目录,WAR包会放在这里. ( 2 ) 默认配置文件 /etc/sysconfig/jenkins:jenkins ...
- jquery如何获取input(file)控件上传的图片名称,即"11111.jpg"
html代码:<input name=file" type="file" id="file"/> Jquery代码:var file;$( ...
- Linux下压缩文件-1
tar负责打包,gzip负责压缩 tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的 ...
- 《PHP和MySQL Web开发》读书笔记(上篇)
最近过得太浮躁了,实在自己都看不下去了,看了PHP圣经之后,觉得非常有必要要总结一下. Chapter1.快速入门 ·PHP标记:总共有三种风格,常用的还是XML风格为主 <?php echo ...
- 在Emacs中画思维导图
是的,你没有看错.其实,不只画思维导图,画结构图.流程图等,都可以.那怎么办呢?就是借助 Graphviz . Graphviz 可以方便地表达概念之间的联系,因此用它画思维导图是可行的,再加上它是个 ...
- 【转】WPF的知识
[-] 闲话WPF之二XAML概述 闲话WPF之五XAML中的类型转换 闲话WPF之十六WPF中的资源 2 闲话WPF之十九WPF中的传递事件 1 闲话WPF之二十WPF中的传递事件 2 闲话WPF之 ...
- 【leetcode 简单】 第一百四十六题 最长和谐子序列
和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1: 输入: [1,3,2,2,5,2,3,7] ...
- MySQL练习-主外键多表查询
练习: 1.建立表关系: 请创建如下表,并创建相关约束 USE db1; CREATE TABLE class( cid INT AUTO_INCREMENT PRIMARY KEY, caption ...
- 在JS数组指定位置插入元素
很多与数组有关的任务听起来很简单,但实际情况并不总是如此,而开发人员在很多时候也用不到他.最近我碰到了这样一个需求: 将一个元素插入到现有数组的特定索引处.听起来很容易和常见,但需要一点时间来研究它. ...
- 【算法学习】【洛谷】树链剖分 & P3384 【模板】树链剖分 P2146 软件包管理器
刚学的好玩算法,AC2题,非常开心. 其实很早就有教过,以前以为很难就没有学,现在发现其实很简单也很有用. 更重要的是我很好调试,两题都是几乎一遍过的. 介绍树链剖分前,先确保已经学会以下基本技巧: ...