apache 使用心得(启动多实例,单实例监听多端口,单实例监听多域名)
2015-01-08 16:40
507 查看
很久之前就手动配置过apache了,今天遇到一个需要在阿里云服务器上配置apache路由多个域名到不同的服务器根目录这样的问题,研究了一段时间,得出了下面的心得,分享给大家~
*以windows系统为例子
下面要会说到的内容:
1 开启多个apache实例,监听多个端口(作用就是方便读取不同的配置文件)
2 单个apache实例监听多个端口
3 单个apache实例监听一个端口(80),实现不同域名访问80端口的时候,指向不同的服务器根目录
1 开启多个apache实例
httpd.exe -k install -n “服务名” -f “d:/apache2.2/conf/web2.conf” 切换到apache的安装目录下bin目录,httpd.exe -k install -n “服务名” -f “新配置路径/配置.conf”
添加新服务之后会提示test失败,原因是添加后没有开启,可以手动开启服务,开启方法可以使用apache提供的ApacheMonitor,选择实例开启~~~
有了多个实例之后,就可以分别去配置实例对应的conf文件了~注意不同实例监听的端口不能相同
2 单个实例监听多个端口
在配置文件找到Listen 80(服务器默认监听80),直接在下行加上Listen8080就可以监听第二个端口了
3 为同个端口配置不同的服务器根目录
这个是重点要说的,在配置文件中添加
上面Direcotory不是必要项~
说明:域名可以在提供商处绑定到指定IP,访问域名的时候DNS会将域名解析到指定的IP(访问域名默认为*:80端口),所在IP上的服务器(默认监听80端口)就可以响应访问请求,同时服务器可以知道用户是通过哪个域名访问到服务器的
比如
www.hello.com域名绑定到服务器1.1.1.1
www.welcome.com域名也绑定到服务器1.1.1.1
这样子当有请求来是,服务器是可以知道请求是通过hello.com还是welcom.com进来的,所以就有了上面虚拟主机的配置方法
VirtualHost指定了一个ServerName,就是请求来自哪个域名
上面的配置效果就是,如果有来自www.hello.com的请求,则服务器的根目录为C:/hello,其它域名的根目录就是C:/htdocs了
*以windows系统为例子
下面要会说到的内容:
1 开启多个apache实例,监听多个端口(作用就是方便读取不同的配置文件)
2 单个apache实例监听多个端口
3 单个apache实例监听一个端口(80),实现不同域名访问80端口的时候,指向不同的服务器根目录
1 开启多个apache实例
httpd.exe -k install -n “服务名” -f “d:/apache2.2/conf/web2.conf” 切换到apache的安装目录下bin目录,httpd.exe -k install -n “服务名” -f “新配置路径/配置.conf”
添加新服务之后会提示test失败,原因是添加后没有开启,可以手动开启服务,开启方法可以使用apache提供的ApacheMonitor,选择实例开启~~~
有了多个实例之后,就可以分别去配置实例对应的conf文件了~注意不同实例监听的端口不能相同
2 单个实例监听多个端口
在配置文件找到Listen 80(服务器默认监听80),直接在下行加上Listen8080就可以监听第二个端口了
3 为同个端口配置不同的服务器根目录
这个是重点要说的,在配置文件中添加
#默认虚拟主机 NameVirtualHost *:80 <VirtualHost *:80> ServerName * DocumentRoot "C:/htdocs" <Directory "C:/htdocs"> Options FollowSymLinks IncludesNOEXEC Indexes DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.pl default.pl index.shtml AllowOverride None Order Deny,Allow Allow from all </Directory> </VirtualHost> #新增虚拟主机 NameVirtualHost *:80 <VirtualHost *:80> ServerName www.hello.com DocumentRoot "C:/hello" <Directory "C:/hello"> Options FollowSymLinks IncludesNOEXEC Indexes DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.pl default.pl index.shtml AllowOverride None Order Deny,Allow Allow from all </Directory> </VirtualHost>
上面Direcotory不是必要项~
说明:域名可以在提供商处绑定到指定IP,访问域名的时候DNS会将域名解析到指定的IP(访问域名默认为*:80端口),所在IP上的服务器(默认监听80端口)就可以响应访问请求,同时服务器可以知道用户是通过哪个域名访问到服务器的
比如
www.hello.com域名绑定到服务器1.1.1.1
www.welcome.com域名也绑定到服务器1.1.1.1
这样子当有请求来是,服务器是可以知道请求是通过hello.com还是welcom.com进来的,所以就有了上面虚拟主机的配置方法
VirtualHost指定了一个ServerName,就是请求来自哪个域名
上面的配置效果就是,如果有来自www.hello.com的请求,则服务器的根目录为C:/hello,其它域名的根目录就是C:/htdocs了
相关文章推荐
- 26讲 apache服务器使用及配置① 启动和停止 端口配置
- Windows下安装Apache HTTP Server 无法启动遇到OS10048 通常每个套接字地址(协议/网络地址/端口)只允许使用一次 的问题解决方法
- 韩顺平PHP学习视频笔记整理026apache服务器使用及配置① 启动和停止 端口配置
- Apache启动失败 通常每个套接字地址 (协议/网络地址/端口)只允许使用一次
- apache 监听不同的端口并设置虚拟路径的实例
- php学习笔记1 apache服务器使用及配置① 启动和停止 端口配置 apache的目录结构
- 使用phpstuby时,Apache或mysql无法启动,端口被占用
- 启动Apache时出现:(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 : AH00072: make_sock: could not bind to address
- Apache Derby Network Server - 10.2.2.0 - (485682) 已启动并且已准备好 2008-08-22 02:11:53.187 GMT 时在端口 1527 上接受连接
- apache 80 端口被占用无法启动的一次排除经历
- org.apache.commons.net.ftp使用心得
- 使用一段ASP代码实现同一空间绑定多个域名的实例
- 无法启动visual studio的localhost web服务器,端口"xxxx"已被使用 解决办法
- 没有为实例"db2inst1"指定"快速连接管理器"(FCM)基本端口.将使用缺省参数
- Apache log4net与EntLib Logging Application Block使用心得
- Apache和iis都启动不了,80端口被httpd.exe占用
- 在Linux下查看端口的使用情况及启动
- 使用Apache email组件发送邮件实例
- Windows下Apache启动时候报80端口被占用的解决方法,非IIS占用
- linux下apache启动及使用的问题总结