apache服务与虚拟主机

apache是典型优秀的Web服务器,可以运行在linux,unix,windows等环境。其具有开源,跨平台,支持各种语言,模块化设置,稳定与安全等特点。

以红冒企业版RHEL5为例,搭建与配置apache服务。

配置好IP,网关,掩码等基本信息。

为了避免端口和程序发生冲突,删除以RPM包安装的相关软件。可根据实际情况删除。

rpm -e httpd httpd-manual webalizer subversion mod_python mod_ssl mod_perl system-config-httpd php php-cli php-ldap php-common mysql dovecot --nodeps

在删除过程中,如果出现error: package mysql is not installed报错,则在命令上将这个选项去掉再删即可。

将httpd解压到/usr/src目录下,并进入其目录。

tar zxf httpd-2.2.17.tar.gz -C /usr/src/

cd /usr/src/httpd-2.2.17/

开始编译安装。指定安装在/usr/local/httpd目录下,启用动态加载模块,启用网页地址重写,启用字符集支持,启用CGI脚本程序支持。

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi && make && make install

安装完成后,可以通过ls /usr/local/httpd查看结果。

优化执行路径

ln -s /usr/local/httpd/bin/* /usr/local/bin/

启动服务

/usr/local/httpd/bin/apachectl start

netstat -anpt | grep httpd

配置并启动httpd服务。

网站根目录位于/usr/local/httpd/htdocs中,需要将Web的网页复制到该目录中。例如打开默认的测试页面:

日志文件位于/usr/local/httpd/log目录下,有access_log和error_log。

httpd.conf配置文件,位于/usr/local/httpd/conf/httpd.conf。

vim /usr/local/httpd/conf/httpd.conf

一些常用到的配置项:

ServerRoot "/usr/local/httpd"     //服务器的根目录

Listen 80//监听端口

DocumentRoot "/usr/local/httpd/htdocs"    //网页存放位置

DirectoryIndex index.html            //默认索引页,可以多个,以空格分开。

//区域配置项:仅针对该区域有效,不干涉全局。

<Directory />//可以是<Directory /var/wwwroot/>

Options FollowSymLinks        //控制选项,允许使用符号链接

AllowOverride None                //不允许隐含控制文件中的覆盖配置

Order deny,allow                    //访问控制策略的应用顺序

Deny from all                        //禁止任何人访问该区域

</Directory>                            //该区域结束

通常情况下Web对所有的客户端都开放,所以应该使用Allow from all 允许所有人访问策略。但有时某些区域只拒绝/允许一部分主机访问,例如后台或者AWStats系统等。例如修改为:

<Directory “/usr/local/httpd/htdocs/test”>

......

Order deny,allow

Deny from all              //拒绝访问的主机,例如所有all,可以使网段和一个ip

#Order allow,deny

#Allow from all              //允许访问的主机,例如所有all

</Directory>

保存退出,编辑/usr/local/httpd/htdocs/test/test.html

cat >>/usr/local/httpd/htdocs/test/test.html<<end

<h1>test</h1>

end

重启服务

/usr/local/httpd/bin/apachectl stop

/usr/local/httpd/bin/apachectl start

测试为拒绝访问!!

构建虚拟WEB主机,基于域名,基于IP,基于端口。

在此测试前,应该搭建好DNS服务器。略

创建两个不同网站,用作测试。

mkdir /var/www/html/testcom

mkdir /var/www/html/webcom

echo "<h1>www.test.com</h1>" > /var/www/html/testcom/index.html

echo "<h1>www.web.com</h1>" > /var/www/html/webcom/index.html

方法一:三种虚拟主机都可以直接在httpd配置文件上修改,

修改监听地址,例如211.1.1.1:80

虚拟主机区域,例如<VirtualHost 监听地址>......</VirtualHost>

目录权限等,例如<Directory 目录位置>......</Directory>

方法二:直接修改比较少,这样会改动太多主配置文件,通常是用独立配置文件来配置虚拟主机,,然后在httpd.conf文件通过lnclude加载这些配置。这有利于减少httpd.conf文件的改动。

1,基于域名虚拟主机:

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

NameVirtualHost 192.168.78.129:80

<Directory "/var/www/html">        //区域配置文件目录

Order allow,deny//允许所有人访问

Allow from all

</Directory>

<VirtualHost 192.168.78.129:80>        //虚拟主机的IP地址

DocumentRoot "/var/www/html/testcom"    //网站地址

ServerName www.test.com            //服务名称

ErrorLog "logs/dummy-host.example.com-error_log"

CustomLog "logs/dummy-host.example.com-access_log" common

</VirtualHost>

<VirtualHost 192.168.78.129:80>

DocumentRoot "/var/www/html/webcom"

ServerName www.web.com

ErrorLog "logs/dummy-host2.example.com-error_log"

CustomLog "logs/dummy-host2.example.com-access_log" common

</VirtualHost>

保存退出。

修改主配置文件,添加独立配置文件。

vim /usr/local/httpd/conf/httpd.conf

....//略

Include conf/extra/httpd-vhosts.conf

保存退出,并重启httpd服务。

/usr/local/httpd/bin/apachectl restart

2,基于IP地址的虚拟主机

(PS:实验可以使用同一网段,减少DNS配置和网段调整等工作。添加多一张虚拟网卡或编辑虚拟网卡di地址:ifconfig eth0:0 192.168.78.130/24)

同样使用独立配置文件的方法。

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<Directory "/var/www/html">            //区域配置文件目录

Order allow,deny                         //允许所有人访问

Allow from all

</Directory>

<VirtualHost 192.168.78.129:80>                    //虚拟主机的IP地址

DocumentRoot "/var/www/html/testcom"    //网站目录

ServerName www.test.com                       //服务名称

ErrorLog "logs/dummy-host.example.com-error_log"

CustomLog "logs/dummy-host.example.com-access_log" common

</VirtualHost>

<VirtualHost 192.168.78.130:80>

DocumentRoot "/var/www/html/webcom"

ServerName www.web.com

ErrorLog "logs/dummy-host2.example.com-error_log"

CustomLog "logs/dummy-host2.example.com-access_log" common

</VirtualHost>

保存退出,同样需要在主配置文件加载配置文件。

3,基于端口的虚拟主机

这种虚拟主机,一般需要指定端口才可以访问。一般访问网页默认都是80(http)或443(https)。因此在配置虚拟主机时需要指定端口。

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<Directory "/var/www/html">        //区域配置文件目录

Order allow,deny                      //允许所有人访问

Allow from all

</Directory>

<VirtualHost 192.168.78.129:80>                    //虚拟主机的IP地址

DocumentRoot "/var/www/html/testcom"    //网站目录

ServerName www.test.com                       //服务名称

ErrorLog "logs/dummy-host.example.com-error_log"

CustomLog "logs/dummy-host.example.com-access_log" common

</VirtualHost>

<VirtualHost 192.168.78.129:1234>                //虚拟主机的IP地址加端口!!

DocumentRoot "/var/www/html/webcom"

ServerName www.web.com

ErrorLog "logs/dummy-host2.example.com-error_log"

CustomLog "logs/dummy-host2.example.com-access_log" common

</VirtualHost>

保存退出,同样需要在主配置文件上加载独立配置文件。

在主配置文件需要添加监听端口!!

vim /usr/local/httpd/conf/httpd.conf

Listen 1234

重启服务

则可以看到结果。

时间: 2024-10-10 07:19:01

apache服务与虚拟主机的相关文章

基于apache双向ssl虚拟主机服务配置

因为公司需要最近一直研究apache双向认证的问题,公司只有一台服务器,这台服务器上部署着wiki知识库,owncloud私有云,phpmyadmin,zendaopms.现在想实现owncloud需要证书认证的方式才能访问,其他三个可以通过http访问.想要实现这样的环境需要用到apache双向ssl的配置还有apache虚拟主机的知识. 软件环境 Apache Httpd 2.2.16  openssl-1.0.0e.tar.gzSSL-Tools(http://www.openssl.or

nginx网站服务于虚拟主机

   Nginx网站服务于虚拟主机 1:nginx的优点: 稳定性高 系统资源消耗低 http并发量处理能力好可支持30000-50000个并发请求 主要用于静态页面 以线程为单位,一个进程对应多个用户,(线程很少占用系统资源) 2:与Apache的对比: Apache主要用于动态页面 支持功能多 稳定性能高 Apache以进程为单位,一个用户对应一个进程(一对一) 3:nginx主要用于:电商,网站,社交,门户...... 4:安装及控制nginx 1.安装支持软件 [[email prote

关于wamp5中(apache)设置虚拟主机

找了很多文章,但是很多对于最新的apache都已经过时无法生效了. http://blog.csdn.net/yuluo727282752/article/details/6944359 这篇文章写得非常好,记录下来,下面为全文引用. 完成一个项目,总要进行一些测试,但是在自己本上测试或许有一些自己想不到的BUG出现,于是配置一个虚拟主机可以为自己更方便的解决BUG,也可以方便演示时大家测试 以下是我在网上寻到的一些方法,分享给大家 开发环境:WAMP 实例一,Apaceh配置localhost

在Apache中开启虚拟主机

最近在自学LAMP,在Apache中尝试着开启虚拟主机的时候,遇到了挺多麻烦的,这里也顺便总结一下,在Apache中开启虚拟主机的时候,主要有下面几个步骤: 1.新建一个文件夹作为虚拟主机,用来存储网站资源例如我是在Apache目录下新建了一个 htdocs_v 文件夹,里头新建了一个php文件,内容如下: <?php echo 'this is the first virtual host'; ?> 2.在配置文件中开启虚拟主机:打开Apache/conf/httpd.conf文件,修改如下

apache 如何添加虚拟主机?

apache添加虚拟主机很简单,修改配置文件:httpd.conf文件 一.分别去掉下面两行文字前面的#号. #LoadModule vhost_alias_module modules/mod_vhost_alias.so 去掉#意思是启用apache的虚拟主机功能. #Include conf/extra/httpd-vhosts.conf 去掉这一行的#意思是从conf/extra/httpd-vhosts.conf这个文件导入虚拟主机配置 二.打开该文件,看到以下类似内容.虚拟主机的配置

httpd服务之虚拟主机、访问控制、https配置详解

前言 上文讲解了http协议及httpd的一些特性,是学习web服务需要掌握的一些基础知识,接下来让我们进一步了解httpd相关功能的配置,本文讲解的是虚拟主机,访问控制及https等功能的配置. httpd之虚拟主机 虚拟主机共分为三种模式:基于IP.基于端口.基于主机名(FQDN) 实验环境介绍 开始之前,先介绍一下httpd在CentOS6.6版本及文件: 版本:      httpd-2.2.15(CentOS7升级为2.4系列) 配置文件:         /etc/httpd/con

Apache的默认虚拟主机

Apache的默认虚拟主机 访问主机的自定义域名 访问linux自定义域名 原文地址:http://blog.51cto.com/13515599/2074432

CentOS 6下Apache的https虚拟主机实践

题目:1.建立httpd服务器,要求: 提供两个基于名称的虚拟主机: (a)www1.buybybuy.com,页面文件目录为/web/vhosts/www1:错误日志为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access: (b)www2.buybybuy.com,页面文件目录为/web/vhosts/www2:错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access: (

Apache配置完虚拟主机后,使用Chrome访问localhost还是默认目录htdocs

Chrome 解析DNS出错,这个错误比较罕见,甚至说有点奇特.今天在使用Apache配置虚拟主机时,出现了一个非常奇怪的现象.我按照配置的步骤配置虚拟主机,如下 配置虚拟主机的步骤如下: 1. 启用  httpd-vhosts.conf 在 httpd.conf 文件中 # Virtual hosts ,虚拟主机 Include conf/extra/httpd-vhosts.conf 2. 在httpd-vhosts.conf文件中做配置 #配置我们自己的虚拟主机 <VirtualHost