博客列表 >Linux下HTTP服务配置教程

Linux下HTTP服务配置教程

Smile
Smile原创
2021年12月14日 15:52:191042浏览

  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

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议