[环境配置] 如何为Apache绑定多IP多域名
在Apache服务器上绑定方法比较简单,主要因为Apache是个开源独立的服务器软件,而且支持跨平台安装和配置,支持丰富的API扩展,所以很多人对Apache的好感要甚于IIS,Apache的优点就不用多说了,还是来看看如何为Apache配置多IP和多域名,天缘在上篇文章中说过,多IP和多域名绑定问题有很多种方法,所以本文仍然只介绍常规的绑定方法,即通过修改httpd.conf文件来绑定IP地址和域名。
HTTPD配置文件说明:Apache服务器httpd.conf配置文件说明
注意:
无论Windows主机还是Linux主机,在Apache接收处理前,首要要确保这些IP地址已经映射到APACHE服务上,也就是说,对要首先保证操作系统本身接受这些IP地址访问,Windows绑定多IP参考前一篇文章(如何为Windows绑定多个IP和多个域名 ),Linux绑定多IP地址先自行搜索解决,以后再补充。
测试之前,确保域名已经解析到本服务器上且已生效。
本文默认按照80端口配置,还可以通过同IP但不同端口来区分不同网站,该情况一般是用在主机管理上。举个例子:可以使用http://192.168.1.100作为正常网址,而http://192.168.1.100:2020则可以用来做后台配置管理等。
绑定方法有很多种,比如虚拟绑定、单IP多域名绑定、多IP单域名绑定、多IP多域名绑定、端口识别绑定等等,而且每种绑定可能还有不同的实现方法,根据自己习惯和场合选择使用。
一、Apache绑定单IP多域名
1、示例绑定:
IP地址192.168.1.100
对应两个域名http://zhanhelp.com和http://demo.zhanhelp.com(二级域名)
2、绑定过程
a、打开http.conf,该文件位置在apache/conf下面,直接用文本编辑器即可打开。
b、添加以下字段,位置靠近ServerName 127.0.0.1或ServerName localhost:80下面附近,方便修改和理解。
view source
print?
1 <VirtualHost 192.168.1.100>
2 DocumentRoot D:/xampp/htdocs/zhanhelp.com
3 ServerName zhanhelp.com
4 </VirtualHost>
5 <VirtualHost 192.168.1.100>
6 DocumentRoot D:/xampp/htdocs/zhanhelp.com/wwwroot
7 ServerName demo.zhanhelp.com
8 </VirtualHost>
这个方法是对指定IP地址的主机比较适合,但是如果是动态获取IP地址的主机就有问题了,则可以把<VirtualHost 192.168.1.100>统一修改为<VirtualHost *:80>,这样设置后APACHE不再对IP区分,只根据ServerName和处理优先级识别。比如很多虚拟主机要求使用CNAME解析域名,那么该虚拟主机的IP可能会变化的,就无法使用上面的配置方法,还是<VirtualHost *:80>要更好用一些。
补充一下,如果是Linux主机,DocumentRoot字段需要修改为类似:
usr/local/www/zhanhelp.com/
usr/local/www/zhanhelp.com/wwwroot
这样的路径,该路径指向网站所在根目录或子目录。
c、此外还可以为每个域名指定单独的错误日志(ErrorLog)及用户日志地址(CustomLog)只需要把下面两句添加到上述<VirtualHost ...></VirtualHos>字段之间即可,示例如下(具体存储地址可根据实际情况修改掉):
ErrorLog "logs/error.log"
CustomLog "logs/access.log" combined
d、重启Apache服务即可生效。
二、Apache绑定多IP多域名
1、示例绑定
IP地址192.168.1.100/192.168.1.101
对应两个域名http://zhanhelp.com和http://abc.com
2、绑定过程
步骤同上文,还是打开httpd.conf,然后增加下面脚本。
view source
print?
1 <VirtualHost 192.168.1.100>
2 DocumentRoot D:/xampp/htdocs/zhanhelp.com
3 ServerName zhanhelp.com
4 </VirtualHost>
5 <VirtualHost 192.168.1.101>
6 DocumentRoot D:/xampp/htdocs/abc.com
7 ServerName abc.com
8 </VirtualHost>
这样就是两个IP地址对应两个域名。实际上在上面的单IP地址绑定中,提到<VirtualHost *:80>这样的设置方式也可以用来多IP访问,只是只能使用ServerName来区分,而如果输入对应的IP地址来访问,APACHE只会显示符合第一个优先级网站(假设无端口区分条件下),因为它无法判断IP地址与多域名之间的映射关系,所以使用明确的IP地址配置还是有点好处,支持直接输入IP地址访问,只是看起来不太好。
补充一下,如果是Linux主机,DocumentRoot字段需要修改为类似:
usr/local/www/zhanhelp.com/
usr/local/www/zhanhelp.com/wwwroot
[环境配置] 如何为Apache绑定多IP多域名的更多相关文章
- xshell远程终端操作Ubuntu server安装LAMP环境之最详细笔记之二PHP开发环境配置
前言: 昨天学会了安装server,今天试着通过远程终端xshell来安装LAMP,搭配一下开发环境,也有集成环境可以一键安装使用,还是瞎折腾一下,手动一步一步搭建一下这个开发环境. 接上一篇:ubu ...
- PHP环境配置
PHP环境配置 1.Apache的安装 第一步: 1. 双击httpd-2.2.17-win32-x86-no_ssl.msi.出现 Windows 标准的软件安装欢迎界面,直接点“Next”继 ...
- PHP与apache环境配置
最近想了解一些网页后台的东西,在看Luke Welling,laura Thomson的<php与mysql web开发>,书中环境配置的部分很庞杂,网上的各种教程也很乱,搞了一下午终于成 ...
- OpenStack neutron 环境云主机使用keepalived vip + 给vip绑定浮动IP 步骤及注意事项
在openstack环境创建的多台云主机配置keepalived作主备,默认情况下无法生效,直接对云主机一张网卡配置两个IP进行测试也是同样结果,因为: 可以看到,port所在的宿主机上iptable ...
- Spring Cloud:多环境配置、eureka 安全认证、容器宿主机IP注册
记录一下搭建 Spring Cloud 过程中踩过的一些坑,测试的东西断断续续已经弄了好多了,一直没有时间整理搭建过程,时间啊~时间~ Spring 版本 Spring Boot:2.0.6.RELE ...
- Apache实现一个ip(如:127.0.0.1)和多个域名(虚拟主机)绑定
今天在学习PHP时,有这样的一个需求:一个ip(如:127.0.0.1)和多个域名(虚拟主机)绑定,以下是我的解决方案:对Apache进行相关的配置 解决方案一:通过端口来区分不同的虚拟主机 ①按照绑 ...
- 如何配置WAMP环境(主要是Apache与PHP)
1.配置Apache 1.编辑Apache配置文件---http.conf(位于安装目录下的conf子目录内): 2.修改Document Root 和 Directory选项,这是修改Apache的 ...
- 攻防环境配置大全(iss/apache/nginx/tomcat/jboss/weblogic)
一.IIS/apache/nginx/tomcat 介绍 1.asp aspx 只能在微软系统的iis中间件运行 [asp+IIS+access(扩展名为mdb)].aspx+mssql+iis结合, ...
- Apache和PHP环境配置
最近闲来想学习一下PHP. 工欲善其事,必先利其器.我的PHP环境配置了三遍,才安装成功. 下面就分享一下我的安装经验. 1.Apache2.4,PHP5.6,MySql5.6这些都是从官网下载的. ...
随机推荐
- Android权限全记录(转)
常用权限: 读写存储卡装载和卸载文件系统 android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STOR ...
- python2.0_day20_bbs系统开发
BBS是一个最简单的项目.在我们把本节课程的代码手敲一遍后,算是实战项目有一个入门.首先一个项目的第一步是完成表设计,在没有完成表结构设计之前,千万不要动手开发(这是老司机的忠告!)废话不多说,现在我 ...
- set集合操作【python】
set集合操作包括: >>> x=set("123defj89") >>> y=set("ab34e6jh9") >& ...
- Python 数据类型:列表
一.列表介绍 1. 列表可以存储一系列的值,使用中括号来定义,每个元素之间用逗号隔开,形如 ['a', 'b', 'c', 'd']2. 列表与元组的区别是:列表中的元素是可变的,元组中的元素是不可变 ...
- Python MySQLdb 模块
MySQLdb 是 Python2 连接 MySQL 的一个模块,常见用法如下: [root@localhost ~]$ yum install -y MySQL-python # 安装 MySQLd ...
- VS2015编译GDAL2.2.1源码
下载完GDAL2.2.1,你会发现这货没有CMakeLists.txt,对于我这样的只会用CMake GUI的货来说,着实很难过. 需要用VS带的nmake来生成.sln 管理员身份启动VS2015命 ...
- 元素设置disabled属性后便无法向后台传值
元素设置disabled属性后便无法向后台传值
- iOS实现传递不定长的多个参数
我们在使用苹果官方的文档的时候会发现可传不定数的参数例如: // [[UIAlertView alloc]initWithTitle:<#(nullable NSString *)#> m ...
- vim命令删除后重新安装
个人原创博客,转载请注明,否则追究法律责任 2017-09-30-09:51:20 1,删除vim命令.模拟错误 [root@localhost ~]# which vim/usr/bin/vim[r ...
- 【BZOJ4452】[Cerc2015]Export Estimate 并查集
[BZOJ4452][Cerc2015]Export Estimate Description 给你一个n个点m条边的无向图,每条边有权值,我们可以选择一个整数lim来生成一个新的图,过程如下: 1 ...