欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux下HTTP服务配置教程

程序员文章站 2022-04-21 11:16:10
...

  HTTP SERVER

  进程名:httpd

  俗称:apache

  httpd的功能特性

  路经别名:alias

  用户认证:authentication

  虚拟主机:virtual host

  反向代理:负载均衡

  用户站点:访问控制

  默认网关接口--CGI:Comman Gateway Interface

  安装httpd服务

  查看当前主机是否安装有httpd

  rpm -q httpd

  当前没有则安装

  yum -y install httpd

  查看httpd配置文件

  rpm -ql httpd

  #1.服务脚本

  /etc/rc.d/init.d/httpd

  #2.服务配置脚本

  /etc/sysconf/httpd

  #3.运行目录

  /etc/httpd

  #4.主配置文件

  /etc/httpd/httpd.conf

  #5.扩展配置

  /etc/httpd/conf.d/*.conf

  #6.默认文档根目录(可修改)

  /var/www/html

  #7.CGI目录

  /var/www/cgi-vin/

  配置文件详解

  面向三种区域的配置

  全局配置 主机配置:用于仅提供一个站点 虚拟主机:用于提供多个站点

  主机和虚拟主机不能同时存在

  格式:指令 + 值

  配置指令一般不区分字符大小写,但一般开头为大写,值有可能区分大小写,有些指令可以重复出现

  常用配置指令介绍

  1)监听套接字

  #此指令可以出现多次,用于监听多个不同的套接字

  Listen 80

  Listen 172.16.36.207:8080

  例:查看第二个8080端口是否起作用

  #1.检测语法

  httpd -t

  #2.重新加载配置文件

  service httpd reload

  #3.查看端口是否被监听

  ss -tnl

  #4.浏览器测试

  172.16.36.207:8080

  2)持久连接

  #1.开关

  KeepAlive On / Off

  #2.超时断开

  KeepAliveTimeOut 15

  #3.限制最大请求数,超过断开

  MaxKeepAliveRequest 100

  例:设置超时时间为5秒

  #1.用telnet连接网站

  telnet 172.16.36.207 80

  #2.获取资源

  GET /test.html http/1.1

  Host:xiaoc

  3.响应状态

  connnection 连接状态不是马上关闭,还可以发送GET请求

  5秒后自动关闭连接

  3)MPM(multipath processing module)–多道处理模块

  并不是指一个模块,而是对一种特性的称谓

  类型

  (1)prefork : 多个进程,每个进程对应一个请求(1对一)

  (2)worker : 多个进程,每个进程有多个线程,每个线程对应一个请求(多对多)

  (3)event : 单线程响应多个请求,一般只适合做测试使用

  查看可使用模块

  httpd -l

  httpd服务默认启动的为prefork,修改服务配置脚本/etc/sysconfig/httpd,将HTTPD注释取消即可

  #1.取消注释

  HTTPD=/usr/sbin/httpder

  #2.重新启动服务

  service httpd restart

  #3.查看服务进程,已经是httpder

  ps -eFH | tail -5

  模块内控制指令

  Module 模块格式

  指令 值

  指令值 MODULE_NAMEprefork.cStartServers8默认启动工作进程数MinSpareServers5最少空闲进程数MaxSpareServers20最大空闲进程数ServerLimit256最大活动进程数MaxClients256并发请求最大数MaxRequestsPerChild4000每个子进程在生命周期内所能服务的请求最大数

  MODULE_NAME|worker||

  StartServers | 4|默认启动的进程数

  MaxClients |300|最大请求并发

  MinSpareThreads |25|最小空闲线程数

  MaxSpareThreads |75|最大空闲线程数

  ThreadsPerChild |25|每个子进程可生成的线程数

  MaxRequestsPerChild |0|每个子进程在生命周期内所能服务请求最大数,0表示不限定

  4)DSO(Dynamic Shared Object)

  Apache HTTP Server是一个模块化程序,管理员可以通过选择一组模块来选择要包含在服务器中的功能。模块将被编译为与主httpd 二进制文件分开存在的动态共享对象(DSO)。

  用法格式:

  LoadModule MODULE_NAME /path/to/module

  重载配置文件就能生效

  如果使用相对路径,则对于ServerRoot所定义的位置而言

  列出已经装载的所有DSO模块

  httpd -M

  5)站点根目录

  #默认值

  DocumentRoot "/var/www/html"

  设置该站点网页访问属性

  Options Indexes FollowSymLinks

  AllowOverride None

  Order allow,deny

  Allow from allOptions Indexes缺少指定的默认页面时,允许将目录中的所有文件已列表形式返回给用户:危险:慎用FollowsymLinks允许跟随符号链接所指向的买手游原始文件None所有都不启用All所有的都启用ExecCGI允许使用mod_cgi模块执行CGI脚本Includes允许使用mod_include模块实现服务器端包含(SSI)IncludesNOEXEC允许包含但不允许执行脚本MultiViews允许使用mod_negotiation实现内容协商SymLinksIfOwnerMatch在链接

  7)基于主机的访问控制

  Options

  AllowOverride

  None 不禁用下面

  order 次序,写在后面的为默认

  allow,deny: 没有允许的都拒绝

  deny,allow:没有拒绝的都允许

  Allow from

  Deny from

  8)定义默认的主页面

  DirectoryIndex index.html index.html.var

  9)用户目录

  允许每个用户都能创建个人站点

  #默认为禁止状态

  UserDir disabled

  #取消注释开启

  UserDir public_html

  例:创建test用户,创建其个人站点

  useradd test

  su - test

  mkdir public_html

  cd public_html

  vim index.html

  #其他人如test2能够访问我的网站

  setfacl -m u:test2:x /home/test

  #打开浏览器访问test个人站点

  172.16.36.207/~test

  10)配置日志功能

  #配置日志显示格式

  LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined

  #配置日志文件

  CustomLog logs/access_log combinedOptions %h远程主机名%l远程登录名%u认证时远程用户名%t收到请求的时间%r请求报文的起始行%>s响应状态码%b响应报文的长度,单位为字节%{referer}i指定请求报文首部的内容%{User_Agent}i用户代理,上一次跳转到本次页面的位置,“-”表示直接访问

  11)路经别名

  访问server_ip/icons时,其页面来自于/var/www/icons

  Alias /icons/ "/var/www/icons/"Options Indexes MultiViews FollowSymLinks

  AllowOverride None

  Order allow,deny

  Allow from all

  设定默认字符集

  AddDefaultCharset UTF-8