关于linux下的Apache详解

  • Post author:
  • Post category:linux




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.

实验环境

  1. 在虚拟机中挂载好镜像文件:

    mount /root/Desktop/rhel-server-7.3-x86_64-dvd.iso /westos/

    #将镜像文件挂载在/westos/下

  2. 并设定永久挂载:

    vim /etc/rc.d/rc.local

    #将挂载镜像的命令添加在文件中


  3. chmod 755 /etc/rc.d/rc.local

    #更改文件的权限使之能够每次开机是都可以自动挂载

    在这里插入图片描述

  4. 配置本地yum源:

    vim /etc/yum.repos.d/westos.repo

  5. 编辑内容如下图所示:

    在这里插入图片描述


  6. yum clean all

    #清除原有的yum源


  7. yum repolist

    #列出仓库的信息

    在这里插入图片描述


  8. yum install httpd -y

    #安装服务httpd


  9. systemctl start httpd

    #开启服务


  10. systemctl enable httpd

    #使服务生效


  11. systemctl status httpd

    #查看服务的状态

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述


  12. firewall-cmd --list-all

    #查看火墙的所有信息


  13. firewall-cmd --permanent --add-service=http

    #在服务中添加http


  14. firewall-cmd --reload

    #使服务httpd在火墙中生效


  15. firewall-cmd --list-all

    #再次查看是否添加成功

在这里插入图片描述


  1. cd /var/www/html

    #切换到默认发布目录下

  2. vim index.html

    #编辑默认发布文件
  3. 编辑内容为:

    hello
  4. 在另一台主机上进行访问: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



版权声明:本文为qq_45594312原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。