linux学习之旅(二十一(上))&Apache (Web服务器)

概要简介:

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

历史进程:

Apache最开始是Netscape网页服务器之外的开放源代码选择。后来它开始在功能和速度超越其他的基于Unix的HTTP服务器。1996年4月以来,Apache一直是Internet上最流行的HTTP服务器: 1999年5月它在 57% 的网页服务器上运行;到了2005年7月这个比例上升到了69%。在2005年11月的时候达到接近70%的市占率,不过随着拥有大量域名数量的主机域名商转换为微软IIS平台,Apache市占率近年来呈现些微下滑。而Google自己的网页服务器平台GWS推出后,加上Lighttpd这 个轻量化网页服务器软件使用的网站慢慢增加,反应在整体网页服务器市占率上,根据netcraft在2007年7月的最新统计数据,Apache的市占率已经降为52.65%,8月时又滑落到50.92%。尽管如此,它仍旧是现阶段因特网市场上,市占率最高的网页服务器软件。

名称来源:

对于Apache的名称,广泛的解释是(也是最显而易见的):这个名字来自这么一个事实:当Apache在1995年初开发的时候,它是由当时最流行的HTTP服务器NCSA HTTPd 1.3 的代码修改而成的,因此是“一个修补的(a patchy)”服务器。然而在服务器官方网站的FAQ中是这么解释的:“‘Apache’这个名字是为了纪念名为Apache(印地语)的美洲印第安人土著的一支,众所周知他们拥有高超的作战策略和无穷的耐性”。无论如何,Apache 2.x 分支不包含任何 NCSA 的代码。


基本配置

环境安装

安装apache软件包:
yum install -y httpd
systemctl start httpd      ##启动apache服务
systemctl enable httpd
查看服务开启的端口 :
http : 80
https : 443

配置文件

Apache 主配置文件 :
/etc/httpd/conf/httpd.conf

其中一些配置信息的解释:
ServerRoot "/etc/httpd"     //用于指定 Apache 的运行目录
Listen 80   //监听端口
User apache 运行 apache   //程序的用户和组
Group apache
ServerAdmin root@localhost  //管理员邮箱
DocumentRoot "/var/www/html"    //网页文件的存放目录(默认发布目录)

<Directory "/var/www/html">     // <Directory> 语句块自定义目录权限
Require all granted
</Directory>

ErrorLog "logs/error_log"   //错误日志存放位置
AddDefaultCharset UTF-8     //默认支持的语言
IncludeOptional conf.d/*.conf   //加载其它配置文件
DirectoryIndex index.html   //默认主页(默认发布文件)名称

更改默认发布文件:

<IfModule dir_module>
164  DirectoryIndex index.html westos  
//指定默认发布文件index.html,按顺序,如果顺序在前的文件不存在,读后面的文件westos
</IfModule>
systemctl restart httpd  //重启服务生效
vim /var/www/html/index.xml //去编写你的网页文件

更改默认发布目录

mkdir /westos/html -p   //递归创建
echo `hostname` > /westos/html/index.html

vim /etc/httpd/conf/httpd.conf
120 DocumentRoot "/westos/html"  ##默认目录改为/westos/html
121 <Directory "/westos/html">
122 Require all granted  ##允许所有人登陆
123 </Directory>
semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?'
//如果selinux开启,需要修改安全上下文,因为/var/www/html的安全上下文与/westos不同,所以/westos需要改变
restorecon -RvvF /westos   ##同步安全上下文
systemctl restart httpd

允许指定用户访问

vim /etc/httpd/conf/httpd.conf

 121 DocumentRoot "/westos/html"
 122 <Directory "/westos/html">
 123     Require all granted
 124     Order Allow,Deny              //不管写多少,只看最后面的
 125     Allow from ALL|IP             //允许所有人或者IP访问
 126     Deny from ALL|IP              //拒绝所有人或者IP访问
 127 </Directory>

 systemctl restart httpd            //重启生效

配置基于用户的身份验证

Apache 无格式文件用户身份验证
在此配置中 , 用户账户和密码存储在本地 .htpasswd 文件中。处于安全原因 , 该文件不能保存在网站的 DocumentRoot 中 ,而应保存在 Web 服务器不提供服务的一些目录中。

htpasswd 命令用于在 .htpasswd 文件中管理用户 : 
htpasswd -cm authfile admin   //第一次创建新的用户,需要加-c
htpasswd -m authfile admin1...  //后面的都是额外添加的,不用-c,如果有-c就会重新创建用户,之前创建的就没了


//只能/etc/httpd/conf/在这个目录下生成认证文件

修改主配置文件
vim /etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd" ##默认的根目录

120 DocumentRoot "/westos/html"   //看哪个文件
121 <Directory "/westos/html">
122#    Require all granted             ##允许所有人登陆,通过密码访问需要注释掉,单独指定
123     AuthUserFile /etc/httpd/conf/authfile       ##指定用户密码访问的文件
124     AuthName "please input your name and password"  ##提示
125     AuthType basic                   ##一种基本认证方式
126#    Require user admin              指定用户##这个设定只有admin用户可以访问
127     Require valid-user              指定文件中的用户 ##允许认证文件中所有用户通过帐号密码登陆
128 </Directory>
 systemctl restart httpd    //重启生效



//重新打开网站,需要输入用户及认证密码

扫描二维码关注公众号,回复: 9717311 查看本文章

虚拟主机

虚拟主机允许您从一个 httpd 服务器同时为多个网站提供服务。
现在讲解基于名称的虚拟主机其中多个主机名都指向同一个 IP 地址 , 但是 Web 服务器根据用于到达站点的主机名提供具有不同内容的不同网站。

mkdir -p /var/www/westos
mkdir /var/www/westos/news.westos.com -p
mkdir /var/www/westos/gongyi.westos.com -p
vim /var/www/westos/news.westos.com/index.html
vim /var/www/westos/gongyi.westos.com/index.html

cd /etc/httpd/conf.d/
//在其中添加news.conf  gongyi.conf  default.conf(这个文件是用来指定未定义的域名,将他们都引导到这个文件)'

default.conf
<Virtualhost _default_:80>  //默认:指定端口
    DocumentRoot "/var/www/html" //指定默认目录
    CustomLog "logs/default.log" combined   //combined : 四种类型文件都访问这个目录(access,warning,error,deny)
</Virtualhost>


//查看主配置文件中的说明,里面有对四种log文件的描述

vim news.conf     //编辑其中的news.conf文件
<Virtualhost *:80> //*代表access:指定端口
        ServerName news.westos.com
        DocumentRoot /var/www/westos/news.westos.com
        CustomLog "logs/news.log" combined
</Virtualhost>
//指定的要做授权,不然看不了:'
<Directory "/var/www/westos/news.westos.com">
    Require all granted  ##对此目录授权
</Directory>

客户端配置

本地解析是告诉是谁的浏览器,是谁的浏览器,就在谁上作本地解析

 vim /etc/hosts 在最后添加
172.25.254.109 www.westos.com news.westos.com gongyi.westos.com

在配置了本地解析的浏览器上检测:



//同一个域,可以看到三个不同的网页

发布了55 篇原创文章 · 获赞 38 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/mon_star/article/details/77217012