1.
Apache的概念
- Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,是世界使用排名第一的Web服务器软件
- 它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一
- 它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中
- 是一个模块化的服务器,源于NCSAhttpd服务器
- Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷
- 特点是简单、速度快、性能稳定,并可做代理服务器来使用
- 它是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器
2.
关于http传输
- 基于HTTP协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接
- 一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为,统一资源标识符、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容
- 服务器接到请求后,给予相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容
- 其实简单说就是任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用户请求
- 你的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。驻留程序接收到请求,在进行必要的操作后回送所要求的文件
- 在这一过程中,在网络上发送和接收的数据已经被分成一个或多个数据包(packet),每个数据包包括:要传送的数据;控制信息,即告诉网络怎样处理数据包
- TCP/IP决定了每个数据包的格式
1.客户与服务器之间的HTTP连接是一种一次性连接,它限制每次连接只处理一个请求,当服务器返回本次请求的应答后便立即关闭连接,下次请求再重新建立连接
2.HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态
3.是一种面向对象的协议,允许传送任意类型的数据对象
4.它通过数据类型和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送
5.用户在一个HTML文档中定义了一个超文本链后,浏览器将通过TCP/IP协议与指定的服务器建立连接
6.技术上讲是客户在一个特定的TCP端口(端口号一般为80)上打开一个套接字。如果服务器一直在这个周知的端口上倾听连接,则该连接便会建立起来。然后客户通过该连接发送一个包含请求方法的请求块
3.
Apache的基础信息
主配置目录 | /etc/httpd/conf/ |
---|---|
主配置文件 | /etc/httpd/conf/httpd.conf |
子配置目录 | /etc/httpd/conf.d/ |
子配置文件 | /etc/httpd/conf.d/*.conf |
默认发布目录 | /var/www/html |
默认发布文件 | indev.html |
默认端口 | 80 |
默认安全上下文 | httpd_sys_content_t |
程序开启默认用户 | apache |
apache日志 | /etc/httpd/logs/* |
4.
实验环境
-
在虚拟机中挂载好镜像文件:
mount /root/Desktop/rhel-server-7.3-x86_64-dvd.iso /westos/
#将镜像文件挂载在/westos/下 -
并设定永久挂载:
vim /etc/rc.d/rc.local
#将挂载镜像的命令添加在文件中 -
chmod 755 /etc/rc.d/rc.local
#更改文件的权限使之能够每次开机是都可以自动挂载
-
配置本地yum源:
vim /etc/yum.repos.d/westos.repo
-
编辑内容如下图所示:
-
yum clean all
#清除原有的yum源 -
yum repolist
#列出仓库的信息
-
yum install httpd -y
#安装服务httpd -
systemctl start httpd
#开启服务 -
systemctl enable httpd
#使服务生效 -
systemctl status httpd
#查看服务的状态
-
firewall-cmd --list-all
#查看火墙的所有信息 -
firewall-cmd --permanent --add-service=http
#在服务中添加http -
firewall-cmd --reload
#使服务httpd在火墙中生效 -
firewall-cmd --list-all
#再次查看是否添加成功
-
cd /var/www/html
#切换到默认发布目录下 -
vim index.html
#编辑默认发布文件 -
编辑内容为:
hello
-
在另一台主机上进行访问:172.25.254.77
5.
修改默认端口(80)
1.当更改的端口为服务本身存在的端口时,可直接编辑文件对其进行更改
-
semanage port -l | grep http
#查看服务http可用的端口
-
vim /etc/httpd/conf/httpd.conf
#编辑主配置文件 -
编辑内容为:
43 Listen 8080
#更改端口为8080
-
systemctl restart httpd
#重启httpd服务 -
netstat -antlupe | grep httpd
#查看httpd服务的端口是否更改成功 -
firewall-cmd --permanent --add-port=8080/tcp
#在火墙中添加端口信息8080 -
firewall-cmd --reload
#使更改生效 -
getenforce
#查看selinux当前状态,此时状态为Disabled -
vim /etc/sysconfig/selinux
#编辑文件将状态更改为Enforcing -
编辑内容为:
-
reboot
#重启机器
-
getenforce
#查看selinux当前状态,此时状态为Enforcing
2.若要更改的端口并不在服务http中,则要先添加要更改的端口信息
-
semanage port -a -t http_port_t -p tcp 6666
#添加安全上下文为http_po