Apache 服务

Apache 服务,第1张

一、介绍

二、Linux下apache的安装

三、apache的基础信息

四、配置apache服务

五、apache的虚拟主机

六、Apache httpd.conf配置详解

七、特殊使用场景

       1. Linux Apache配置多个站点同时运行

Apache HTTP  Server (简称Apache)是 Apache软件基金会 的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。 [2] 

Apache  HTTP服务器 是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的 Web服务器 软件。

它可以运行在几乎所有广泛使用的 计算机平台 上。

Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的 Web服务器 软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是 自由软件 ,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做 代理服务器 来使用。

yum install httpd -y      #安装apache软件包

systemctl start httpd      #打开服务

systemctl enable httpd    #开机自启动

systemctl stop firewalld    #关闭防火墙

systemctl disable firewalld  #开机不启动防火墙

systemctl restart httpd#重新开启

firewalld-cmd --permanent --add-service=http  #在防火墙策略中添加http和https服务

firewalld-cmd --permanent --add-service=https

firewall-cmd --permanent --add-port=8080/tcp

firewalld-cmd --reload  #重新加载策略

firewall-cmd --list-all  #查看防火墙:

apache还有一个使用手册:需要安装httpd-manual包

yum install httpd-manual -y

各个主要子目录的用途如下:

bin:存放httpd服务的各种执行程序文件。包括主程序httpd、服务控制工具apachectl等。

cgi-bin:存放各种CGI程序文件。

logs:存放httpd服务的日志文件。

conf:存放httpd服务的各种配置文件,包括主配置文件httpd.conf、增强配置子目录extra等。

htdocs:存放网页文档,包括默认首页文件index.html等。

module:存放httpd服务的各种模块文件。

1.在默认发布目录发布内容

主配置目录: /etc/httpd/conf

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

子配置目录:/etc/httpd/conf.d

子配置文件:/etc/httpd/conf.d/*.conf

默认发布目录:/var/www/html

默认发布文件:index.html

默认端口:80

默认安全上下文:httpd_sys_content_t

程序开启默认用户:apache

apache日志:/etc/httpd/logs/*

netstat -antlupe | grep httpd   ##查看当前http服务的网络接口

2.修改默认端口

vim /etc/httpd/conf/httpd.conf

Listen 8080                      ##修改默认端口为8080

3.修改默认发布文件:

默认发布文件就是访问apache时没有指定文件名称时默认访问的文件。

这个文件可以指定多个,有访问顺序

vim /etc/httpd/conf/httpd.conf

DirectoryIndex  westos.html  index.html

##当index.html不存在时,访问westos.html                                       

##如果将westos.html放到index.html前面,

在两个文件都存在的情况下会默认访问westos.html里面的内容

##如果没编辑/etc/httpd/conf/httpd.conf(没添加加westos.html),

要想看到westos的页面,则在浏览器中输入:http端IP/westos.html 即可

# systemctl restart httpd.service  修改完配置文件记得一定要重启服务生效

4.修改默认发布目录

vim /etc/httpd/conf/httpd.conf

DocumentRoot "/www/html"

<Directory "/www/html">

        Require all granted

</Directory>

index.html:apache默认发布文件

news.conf 或 music.conf:apache子配置文件

恢复默认发布目录,并创建默认文件index.html

cd /etc/httpd/conf.d/                      #进入apache服务子配置目录

vim adefault.conf                          #建立默认发布目录配置文件

<VirtualHost _default_:80>

      DocumentRoot /var/www/html            #发布文件路径

      CustomLog "logs/adefault.log" combined  #日志路径,这里写相对路径,内容在/etc/httpd/logs/*.log里面

</VirtualHost>

https://www.cnblogs.com/mzhaox/p/11216635.html

1. Linux Apache配置多个站点同时运行

      这样一种场景;我们有一台服务器;但是想挂多个网站;那么Apache下配置虚拟主机可以满足这个需求;

1). 比较简单的是基于主机名的配置步骤如下:

step0:示例环境:

      ip:115.28.17.191

      域名:baijunyao.com

                thinkbjy.com

      目录:  /var/www/html/baijunyao 

                  /var/www/html/thinkbjy

step1:修改hosts文件

    [root@iZ28qa8jt4uZ /]# ifconfig              //查看ip并记录自己的ip地址   

    [root@iZ28qa8jt4uZ /]# vim /etc/hosts                    //修改hosts文件 添加如下两行内容

        115.28.17.191 baijunyao.com

        115.28.17.191 anlianma.com

step2:修改httpd.conf文件

    [root@iZ28qa8jt4uZ /]# vim /etc/httpd/conf/httpd.conf     //修改httpd.conf文件 删除990行 NameVirtualHost *:80前的#注释

   step3:修改httpd-vhosts.conf文件

    [root@iZ28qa8jt4uZ /]# vim /etc/httpd/conf.d/virtual.conf            //设置httpd-vhosts.conf如下 如没有则新建 

        <VirtualHost *:80>

                DocumentRoot /var/www/html/baijunyao

                ServerName baijunyao.com

        </VirtualHost>

        <VirtualHost *:80>

                DocumentRoot /var/www/html/anlianma

                ServerName anlianma.com

        </VirtualHost>

    虚拟主机配置到此结束;在对应的目录下新建html页面测试即可;

2). 另一种方式是

          实际应用中,一个使用自己独有的配置文件,另一个使用默认Apache配置

          Apache默认配置不表述。下面仅仅介绍独立配置文件,以zabbix为例

1、找到apache安装目录下,conf文件夹下的httpd.conf文件,用记事本或其他文本编辑软件打开。

2、在文件中搜索”Include conf/extra/httpd-vhosts.conf“这一行,去掉前面的”#“,开启虚拟主机功能。

3、找到apache安装目录下,conf/extra文件夹中的httpd-vhosts.conf文件,用记事本或其他文本编辑软件打开。

4、在文件的最后,加上以下代码后保存:

<VirtualHost *:80>

ServerName www.domain.com

DocumentRoot D:/www/domain

<Directory  "D:/www/domain">

Options +Indexes +Includes +FollowSymLinks +MultiViews

AllowOverride None

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

其中,80是服务器的端口,ServerName后面的是域名,DocumentRoot和Directory后面的是网站程序所在的目录。

5、找到服务器的hosts文件,以Windows系统为例,在C:\windows\system32\drivers\etc目录下,用记事本或其他文本编辑软件打开。

6、在hosts文件的末尾添加一行126.63.36.3 www.domain.com,并保存,重启服务后即可通过域名访问。

Apache,一种开放源码的HTTP服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性(注1)被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,Perl/Python等解释器可被编译到服务器中。

历史

Apache

起初由 Illinois 大学 Urbana-Champaign 的国家高级计算程序中心开发。此后,Apache

被开放源代码团体的成员不断的发展和加强。Apache

服务器拥有牢靠可信的美誉,已用在超过半数的因特网站中-特别是几乎所有最热门和访问量最大的网站。

开始,Apache只是Netscape网页服务器(现在是Sun

ONE)的之外的开放源代码选择。渐渐的,它开始在功能和速度。超越其他的基于Unix的HTTP服务器。1996年4月以来,Apache一直是

Internet上最流行的HTTP服务器: 1999年5月它在 57% 的网页服务器上运行;到了2005年7月这个比例上升到了69%。

者宣称因为这个名字好记才在最初选择它,但是流传最广的解释是(也是最显而易见的):这个名字来自这么一个事实:当Apache在1995年初开发的时

候,它是由当时最流行的HTTP服务器NCSA HTTPd 1.3 的代码修改而成的,因此是“一个修补的(a

patchy)”服务器。然而在服务器官方网站的FAQ中是这么解释的:“‘Apache’这个名字是为了纪念名为Apache(印地语)的美洲印第安人

土著的一支,众所周知他们拥有高超的作战策略和无穷的耐性”。无论怎么样,Apache 2.x 分支不包含任何 NCSA 的代码。

特性

Apache

支持许多特性,大部分通过编译的模块实现。这些特性从服务器端的编程语言支持到身份认证方案。一些通用的语言接口支持Perl,Python, Tcl,

和 PHP。流行的认证模块包括 mod_access, mod_auth 和 mod_digest。其他的例子有 SSL 和 TLS 支持

(mod_ssl), proxy 模块,很有用的URL重写(由 mod_rewrite 实现),定制日志文件

(mod_log_config),以及过滤支持(mod_include 和

mod_ext_filter)。Apache日志可以通过网页浏览器使用免费的脚本AWStats或Visitors来进行分析。

2.x版本

Apache 的2.x版本核心在Apache 1.x版本之上作出了重要的加强。这包括:线程,更好的支持非UNIX平台(例如Windows),新的 Apache API,以及IPv6支持。

评价

《PC Magazine》2004年8月评出了近30年以来的10款最佳软件产品。

他们其中或者是有过最辉煌的历史,或者是最具创意。其对apache的评价是:第三名:Apache(阿帕奇,1995年推出)Apache目前已经演变

成了“LAMP”,即Linux、Apache、MySQL和PHP的联合体。这是一个开放源代码软件项目,已经对微软的“.NET”战略构成严重威胁。

尤其是Apache网络服务器,让用户充分体验到开发源码软件的稳定性、可靠性和可定制性。

Apple.com评价apache时

说:Apache是服务器软件始终不断进化的大块部件,它免费但又是无价之宝。Apache

是在资源开放运动中出现的绝对珍品,因为不属于个人专利而是对公共免费。一旦拥有这些源码,程序员能够自由完成所想——能在其它程序员接替工作时被赋予同

样的权限来改变和修改自己的源代码。

注释

尽管不断有新的漏洞被发现,但由于其OpenSource的特点,漏洞总能被很快修补。因此总的来说,其安全性还是相当高的。

()[#page_#][#page_#]AddHandler cgi-script .cgi

AddHandler server-parsed .shtml

Sethandler cgi-script

AddHandler定义了何种扩展名用那一个字符串进行描述.

SetHandler把一个目录下的文件都指定用这一个字符串描述.

我在这里提到的命令都是与其结构密切相关的. Handler和Type的关系在下面会描述的. 许多的东东从外面是看不清楚的, 下面, 我们从里面看.

三 程序的基本结构

-----------------

Apache有非常好的跨平台性. 为了实现这一目标和简化模块编写者的负担,Apache完成了许多基本的功能如IO, 内存分配等, 这些接口都是与具体平台无关的. 还有一些很有用的例程如: hash table, array 等. 在整个体系中, Apache有一个基本点, 它尽可能的使用简单的结构和算法, 这不仅易于理解和维护, 还提高了它的稳定性.

UNIX系统上, Apache采用了多进程模型, 在Window上采用了多线程模型.多进程模型中, 其子进程处理客户请求,

父进程用于管理子进程. 当系统过载时父进程会再启动几个子进程, 当系统空闲时, 父进程会杀掉几个子进程.

子进程的数目在"MinSpareServers"和"MaxSpareServers"之间. 而且, 每个子进程处理的请求个数也是有限制的,

这可以解决诸如内存泄漏等问题. 所有的进程状态都被记录在share memory中. 由于每个进程的状态记录在其中的一小块内存上,

它通常也只读写这一块内存, 因此, Apache没有使用什么同步机制.

在Richard Steve的书上说到的几种多进程服务器模型, Apache都使用了,在不同的系统上根据其特点选择使用不同的方法:

1. accept :

在accept处阻塞, 只有在accept是在内核级实现的才行.

2. select :

在select处阻塞.

3. mutex/lock_file :

使用mutex或lock_file来进行对accpet进行互斥.

种方法都要求进行阻塞, 区别在于阻塞与不同的地方. 前两种方法都会由所谓的巨群问题: 多个阻塞在同一个资源上的进程被同时唤醒引发再次竞争.

不过, 按Richard Steve 的评测, 第一种方法最快, 第二种其次, 第三种最慢. 其实, 在linux上第三种方法也会有巨群问题.

Apache虽然并不强调性能, 这并不意味着他们不重视性能. 而是Apache认为在Server端realiable才是第一位的. 但Apache的性能还是不错的.


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/171045.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-26
下一篇2023-03-26

发表评论

登录后才能评论

评论列表(0条)

    保存