apache简介
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。企业中常用的web服务,用来提供http://(超文本传输协议)。
Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache是自由软件,所以不断有人来为它开发新 的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。
Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,世界上很多著名的网站 都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、 Windows、Linux系统平台上)以及它的可移植性等方面。
Web服务器(Web Server)
Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求 (request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响 应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP脚本,servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。
apache的基本信息
- 主配置目录:/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/*
apache的安装部署
[root@shareserver ~]# yum install httpd -y ##安装apache软件
[root@shareserver ~]# yum install httpd-manual -y ##安装apache手册
[root@shareserver ~]# systemctl start httpd ##开启服务
[root@shareserver ~]# systemctl enable httpd ##设定服务开机自启
[root@shareserver ~]# firewall-cmd --list-all ##列出火墙信息,查看火墙允许的服务
[root@shareserver ~]# firewall-cmd --permanent --add-service=http ##火墙永久允许http服务
[root@shareserver ~]# firewall-cmd --reload ##重新加载火墙服务
[root@shareserver ~]# netstat -antlupe | grep httpd ##查看http的端口
添加防火墙永久允许的服务也可以通过在web界面可以对防火墙进行设置:
[root@shareserver ~]# firewall-config 打开防火墙web管理工具
配置分为两种runtime和permanent
runtime表示当前运行生效,当前设置的参数,当系统重启之后就会失效
permanent表示永久生效,设置的参数永久生效,但是在完成设置之后,必须重新载入防火墙,
zone表示选择的区域
选择区域之后,选择这个区域的服务,可以添加协议和端口
选择完要添加的服务之后,点击页面左上角的Options-->Reload Firewalld设置就生效了。
编辑测试所用的默认发布文件:
[root@shareserver html]# vim /var/www/html/index.html
<h1>hello westos</h1>
测试:
http://172.25.254.100 ##访问apache发布文件
http://172.25.254.100/manual ##访问apache手册
修改apache的基础信息
(1)修改默认端口:
查看当前允许的httpd端口:
[root@shareserver ~]# semanage port -l | grep http
将apache默认端口改为当前允许的端口,如8080时,进行的配置如下:
[root@shareserver html]# vim /etc/httpd/conf/httpd.conf ##编辑主配置文件
42 Listen 8080 ##将默认的80端口改为另一个允许的httpd端口8080
[root@shareserver html]# firewall-cmd --permanent --add-port=8080/tcp ##防火墙永久开启该端口的服务
[root@shareserver html]# firewall-cmd --reload
[root@shareserver html]# systemctl restart httpd ##重启apache服务
、
测试:
在浏览器中输入:http://172.25.254.100:8080 ###这里的端口已经不是默认的了,需要指定端口为8080
将apache默认端口改为非标准端口,需要进行如下配置:
[root@shareserver ~]# semanage port -a -t http_port_t -p tcp 6666 ##将非标准端口6666添加到当前允许的httpd端口中
[root@shareserver html]# vim /etc/httpd/conf/httpd.conf ##编辑主配置文件
42 Listen 6666 ##将默认的80端口改为另一个允许的httpd端口6666
[root@shareserver ~]# firewall-cmd --permanent --add-port=6666/tcp ##防火墙永久开启该端口的服务
[root@shareserver html]# firewall-cmd --reload
[root@shareserver html]# systemctl restart httpd ##重启apache服务
测试:
在浏览器中输入:http://172.25.254.100:6666 ###指定端口为6666
实验完成后重新将默认端口改为80,以免影响之后的实验。
(2)修改默认发布文件:
默认发布文件就是访问apache时没有指定文件名称时默认访问的文件
这个文件可以指定多个,有访问顺序
root@shareserver html]# vim /var/www/html/westos.html ##在默认发布目录下面重新建立一个发布文件westos.html
<h1>westos's page</h1>
[root@shareserver ~]# vim /etc/httpd/conf/httpd.conf ##修改主配置文件
163 <IfModule dir_module>
164 DirectoryIndex westos.html index.html ##多个默认发布文件,有顺序之分,当westos.html不存在时,访问index.htmll165 </IfModule>
测试:
在浏览器中输入:http://172.25.254.100,显示westos.html发布文件里面的内容
(3修改默认发布目录:
[root@shareserver /]# mkdir /myhtml/web/html -p ##新建一个目录,修改此目录作为apache的默认发布目录
[root@shareserver /]# vim /myhtml/web/html/my.html ##在此目录下面新建一个发布文件my.html
<h1>myhtml's page</h1> ##编辑发布文件的内容
[root@shareserver /]# semanage fcontext -a -t httpd_sys_content_t '/myhtml(/.*)?' ##将该目录及其内容的安全上下文改为apache默认的安全上下文
[root@shareserver /]# restorecon -RvvF /myhtml/ ##刷新,使修改的默认上下文生效
[root@shareserver /]# vim /etc/httpd/conf/httpd.conf ##修改主配置文件
119 #DocumentRoot "/var/www/html" ##注释原默认发布目录
120 DocumentRoot "/myhtml/web/html" ##指定新的默认发布目录
121 <Directory "/myhtml/web/html"> ##对该目录授权
122 Require all granted ##任何人都可以访问该目录
123 </Directory>167 <IfModule dir_module>
168 DirectoryIndex my.html westos.html index.html ##将新建的发布文件my.html添加到默认发布文件里
169 </IfModule>
[root@shareserver /]# systemctl r