HTTP服务安装与配置

HTTP服务初识

  • http请求流程

    1. 建立、处理连接
    2. 接受请求
    3. 处理请求
    4. 访问资源
    5. 构建响应报文
    6. 发送响应报文
    7. 记录日志
  • 提供http服务的软件

    • 静态资源web程序
      • httpd(apache)
      • nginx
      • lighttpd
    • 动态资源web程序
      • IIS
      • tomcat、jboss、jetty (轻量级)
      • weblogic、webshpere (企业级)
  • apache httpd的特点

    1. 高度模块化
    2. DSO动态共享对象
    3. MPM多路访问模块
      • prefork:多进程模型,每个进程响应一个请求。一个主进程(监听套接字),负责生成n个子进程,子进程为工作进程,没有用户请求,也会生成空闲进程,等待新的请求,最大不超过1024个进程
      • worker:多线程模型(多进程生成,一个进程生成多个线程),一个线程响应一个请求
      • event:事件驱动模型,多个进程,一个进程响应多个请求
  • 查看当前所使用的MPM模块(默认为prefork)
    ps -aux | grep http
    image-20191028155311771

  • httpd -M #查看所有加载的模块
    image-20191028154218576

  • httpd 2.2修改所使用的MPM模式
    image-20191028151455484
    image-20191028155513043
    image-20191028155243936
    image-20191028155311771

  • httpd 2.4 修改配置文件/etc/httpd/conf.modules.d/00-mpm.conf 加载指定的MPM模块

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so #加载prefork多进程模式
LoadModule mpm_worker_module modules/mod_mpm_worker.so	#加载work多线程模式
LoadModule mpm_event_module modules/mod_mpm_event.so #加载event事件驱动模式
  • 其他相关知识
    • URI: Universal Resource Identifier 统一资源标志符 ,由三部分组成:访问资源的命名机制,存放资源的主机名,资源自身的名称
    • URL:Universal Resource Locator 统一资源定位符 ,由三部分组成:第一部分是协议(或称为服务方式);第二部分是存有该资源的主机IP地址(有时也包括端口号);第三部分是主机资源的具体路径
    • PV:page view(一次页面的访问) 即页面访问量,每打开一次页面PV计数+1,刷新页面也是。包括全站PV,首站PV等
    • UV:user view (多少用户访问过,跟页面数量多无关,表现为用户活跃度,一台电脑终端为一个访客)
    • AC:Active connection 活动连接数,当前在使用的活动的连接数
    • IV:是IP访问数指独立IP访问数,一个独立的IP在一个计算时段内访问网站计算为1次IP访问数。在同一个计算时段内不管这个IP访问多少次均计算为1次。计算时段有以1天为一个计算时段,也有以1个小时为一个计算时段。
    • qps:每秒查询数 并发/响应
    • 并发:多个客户机同时请求服务器资源,服务器对多个请求交替进行响应
    • 并行:多个客户机同时请求服务器资源,服务器同时对多个请求进行响应
    • 进程:是程序的运行实体,进行资源分配的基本单位,拥有独立的资源,进程之间相互独立一个进程可以包含多个线程
    • 线程:程序执行的最小单位,线程间共享进程的资源,线程间通信更方便

HTTP服务安装与初始化配置

环境:
http2.2 服务端:Centos6.10 192.168.10.110
windows客户端:windows 10 10.10.86.68
Linux客户端:Centos6.10 192.168.10.111

  1. 安装httpd(需要关闭防火墙、selinux)
    image-20191028142644038
  2. 备份配置文件/etc/httpd/conf/httpd.conf
    image-20191028143053888
  3. 默认配置文件如下
ServerTokens OS  #服务器标识
ServerRoot "/etc/httpd" #服务器根,其他配置文件的相对目录
PidFile run/httpd.pid 
Timeout 60 #响应超时时长(秒)
KeepAlive Off #是否保持长连接
MaxKeepAliveRequests 100 #长连接最大请求次数
KeepAliveTimeout 15 #同一用户同一连接的长连接超时时长(秒)

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

<IfModule worker.c>
StartServers         4
MaxClients         300
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>
#Listen 127.0.0.1:80 #监听的ip和端口,可以为多个
#Listen [::1]:80 #使用ipv6时需要将ip地址括起来
Listen 80 #监听端口

#LoadModule为加载的模块
LoadModule auth_basic_module modules/mod_auth_basic.so 
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
...
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so

Include conf.d/*.conf
 
User apache  #提供服务的用户
Group apache #提供服务的用户组

ServerAdmin root@localhost #错误发送邮箱
UseCanonicalName Off 

DocumentRoot "/var/www/html" #网站根目录

<Directory /> #指定根的一组配置
    Options FollowSymLinks
    AllowOverride None 
</Directory>

<Directory "/var/www/html"> #/var/www/html该目录的一组配置
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny #访问控制,先检查allow后检查deny,后面的规则会覆盖前面规则
#    Order Mutual-failure  #只有出现在allow中且未出现在deny中的允许访问
#    Order deny,allow  #先检查deny
    Allow from all #设定允许的范围,all允许所有
#    Deny from all #设定拒绝的范围,all拒绝所有
</Directory>


DirectoryIndex index.html index.html.var #网站首页名

AccessFileName .htaccess


<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>

TypesConfig /etc/mime.types #MIME类型配置文件
DefaultType text/plain #默认MIME内容类型
<IfModule mod_mime_magic.c>
#   MIMEMagicFile /usr/share/magic.mime
    MIMEMagicFile conf/magic
</IfModule>
HostnameLookups Off
ErrorLog logs/error_log
LogLevel warn	#日志级别
               #emerg  紧急(系统无法使用)
               #alert    必须立即采取措施
               #crit      致命情况
               #error    错误情况
               #warn    警告情况
               #notice  一般重要情况
               #info     普通信息
             	#debug   调试信息
#LogFormat定义日志格式
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

CustomLog logs/access_log combined	#设置日志文件名和格式
ServerSignature On	
Alias /icons/ "/var/www/icons/" #Alias命名的别名

<Directory "/var/www/icons">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

AddDefaultCharset UTF-8 #默认字符集
...
  1. 修改配置如下
    image-20191028155732617
    image-20191028155851644
    image-20191028160131827
    image-20191028160550278
    image-20191028160752010
  2. 分别在/var/www/html和/var/www/html/sub下创建主页
    image-20191028160920301
    image-20191028161125118
    image-20191028161214481
    image-20191028161258492
  3. 重启服务
    image-20191028161430153

  • image-20191028161510852
  • 也可以不重启,只重载配置
    image-20191028161552319
  1. windows客户端测试
    image-20191028161655687
    image-20191028161717286
  2. linux客户端curl命令测试
    image-20191028162250367
    image-20191028162333010
posted @ 2019-10-28 16:56  MirL  阅读(2437)  评论(0编辑  收藏  举报