WEB服务器的架设,在linux有一个很著名的架构叫lamp:linux+apache+mysql+php,就知道apache的分量了。
在搭建apache服务钱需要做DNS服务器
DNS的搭建http://wt7315.blog.51cto.com/10319657/1852795
http的详解http://wt7315.blog.51cto.com/10319657/1837595
apache
后台进程:httpd
脚本:/etc/rc.d/init.d/httpd
使用端口:80(http),443(https)
所需RPM包:httpd
配置路径:/etc/httpd/*
默认网站存放路径:/var/www/*
优点:免费,稳定,速度快
先安装apache
etc/httpd存放着apache的所有配置文件,/var/www是网页文件存放目录,一般在HTML内
vim /etc/httpd/conf/httpd.conf appach的主配置文件
httpd.conf配置文件主要由全局环境、主服务器配置和虚拟主机3个部分组成。每部分都有相应的配置语句,该文件所有配置语句的语法为“配置参数名称 参数值”的形式。
httpd.conf中每行包含一条语句,行末使用反斜杠“\”可以换行,但是反斜杠与下一行中间不能有任何其他字符(包括空白)
httpd.conf的配置语句除了选项的参数值以外,所有选项指令均不区分大小写,可以在每一行前用“#”号表示注释。
如果能看见红色的redhat的测试页面,就证明你的安装没有问题,如果看不见,你就要从新安装,或者调试你的网络了,网页文件默认是放在/var/www/html中的,我们现在就自己去写个网页,简单的测试下
documentRoot 就是定义网站的默认网站存放目录
配置DNS,将地址解析到linux的ip地址(上篇的DNS已经解析过了)
虚拟目录
每个 Internet服务可以从多个目录中发布。通过以通用命名约定 (UNC) 名、用户名及用于访问权限的密码指定目录,可将每个目录定位在本地驱动器或网络上。虚拟服务器可拥有一个宿主目录和任意数量的其它发布目录。其它发布目录称为虚拟目录。
apache的config文件中documentRoot 后面的是apache在解析页面时候的根目录,如果在本机上同时存在两个工作目录那么如果不虚拟(alias)目录的话,需要不断修改documentroot的路径,然后重启apache,相当麻烦,解决这个问题的办法之一就是设置虚拟目录,
虚拟目录虚拟目录有以下优点。
(1)便于访问。
(2)便于移动站点中的目录。
(3)能灵活加大磁盘空间。
(4)安全性好。
(5)使用Alias选项可以创建虚拟目录。
mkdir /var/www/dns/
echo /var/www/dns > /var/www/dns
并在最后加上Alias/dns “/var/www/dns”
/dns是在url里输入的时候起个名字,“/var/www/dns”是/dns名字的具体存放路径,中间的空格是TAB出来的。
service httpd restart重启httpd服务并进行测试。
虚拟主机
是在一台服务器上运行多个Web站点。
三种设定虚拟主机的方式
基于名称的虚拟主机
只需服务器有一个IP地址即可,所有的虚拟主机共享同一个IP,各虚拟主机之间通过域名进行区分。
但需要新版本的HTTP 1.1浏览器支持。这种方式已经成为建立虚拟主机的标准方式。
基于IP的虚拟主机
需要在服务器上绑定多个IP地址,然后配置Apache,把多个网站绑定在不同的IP地址上,访问服务器上不同的IP地址,就可以看到不同的网站。
基于端口号的虚拟主机
只需服务器有一个IP地址即可,所有的虚拟主机共享同一个IP,各虚拟主机之间通过不同的端口号进行区分。在设置基于端口号的虚拟主机的配置时,需要利用Listen语句设置所监听的端口。
1.配置基于域名的虚拟主机
创建步骤:
① 注册虚拟主机所要使用的域名
实现域名解析可以有两种方法:
在客户机上通过修改/etc/hosts文件实现。这是一种比较简单的方法,只需在/etc/hosts文件中加入下面两行
172.16.1.117 www. baidu.com
172.16.1.117 www.qq.com
(2) 在DNS服务器上通过配置DNS实现。
上次的dns配置,已经配置好了百度的域名解析,进行简单的添加和修改,就把qq的域名解析也配置好了。
② 创建所需的目录和默认首页文件
在/usr目录下创建四个目录,分别用来存放两主机的网页和日志文件。操作如下:
mkdir -p /var/www/baidu.com
mkdir -p /var/www/qq.com
echo “this is www.baidu.com’s web!”>/var/www/baidu.com/index.html
echo “this is www.qq.com’s web!”>/var/www/qq.com/index.html
③编辑/etc/httpd/conf/httpd.conf配置文件
ServerAdmin
你的地址如果服务器有任何问题将发信到这个地址, 这个地址会在服务器产生的某些页面中出现,例如,错误报告
DocumentRoot
放置服务文档的目录, 默认状态下,所有的请求都以这个目录为基础, 但是直接符号连接和别名可用于指向其他位置。
ServerName sss.dev
允许设置主机名如果与程序获得的不同,主机名将返回客户端(例如,用"www"代替主机真实的名字)。缺省情况下,并不需要指定这个ServerName参数,服务器将自动通过名字解析过程来获得自己的名字,但如果服务器的名字解析有问题(通常为反向解析不正确),或者没有正式的DNS名字,也可以在这里指定IP地址。当ServerName设置不正确的时候,服务器不能正常启动。
在/usr目录下创建四个目录,分别用来存放两主机的网页和日志文件
mkdir /var/www/baidu.com
echo “this is www.baidu.com’s web “> / var/www/baidu.com/index.html
mkdir /var/www/qq.com
echo “this is www.qq.com’s web “> / var/www/qq.com/index.html
修改配置文件,在httpd.conf文件最后添加以下两台虚拟机
重新启动httpd服务
service httpd restart ,进行测试
2.基于IP地址的虚拟主机
①为一块网卡绑定多个IP地址
cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-eth0:0
vim ifcfg-eth0:0
DEVICE=eth0:0
IPADDR=172.16.102.121
重启网卡服务
②注册虚拟主机所使用的域名
向基于名称的虚拟主机配置类似,配置DNS服务,将测试的网址分别指向到192.168.1.117和192.168.1.18两个IP地址上,当然也可以编辑/etc/hosts文件
③创建web站点根目录和默认首页文件
mkdir /var/www/ip1 /var/www/ip2
echo “ this is 172.16.1.117’s web”>/var/www/ip1/index.html
echo “ this is 172.16.1.118’s web”>/var/www/ip2/index.html
④编辑/etc/httpd/conf/httpd.conf配置文件
<VirtualHost 192.168.1.117>
ServerName www.ip1.com
DocumentRoot /var/www/ip1
</VirtualHost>
<VirtualHost 192.168.1.118>
ServerName www.ip2.com
DocumentRoot /var/www/ip2
</VirtualHost>
⑤重新启动httpd服务进行测试
3.配置基于端口号的虚拟主机
编辑配置文件