Apache2基于域名的虚拟主机实现
基于域名的_APACHE_虚拟主机实现
httpd.conf 中, 管理员的工作量增加, 维护起来不方便, 也很难实现。利用 Apache 的 URL 重写功能, 可以实现大规模虚拟主机的服务。 ( 下转第 1952 页)
1928 网络通讯及安全
本栏目责任编辑: 冯蕾
Computer Knowledge And Technology 电脑知识与技术
1 引言
在信息技术飞速发展的时代, Internet 和 WWW( World Wide Web) 应用得已经非常广泛, Web 服 务 质 量 的 是 影 响 用 户 网 络 使 用 的一个主要因素。APACHE 软件在 Web 服务器应用中非常流行。大多数 WEB 服务器仅仅使用 APACHE 软 件 的 基 本 功 能 , 对 于 Internet 用户强大的需求, 显然全面挖掘 APACHE 软件的功能, 提高网络服务质量也成为一个关键性问题。
IS S N 1009- 3044 Computer Knowledge And Technology 电脑知识与技术 Vol.3,No.9,September 2008, pp.1927- 1928,1952
E- mail: info@cccc.net.cn http://www.dnzs.net.cn
http://wxy.xxnu.edu.cn, http://jykxxy.xxnu.edu.cn 分别属于文学院和教育科 学 学 院 。 两 个 学 院 的 站 点 同 在 WEB 服 务 器 主 机 的 wxy 和
Apache 虚拟主机的配置
Apache 虚拟主机的配置== 测试环境 ==* 操作系统:Ubuntu 5.10* 测试机地址:10.39.6.59* 测试机域名:*== 基本配置 ==我们都知道,如果我们想在单台机器上设置多个域名或主机名时,我们就要用到基于名称的虚拟主机了。
那么要如何进行设置呢?这就是本 HowTo 想解决的问题了。
在 Ubuntu 的 /etc/apache2/ 目录下有个 Apache2 的主配置文件 apache2.conf。
在该文件中我们可以看到有这么一行内容:代码:Include /etc/apache2/sites-enabled/[^.#]*这 行的意思表明该文件包含了 /etc/apache2/sites-enabled/ 目录中文件名不含 "." 或 "#" 这两个字符的所有文件。
而当我们列出该目录的文件时,发现只有一个 000-default 的软链接文件,实际连接的是 /etc/apache2/sites-available 目录中的 default 文件,不难看出该文件的文件名中并不包含 "." 或 "#"。
所以这个文件当然是要被配置文件 apache2.conf 所包含的了。
打开该文件,发现它其实是一个虚拟主机的配置文件,不过由于该文件中的虚拟主机为 *,所以它实际上是一个通用配置文件。
如果我们要建立虚拟主机的话,那么就要把该文件改成如下所示:代码:NameVirtualHost 10.39.6.59<VirtualHost 10.39.6.59>ServerName ServerAdmin ubuntu.firehare@DocumentRoot /var/www/<Directory />Options FollowSymLinksAllowOverride None</Directory><Directory /var/www/>Options Indexes FollowSymLinks MultiViewsAllowOverride NoneOrder allow,denyallow from all# This directive allows us to have apache2's default start page# in /apache2-default/, but still have / go to the right place# Commented out for Ubuntu#RedirectMatch ^/$ /apache2-default/</Directory>ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/<Directory "/usr/lib/cgi-bin">AllowOverride NoneOptions ExecCGI -MultiViews +SymLinksIfOwnerMatchOrder allow,denyAllow from all</Directory>ErrorLog /var/log/apache2/error.log# Possible values include: debug, info, notice, warn, error, crit,# alert, emerg.LogLevel warnCustomLog /var/log/apache2/access.log combinedServerSignature OnAlias /doc/ "/usr/share/doc/"<Directory "/usr/share/doc/">Options Indexes MultiViews FollowSymLinksAllowOverride NoneOrder deny,allowDeny from allAllow from 127.0.0.0/255.0.0.0 ::1/128</Directory></VirtualHost>下面我们来分析一下上面这段设置中与虚拟主机有关的设置语句:* NameVirtualHost 10.39.6.59:表示我们要做的是一个基于名称的虚拟主机,且其 IP 地址为 10.39.6.59* <VirtualHost 10.39.6.59> 和 </VirtualHost>:表示在其中的是一个虚拟主机的配置* ServerName :设置虚拟主机的域名* ServerAdmin ubuntu.firehare@:设置该虚拟主机网管员的邮件* DocumentRoot /var/www/:设置该虚拟主机的主目录路径* ErrorLog /var/log/apache2/error.log:设置该虚拟主机的出错信息* CustomLog /var/log/apache2/access.log combined:设置该虚拟主机的访问信息这样我们就配置了一个虚拟主机 。
Apache下的虚拟主机设置
Apache下的虚拟主机设置摘要:本文介绍了WWW服务器的虚拟主机的工作原理,讨论了在Apache WWW服务器下的各种虚拟主机、尤其是大规模虚拟主机的设置技术,并比较了各种方式的特点。
关键词:Apache WWW Virtual Hosting 虚拟主机一、WWW服务器虚拟主机原理WWW服务器虚拟主机是指使用一台物理机器,充当多个主机名的WWW服务器。
比如由一台机器同时提供, 等的WWW服务,而浏览这些WWW站点的用户感觉不到这种方式下跟由不同的机器提供不同的服务有什么差别。
使用WWW虚拟主机的好处在于,一些小规模的网站,通过跟其他网站共享同一台物理机器,可以减少系统的运行成本,并且可以减少管理的难度。
另外,对于个人用户,也可以使用这种虚拟主机方式来建立有自己独立域名的WWW服务器,目前国内有很多公司都提供这种免费的服务。
WWW虚拟主机有两种工作方式:1.1 基于IP地址的虚拟主机方式这种方式下,不同的主机名解析到不同的IP地址,提供虚拟主机服务的机器上同时设置有这些IP地址。
服务器根据用户请求的目的IP地址来判定用户请求的是哪个虚拟主机的服务,从而进一步的处理。
缺点:基于IP地址的虚拟主机方式需要在提供虚拟主机服务的机器上设立多个IP地址,既浪费了IP地址,又限制了一台机器所能容纳的虚拟主机数目。
因此这种方式越来越少使用。
但是,这种方式是早期使用的HTTP 1.0协议唯一支持的虚拟主机方式。
1.2 基于主机名的虚拟主机方式由于基于IP地址的虚拟主机方式有如上的缺点,HTTP 1.1协议中增加了对基于主机名的虚拟主机的支持。
具体说,当客户程序向WWW服务器发出请求时,客户想要访问的主机名也通过请求头中的“Host:”语句传递给WWW服务器。
比如,, 都对应于同一个IP地址(即由同一台机器来给这两个虚拟域名提供服务),客户程序要存取/index.html时,发出的请求头中包含有如下的内容:GET /index.html HTTP/1.1Host: …..WWW服务器程序接收到这个请求后,可以通过检查“Host:”语句,来判定客户程序请求是哪个虚拟主机的服务,然后再进一步的处理。
基于域名的(APACHE)虚拟主机实现
基于域名的(APACHE)虚拟主机实现作者:王伟隆来源:《电脑知识与技术·学术交流》2008年第27期摘要:针对大学中各学院网站无独立域名并搭载在同一台Web服务器上,提出了基于域名的APACHE Web应用服务系统的虚拟主机解决方案。
通过对BIND域名应用软件及APACHE应用软件系统的配置提供虚拟主机服务,实现独立域名访问各学院网站。
关键词:虚拟主机;独立域名中图分类号:TP302文献标识码:A文章编号:1009-3044(2008)27-1927-02The Realization of Virtual Host of APACHE Based on Domain NamesWANG Wei-long(The Information Centre of Beilun High School, Ningbo 315800,China)Abstract: For the websites of all colleges of a university without the independent domain names carrying on the same Web server, the paper proposes the solution of virtual Host of the APACHE Web services application system based on domain names,which supplies the service of virtual Host by the configuration of BIND and APACHE, two application softwares, to achieve the aim of visiting the websites of the colleges by the independent domain names .Key words: virtual host; independent domain names1 引言在信息技术飞速发展的时代,Internet和WWW(World Wide Web)应用得已经非常广泛,Web服务质量的是影响用户网络使用的一个主要因素。
WinXP下Apache2.2.4与tomcat6、php5多应用共存的虚拟主机的配置
Windwos 下Apache2.2.4与tomcat6、php5多应用共存的虚拟主机的配置一、准备工作(1) 、下载tomcat 6.0(解压版)(2) 、下载apache2.2.4(3) 、php5(解压版)(4) 、jdk6(5) 、mysql-5.0.22-win32安装版假设相关工具都已经安装好。
注:此配置,apache 只负责分发,所有的请求都是tomcat 处理的,包括html等静态都由tomcat 处理。
二、安装工作(1)、安装jdk (会java都知道)(2)、将解压版php5解压到D盘(目录名为php5,我电脑上是这样的)(3)、安装apache2.2.4,将安装目录放到D盘(目录名为Apache2.2,我电脑上是这样的)(4)、将tomcat6解压到D盘三、配置Tomcat6与Apache2.2.4(1)、打开Apache2.2.4安装目录,找到conf 目录中的httpd.conf,打开此文件.找到文件中的#LoadModule proxy_module modules/mod_proxy.so#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so#LoadModule include_module modules/mod_include.so将此两行前面的“#”去掉,采用ajp代理(2)、找到DocumentRoot ,将后面的值设置为自己对应的目录(如:d:/www)。
这个地方,在配置php的时候要用到(3)、找到ServerName 修改为:ServerName localhost:80 (我是这样写的,IP也行)(4) 找到Directory (用UE打开在177行) 修改为<Directory "自己对应的目录d:/www"(5) 、找到DirectoryIndex 在后面加上index.php (这个地方可是为了php,其实可加可不加)(6)、然后引用虚拟主机配置文件。
虚拟机笔记
基于域名的虚拟主机的配置我们想要想访问独立网站一样,访问我们的项目配置方法1,先找到apache主配置文件httpd.conf,地址是:apache安装目/conf/httpd.conf,搜索vhosts,找到Include conf/extra/httpd-vhosts.conf,将注释去掉。
2,再找到httpd-vhosts.conf在其中增加虚拟主机,<VirtualHost *:80></VirtualHost>其中*:80部分,应该与NameVirtualHost *:80 后的参数一致3,在配置的虚拟主机段中增加虚拟主机的配置,其中必要的:ServerName 主机域名DocumentRoot "e:/htdocs/five" 主机地址完成了以上三步,完成服务器端的配置,重启apache使之生效。
修改配置文件后,可以使用apache/bin/httpd.exe -t来测试一下apache配置文件的语法是否有问题4,找到C:\WINDOWS\system32\drivers\etc\hosts文件,在其中增加配置,让我们的浏览器能够找到我们所配置的域名所在服务器。
增加127.0.0.1 ,其中ip是服务器所在ip,本地就是127.0.0.1。
域名是在服务器上配置的主机的serverName完成以上4步,我们的浏览器,就可以找到我们域名了。
下面我们要看出现了什么问题,针对性的解决。
如果出现的是权限问题,我们可以使用directory指令设置目录参数,包括权限指令Order deny,allowAllow from all 大家需要将此行代码加入到directory指令的空间中,让我们的目录允许来自于所有地方的请求如果直接请求目录还是403,但请求目录下的php文件不是403,可以看到。
说明我们的目录设置不允许用户以目录索引的方式,显示。
解决方法如下,在directory段中增加options +indexes操作,代表允许显示目录索引。
apache2.4.7虚拟主机配置
apache2.4.7虚拟主机配置
在网上找了好多关于apache2.4.7虚拟主机配置的问题,都没找到确切的答案,经过我自己的摸索终于找到了解决方案。
1.打开apache->conf->extra->httpd-vhost.conf文件。
2.按照模板复制一个虚拟主机配置
例如:
这里要配置好你存放的文件目录。
和你设置的访问域名。
3.配置apache->conf->httpd.conf配置文件
如果你用的不是默认的80端口需要增加listen
例如:
增加的listen地址要与虚拟主机配置保存一致
3.更改httpd.conf中的虚拟主机配置
要将虚拟主机访问的地址与之前的保持一直,红色框框内就是需要更改的地方。
最后一个代表让所有人访问,当然本机的话只能是局域网。
把只能让本机访问那个注释掉。
4.引入虚拟主机,同样是在httpd.conf配置文件中
apache2.4.7配置文件下没有,要自己输入
保存好后重启服务器就可以访问你配置的域名了
我用的是easyPHP集成环境14.1VC11。
Apache2配置域名绑定的方法详解
Apache2配置域名绑定的⽅法详解前⾔最近新装了个OJ系统,想着总是⽤ip访问挺难记得,就打算绑⼀个域名上去。
在配置的过程中也遇到了⼀些问题,现在总结下⾯来分享给⼤家,⽅便有需要的朋友们参考学习。
⽅法如下⽹上百度了很多教程,发现⼤家都是在配置httpd.conf⽂件,但我⾃⼰在Linux下⾯的apache并没有这个⽂件,本着试⼀试,我就⾃⼰新建了个httpd.conf,然后⽤⽹上的代码复制进去.。
<VirtualHost 你的ip:80>ServerAdmin webmaster@localhostDocumentRoot /var/www/html/JudgeOnline(你要绑定的⽂件夹位置,根⽬录在html,我要绑定到JudgeOnline⽂件夹。
弄完后把这⾏删掉)ServerName 你的域名</VirtualHost>然后域名绑定ip。
可绑定后我发现,不管怎么样,我访问出来的都是html下的页⾯,并没有解析到我要的JudgeOnline下。
这就郁闷了,我弄了半天,后来去查了下Apache⽬录下这⼏个⽂件的意义,其实Apache初始调⽤的apache2.conf这个⽂件,然后在这个⽂件⾥⾯调⽤其他⽂件。
打开apache2.conf后发现,其实它实际调⽤的是mods-enabled,conf-enabled,sites-enabled下的⽂件还有ports.conf,知道了这个就懂了,我⾃⼰建了个httpd.conf,在Apache2⾥其实并没有被调⽤,所以我们其实应该修改的是sites-enabled下的那个000开头的配置⽂件。
在那⾥⾯就是和其他教程⼀样的配置,弄完以后重启下apache。
Apache2重启的指令也改了,看apache2.conf⾥就会发现⾥⾯有说明,以前apache位置是在/usr/bin/apache2,但现在位置/etc/init.d/apache2,所以重启指令/etc/init.d/apache2 restartOK, 现在就成功搞定域名绑定了,顺便也让我了解了apache2⾥的配置,这波不亏。
Apache配置详解
Apache配置详解Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改。
主站点的配置(基本配置)(1) 基本配置:ServerRoot "/mnt/software/apache2" #你的apache软件安装的位置。
其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。
PidFile logs/httpd.pid #第一个httpd进程(所有其他进程的父进程)的进程号文件位置。
Listen 80 #服务器监听的端口号。
ServerName :80 #主站点名称(网站的主机名)。
ServerAdmin admin@ #管理员的邮件地址。
DocumentRoot "/mnt/web/clusting" #主站点的网页存储位置。
以下是对主站点的目录进行访问控制:<Directory "/mnt/web/clusting">Options FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all</Directory>在上面这段目录属性配置中,主要有下面的选项:Options:配置在特定目录使用哪些特性,常用的值和基本含义如下:ExecCGI: 在该目录下允许执行CGI脚本。
FollowSymLinks: 在该目录下允许文件系统使用符号连接。
Indexes: 当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户。
SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。
其它可用值和含义请参阅:/Apache/ApacheManual/mod/core.html#options AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):None: 当AllowOverride被设置为None时。
实训十三:Apache服务器的架设
实训十三:Apache服务器的架设一.实训目的与要求要求掌握架设Apache服务器的操作方法。
二.实训内容与步骤(一)实训内容1.每个同学为自己建立个人主页空间2.建立基于域名的虚拟主机: 在你的Linux主机上架设Apache服务器,中间设置两个虚拟主机,它们所使用的IP地址为Linux主机IP地址。
,其网站主目录为/home/wha,其网站主目录为/home/whb(二)实训步骤1、为自己建立个人主页空间步骤1:在WEB服务器上检查并安装必要软件查看:# rpm –qa | grep httpd如果没有就进行安装(在实验室中已默认安装好了):#mount /dev/cdrom /mnt/cdrom/#cd /mnt/cdrom/Fedora/RPMS/#rpm –Uvh httpd-2.0.47.i386.rpm#cd;eject步骤2:在Linux主机上添加用户,用户名为自己的名字。
(以下假设你的名字为chenbin)# useradd chenbin# passwd chenbin步骤3:修改自己个人主目录的属性。
# chmod 711 /home/chenbin步骤4:创建自己个人主页的主目录。
# cd /home/chenbin# mkdir www步骤5:创建自己个人主页的首页。
# echo “this is chenbin(注:你的姓名拼音)’s webpage”> /home/chenbin/www/index.html步骤6:编辑Apache服务器的配置文件#vi /etc/httpd/conf/httpd.confUserDir www保存退出。
步骤7:重启httpd服务# service httpd restart步骤8:在Windows中进行测试在客户机上打开浏览器,在地址栏输入http://Linux主机IP地址/~chenbin/,应该能打开你的www目录下的网页文件。
apache虚拟主机配置的3种方式
apache虚拟主机配置的3种⽅式Apache的虚拟主机功能 (Virtual Host) 是可以让⼀台服务器基于IP、主机名或端⼝号实现提供多个⽹站服务的技术。
下⾯我介绍⼀下这3种⽅式具体的配置流程:⼀.基于ip地址⾸先我们需要在虚拟机中线安装Apache服务程序,Apache服务程序的软件包名叫做httpd,所以我们⾸先执⾏命令yum install httpd 从yum仓库中下载服务,输⼊y确认下载。
接着我们运⾏Apache服务,使⽤命令systemctl start httpd启动服务。
可以使⽤命令 systemctl enable httpd来设置Apache服务开机⾃启动。
下⼀步我们依次使⽤ping命令ping我们配置的三个IP地址,ping通即成功。
下⼀步我们分别创建⽹站数据⽬录:在/home/wwwroot下分别创建三个⽹站数据⽬录如图中输出命令可同时创建三个⽬录,然后我们分别在三个⽹站数据⽬录下⾯写⼊主页⽂件,内容就写该⽹站的IP地址。
如图所⽰我们已经写进去了。
下⼀步我们在配置⽂件中描述基于IP地址的虚拟主机 vim /etc/httpd/conf/httpd.conf 直接将我们的信息找地⽅写⼊即可<VirtualHost 192.168.42.110>DocumentRoot /home/wwwroot/110ServerName <Directory /home/wwwroot/110>AllowOverride NoneRequire all granted</Directory></VirtualHost><VirtualHost 192.168.10.120>DocumentRoot /home/wwwroot/120ServerName <Directory /home/wwwroot/120 >AllowOverride NoneRequire all granted</Directory></VirtualHost><VirtualHost 192.168.10.130>DocumentRoot /home/wwwroot/130ServerName <Directory /home/wwwroot/130 >配置完毕后我们要重启⼀下httpd服务。
Web服务器(Apache)虚拟主机的配置
Web服务器(Apache)虚拟主机的配置一。
定义所谓虚拟主机是指在一台服务器里运行几个网站,提供WEB、FTP、Mail等服务。
二。
虚拟主机的实现方法有三种:基于IP的方法,基于主机名的方法和基于端口的法官法。
①基于IP的方法:在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。
访问不同的IP,就看到不同的网站。
②基于端口的方法:一个IP地址,通过不同的端口实在不同网站的访问。
③基于主机名的方法:设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。
然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。
因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。
三。
三种虚拟主机实现的基本配置①基于IP虚拟主机的实现:多个ip,需要把中心主机取消打开web服务的主配置文档:vim /etc/httpd/conf/httpd.confDocumentRoot 注释掉<VirtualHost 192.168.0.20:80>DocumentRoot “/www/”ServerName <VirtualHost/><VirtualHost 192.168.0.25:80>DocumentRoot “/www/”ServerName <VirtualHost/>vim /etc/hosts192.168.0.20 192.168.0.25 浏览器中输入IP地址进行实验效果的验证。
②基于端口:<VirtualHost 192.168.0.20:80>DocumentRoot “/www/”ServerName <VirtualHost/><VirtualHost 192.168.0.20:8080>DocumentRoot “/www/”ServerName <VirtualHost/>开启:NameVirtualHost 192.168.0.20:80<VirtualHost *:80>ServerAdmin DocumentRoot /etc/httpd/aaa/ServerName ErrorLog logs/-error_logCustomLog logs/-access_log common</VirtualHost><VirtualHost *:80>ServerAdmin DocumentRoot /etc/httpd/aaa/</VirtualHost>四。
如何在Apache中设置虚拟主机
Apache 配置虚拟主机三种方式1. 基于IP2.基于主机名3.基于端口基于ip需要多个IP;基于主机名需要只在本机有效,或者需要改动每个客户端的hosts文件;所有采用基于端口的。
基于端口的Apache配置虚拟主机1.打开httpd.conf,查找Virtual hosts将Include conf/extra/httpd-vhosts.conf前面的#去掉2. 建立虚拟主机存放网页的根目录,如在/htdocs目录下建立test1、test2文件夹,在文件夹中分别存放index.php,内容分别为<?php echo “test1”;?>,<?php echo “test2”;?> 3.修改配置文件将原来的Listen 80改为Listen 80Listen 80804. 打开apache\conf\extra\httpd-vhosts.conf文件,在httpd-vhosts.conf中写入如下配置:<VirtualHost *:8080>DocumentRoot "D:/xampp/htdocs/test1"ServerName test1<Directory "D:/xampp/htdocs/test1">Order Allow,DenyAllow from 192.168.1.237</Directory></VirtualHost><VirtualHost *:80>DocumentRoot " D:/xampp/htdocs/test2"ServerName test2</VirtualHost>5.重启apache,测试。
从ip为192.168.1.237电脑的浏览器中输入192.168.1.239:8080可以访问,输出”test1”;本地输入192.168.1.239:8080,禁止访问。
虚拟主机问题之基于主机名的虚拟主机设置
虚拟主机问题之基于主机名的虚拟主机设置要想在只有一个IP地址的服务器上支持多个网站,我们可以通过设置虚拟主机的主机名来进行区分。
这样就可以达到多个虚拟主机共享同一个IP地址的目的,同时也可以缓解IP地址不足的压力。
基于主机名的虚拟主机的配置相对比较简单,因为只需要配置DNS服务器,将每个主机名映射到正确的IP地址,然后配置Apache服务器,使其能辨识不同的主机名即可。
注意在Apache服务器配置中创建一个虚拟主机并不会自动在你的DNS中对主机名进行相应的更新,你必须自己在DNS中添加域名来指向你的IP 地址。
否则,你的Web站点将无法访问。
你可以在本地的hosts文件中添加com和,但这种方法仅适用于有这些hosts文件的主机。
现在可以通过域名,但如果你想在同一IP地址上添加一个新的虚拟主机,用域名,那么需要在httpd.conf文件中加入以下代码:NameVirtualHost *:80<VirtualHost *:80>ServerNameServerAliasDocumentRoot C:/Apache2.2/htdocs/shop#这里可以添加其他指令</VirtualHost><VirtualHost *:80>ServerNameDocumentRoot C:/Apache2.2/htdocs/bbs#这里可以添加其他指令</VirtualHost>因为星号匹配所有的IP地址,所以主服务器不接收任何请求。
上例中,所以它拥有最高的优先级,可以认为是默认服务器或主服务器。
这意味着,如果一个请求不能与某个ServerName指令相匹配,它将会由第一个<VirtualHost>区块来提供服务。
NameVirtualHost指定了主机的IP地址和端口号(默认80端口可省略),如果想让主机可以在所有地址上运行,可以使用"*"作为NameVirtualHost的参数。
Apache服务器虚拟主机虚拟目录配置
实验一Apache服务器配置1Apache服务器介绍与安装Apache是世界使用排名第一的Web服务器软件。
它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web 服务器端软件之一。
1.1Apache安装Network Domain 和Server Name 分别为这台服务器的域名和服务器名称.1.2端口号设置找到apache的安装目录,进入conf文件夹,找到httpd.conf。
用记事本或者其他文本编辑软件打开,查找80.将Listen 80 和ServerName localhost:80中的80改成8081或者8001等你喜欢的数字。
现在重启apache服务器,输入localhost:8080即可查看。
但是在此建议大家不要修改apache的端口号。
下文所有文章端口号都是用的80端口。
2httpd.conf文件主要功能介绍●ServerRoot directory-pathServerRoot指令设置了服务器所在的目录。
一般来说它将包含conf/和logs/子目录。
使用DEB包安装的系统, 此项的默认值为"/etc/apache2" 也就是说仅仅包括apache2的配置文件.必须注意, 该目录是受保护的, 不允许非root用户对其进行修改.●Include file-path | directory-path这个指令允许在服务器配置文件中加入其它配置文件。
●Alias URL-path file-path|directory-pathAlias指令使文档可以被存储在DocumentRoot以外的本地文件系统中。
以(%已解码的)url-path路径开头的URL可以被映射到以directory-path开头的本地文件。
●< Directory directory-path > ... < / Directory >< Directory > 和< / Directory > 用于封装一组指令,使之仅对某个目录及其子目录生效。
Ubuntu Server下创建Apache虚拟主机
上面提到的default虚拟主机, 位于/etc/apache2/sitesavailable/000-default.conf。
default虚拟主机在安装时被链接到 /etc/apache2/sites-enabled目录下,是己经在运行 的虚拟主机:在浏览器中访问服务器的IP地址,出现 页面“Apache2 Ubuntu Default Page”,就表明 该网站已经在提供服务。
提示:在nano中按CTRL+O保存,按CTRL+X退出。
5 创建/var/www//目录,并写入一个index.html文件上
Sudo mkdir /var/www/ echo "<h1>mytest</h1>" | sudo tee /var/www//index.html
Ubuntu Server下创建ApachHale Waihona Puke 虚拟主机Apache虚拟主机
5
Ubuntu Server下创建Apache虚拟主机
创建新的虚拟主机
6
1 先将default虚拟主机复制一份,以便在其基础上进行修改: cd /etc/apache2/sites-available/ sudo cp 000-default.conf .conf 提示:与旧版本不同的是,虚拟主机的配置文件,必须以.conf结尾。
Ubuntu Server下创建Apache虚拟主机
创建新的虚拟主机
8
6 禁用默认的虚拟主机,并启用新建的虚拟主机;然后重新启动
Apache,这样就可能在浏览器中访问这个虚拟主机了。
sudo a2dissite 000-default &&sudo a2ensite sudo service apache2 restart
APACHE虚拟主机配置
APACHE虚拟主机配置(1)配置两块网卡eth0(使用bridge方式连接)eth0的配置如下:(/etc/sysconfig/network-scripts/ifcfg-eth0)DEVICE=eth0BOOTPROTO=staticIPADDR=192.168.16.1 # 根据实际情况修改。
NETMASK=255.255.255.0ONBOOT=yes启动服务# ifdown eth0; ifup eth0;(2)配置DNS服务(参考实验二中DNS的基本配置)下面给出一个要求,可以按照实际情况修改域名:.服务器的IP:192.168.16.1服务器的域名:服务器的其它别名:www启动服务# service named restart(3)配置APACHE服务(3.1)查看系统是否安装APACHE。
若没有安装请安装(具体步骤省略)。
# rpm -q httpd(3.2)打开主配置文件(vi /etc/httpd/conf/httpd.conf),然后按照如下要求修改之。
(A)基本配置ServerRoot "/etc/httpd"Listen 80ServerName :80DocumentRoot "/var/www/html"---------------------------------------------------------------------------------------------------------------------- 重启服务:# service httpd restart测试方法:在浏览器输入:----------------------------------------------------------------------------------------------------------------------(B)支持本地用户建立个人主页<IfModule mod_userdir.c>#UserDir disableUserDir public_html</IfModule><Directory /home/*/public_html>AllowOverride FileInfo AuthConfig LimitOptions MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec<Limit GET POST OPTIONS>Order allow,denyAllow from all</Limit><LimitExcept GET POST OPTIONS>Order deny,allowDeny from all</LimitExcept></Directory>---------------------------------------------------------------------------------------------------------------------- 例子:开放用户mary的个人站点配置(假设mary已经存在)。
Tomcat 5 + Apache 2 + mod_jk 2 实现虚拟主机
Tomcat5+Apache2+mod_jk2实现虚拟主机Tomcat5实现了servlet2.4和jsp2.0,在性能上有所提升,尤其是,对我们来说,实现了真正的中文支持,无需添加特别参数就可以直接显示中文内容,让java和jsp中文问题成为历史!1.首先apache2,unix/linux下面就从源代码编译安装,最重要的configure参数是--enalbe-modules="so"其他根据自己需要安装,windows下面直接安装编译好的二进制版本。
具体安装方法很多地方已经有介绍了,这里不赘述,如有需要可以参考或者chinaunix 的web服务器区精华,唯一一点需要提醒的是,要将httpd.conf里面的[code:1:141851c2a4]#AddDefaultCharset ISO-8859-1[/code:1:141851c2a4]前面加#注销掉,很多人提问为什么Apache2显示中文乱码,根源就在这里,最简单的方法就是加一个#就可以正常显示中文了,无需设置什么GB2312。
2.安装jdk,tomcat的运行需要j2sdk支持,可以去下载。
windows的可以下载offline installation版本,大概50M左右,下载以后安装,linux下建议下载self-extract版本,下载完以后用chmod+x j2sdk...加上执行属性,然后运行下载的文件,会出来一个许可协议,按几次空格跳过几页后,输入yes表示接受协议,然后程序会自动释放,并建立一个子目录j2sdk1.4.2_04。
3.设置环境变量,java的运行需要设置一下环境变量,通常只要设置一个JAVA_HOME,另外,把java的可执行程序放到path里面去就可以了。
在linux下运行[code:1:141851c2a4]JAVA_HOME=/usr/local/j2sdk1.4.2-04;export$JAVA_HOMEPATH=$PATH:$JAVA_HOME/bin[/code:1:141851c2a4]如果你需要所有的用户都可以使用java,可以把这段代码放到/etc/profile里面去,这样你每次登陆的时候就会自动把有关变量设置好了。
Apache的httpd.conf文件配置详解
Apache的httpd.conf文件配置详解Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改。
主站点的配置(基本配置)(1) 基本配置:ServerRoot "/mnt/software/apache2" #你的apache软件安装的位置。
其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。
PidFile logs/httpd.pid #第一个httpd进程(所有其他进程的父进程)的进程号文件位置。
Listen 80 #服务器监听的端口号。
ServerName :80 #主站点名称(网站的主机名)。
*****************************#管理员的邮件地址。
DocumentRoot "/mnt/web/clusting" #主站点的网页存储位置。
以下是对主站点的目录进行访问控制:<Directory "/mnt/web/clusting">Options FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all</Directory>在上面这段目录属性配置中,主要有下面的选项:Options:配置在特定目录使用哪些特性,常用的值和基本含义如下:ExecCGI: 在该目录下允许执行CGI脚本。
FollowSymLinks: 在该目录下允许文件系统使用符号连接。
Indexes: 当用户访问该目录时,如果用户找不到DirectoryIndex 指定的主页文件(例如index.html),则返回该目录下的文件列表给用户。
SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。
其它可用值和含义请参阅:/Apache/ApacheManual/mod/core.html#optionsAllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):None: 当AllowOverride被设置为None时。
如何使用基于域名的虚拟主机。
基于域名的虚拟主机和基于IP的虚拟主机比较基于IP的虚拟主机使用连接的IP地址来决定相应的虚拟主机。
这样,你就需要为每个虚拟主机分配一个独立的IP地址。
而基于域名的虚拟主机是根据客户端提交的HTTP头中标识主机名的部分决定的。
使用这种技术,很多虚拟主机可以共享同一个IP地址。
基于域名的虚拟主机相对比较简单,因为你只需要配置你的DNS服务器将每个主机名映射到正确的IP地址,然后配置Apache HTTP服务器,令其辨识不同的主机名就可以了。
基于域名的服务器也可以缓解IP地址不足的问题。
所以,如果没有特殊原因使你必须使用基于IP的虚拟主机,您最好还是使用基于域名的虚拟主机。
下列情况下,你可能会想要使用基于IP的虚拟主机:∙一些古董级的客户端与基于域名的虚拟主机不兼容。
为了与基于域名的虚拟主机兼容,客户端必须发送"Host"头。
HTTP/1.1规范中对此做了要求。
而所有现在常见的仅支持HTTP/1.0的旧版本浏览器都以附加的方式实现了这个要求。
如果你又想支持这些老浏览器,又想使用基于域名的虚拟主机。
我们提供了一个技术方案,你可以在本文末尾看到它。
∙SSL协议先天特性决定了基于域名的虚拟主机无法成为SSL安全服务器。
∙一些操作系统和网络设备实现的带宽管理技术无法在多个主机共享一个IP的情况下区别它们。
使用基于域名的虚拟主机为了使用基于域名的虚拟主机,你必须指定服务器IP地址(和可能的端口)来使主机接受请求,这个可以用NameVirtualHost指令来进行配置。
如果服务器上所有的IP地址都会用到,你可以用"*"作为NameVirtualHost的参数。
如果你打算使用多端口(如运行SSL)你必须在参数中指定一个端口号,比如"*:80"。
请注意,在NameVirtualHost指令中指定IP地址并不会使服务器自动侦听那个IP地址。
请参阅设置Apache使用的地址和端口一章获取更多详情。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Apache2基于域名的虚拟主机实现
作者:sunry
主页
微博/usenrong
1、概述The Realization of Virtual Host of APACHE Based on Domain Names
针对各个子站点使用独立域名访问同一IP地址并搭载在同一台Web服务器上,提出了基于域名的APACHE Web运用服务系统的虚拟主机处置方案。
经过对BIND9域名解析软件及APACHE运用软件系统的配置提供虚拟主机服务,完成各子站点的独立域名访问。
2、基于域名的虚拟主机
虚拟主机(Virtual Host)是运用特殊的软硬件技术,把一台运转在因特网上的服务器主机分红一台台“虚拟”的主机,每一台虚拟主机都具有独立的域名或IP地址,具有完整的InterNET服务器(WWW、FTP、Email 等)功用。
其主要优点:虚拟主机之间完全独立,并可由用户自行治理。
基于域名的虚拟主机是指服务器上运转每一台虚拟主机都具有独立域名解析;运转主要原理是客户端在访问网络站点时所提交域名信息,经过DNS解析到相应的网络服务器,再由网络服务器检其HTTP头信息,由APACHE软件对HTTP头信息中的主机名停止查找,指向相对应的虚拟目录并提供主页访问服务器。
基于域名的虚拟主机主要优点是:可以完成多个网络站点共享一个IP地址;多个虚拟站点可以共享一个数据库系统,同时方便治理员对虚拟主机数据库的维护。
依据其原理,完成基于域名的虚拟主机主要处置两个效果,一是设计独立域名,更改DNS服务器的配置;二是在APACHE运转的WEB服务器上配置虚拟主机。
2.1 DNS服务器配置
DNS服务器在整个网络的运转进程中起着十分重要的作用,可以把域名解析为独立的IP地址,也可以把IP地址解析成域名。
完成独立域名支持的虚拟主机需求在DNS服务器上更改相应的配置,当客户端停止DNS 央求时,DNS服务器可以把域名解析成IP地址,以到达找到该主机的目的。
一台WEB服务器上放置了多个网络站点并且都在一个域下,只是在主机中所处目录不同。
例如:http:// ,http:// 区分属于知识库和其他站点。
两个学站点同在WEB服务器主机的/var/www 和/var/www/othersite目录下。
DNS服务器就是让外部访问的域名可以指向WEB服务器。
如何让各站点主页依据其域名来判别其主页位置由APACHE虚拟主机来完成。
要完成各站点独立域名访问,首先,确定域名的格式,各站点以其目录称号为域名的最前端,例如:“知识库”对就目录“www”设置域名:,
其它站点类推。
其次,配置DNS服务器。
DNS服务器主要配置文件都在/etc/bind目录下,DNS服务器完成的解析进程分为正向解析,所要完成的独立域名,需求把这些域名和服务器上的一个IP地址树立映射关系。
在正向解析文件中需求更改IN记载。
(DNS服务器,WEB服务器测试在内网同一服务器上)创建正向解析
zone "" {
type master;
file "/var/lib/bind/.hosts";
};
创建.hosts文件内容如下
$ttl 38400
. IN SOA . .
(
1292202854
10800
3600
604800
38400 )
. IN NS .
. IN A 192.168.12.113
. IN A 192.168.12.113
. IN A 192.168.12.113
2.2 WEB服务器基于域名的虚拟主机配置
2.2.1 确定虚拟主机的虚拟目录
依据WEB服务器目录结构状况不需求更改虚拟目录的指向。
即/var/www/othersite对应域名虚拟主机网址是:http:// ,
目录/var/www对应域名知识库虚拟主机网址是:http:// 。
2.2.2 建立虚拟主机
配置虚拟主机
创建配置文件/etc/apache2/sites-available/.conf
配置内容
<VirtualHost *:80>
DocumentRoot "/var/www/othersite"
ServerName
<Directory "/var/www/othersite">
allow from all
Options +Indexes
</Directory>
</VirtualHost>
配置虚拟主机
创建配置文件/etc/apache2/sites-available/.conf
配置内容
<VirtualHost *:80>
DocumentRoot "/var/www"
ServerName
<Directory "/var/www">
allow from all
Options +Indexes
</Directory>
</VirtualHost>
对此配置语句作如下说明:
1 <VirtualHost *> 和</VirtualHost>:表示在其中的语句是一个虚拟主机的配置.VirtualHost后本应该加上
本机的IP地址,但由于无静态IP,故此处用通配符*代替,80为端口号。
2 ServerName :设置虚拟主机的域名。
3 ServerAdmin youshengrong@:设置该虚拟主机网管员的邮件(可选)。
4 DocumentRoot /var/www:设置该虚拟主机的主目录路径。
5 ErrorLog “/var/log/apache2/wiki_errors.log”:设置该虚拟主机的出错日志(可选)。
6 CustomLog “/var/log/apache2/wiki_accesses.log”common :设置改虚拟主机的访问信息文件(可选)。
2.2.3 启用虚拟主机
运行sudo a2ensite .conf
sudo a2ensite .conf
发现在/etc/apache2/sites-enabled/ 目录中多了一个到/etc/apache2/sites-available/
.conf 的软链接。
接下来重启apache2
sudo /etc/init.d/apache2 restart
这样虚拟主机的站点和.conf就设置成功了。
在浏览器中输入http:// .conf 就可以访问到你放在/var/www/othersite目录下的站点。
在浏览器中输入http:// .conf 就可以访问到你放在/var/www目录下的站点。