百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

Linux下HTTP服务配置教程 linux中http的配置文件

yuyutoo 2024-10-15 16:59 14 浏览 0 评论

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.浏览器测试
http://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:www.xiaoc.com
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/httpd.worker
#2.重新启动服务
service httpd restart
#3.查看服务进程,已经是httpd.worker
ps -eFH | tail -5

模块内控制指令

Module 模块格式

指令 值

指令
MODULE_NAMEprefork.c
StartServers8默认启动工作进程数
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 all
Options
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个人站点
http://172.16.36.207/~test

10)配置日志功能

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

11)路经别名

访问http://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

相关推荐

.NET 奇葩问题调试经历之3——使用了grpc通讯类库后,内存一直增长......

...

全局和隐式 using 指令详解(全局命令)

1.什么是全局和隐式using?在.NET6及更高版本中,Microsoft引入了...

请停止微服务,做好单体的模块化才是王道:Spring Modulith介绍

1、介绍模块化单体是一种架构风格,代码是根据模块的概念构成的。对于许多组织而言,模块化单体可能是一个很好的选择。它有助于保持一定程度的独立性,这有助于我们在需要的时候轻松过渡到微服务架构。Spri...

ASP.NET程序集引用之痛:版本冲突、依赖地狱等解析与实战

我是一位多年后端经验的工程师,其中前几年用ASP.NET...

.NET AOT 详解(.net 6 aot)

简介AOT(Ahead-Of-TimeCompilation)是一种将代码直接编译为机器码的技术,与传统的...

一款基于Yii2开发的免费商城系统(一款基于yii2开发的免费商城系统是什么)

哈喽,我是老鱼,一名致力于在技术道路上的终身学习者、实践者、分享者!...

asar归档解包(游戏arc文件解包)

要学习Electron逆向,首先要有一个Electron开发的程序的发布的包,这里就以其官方的electron-quick-start作为例子来进行一下逆向的过程。...

在PyCharm 中免费集成Amazon CodeWhisperer

CodeWhisperer是Amazon发布的一款免费的AI编程辅助小工具,可在你的集成开发环境(IDE)中生成实时单行或全函数代码建议,帮助你快速构建软件。简单来说,AmazonCodeWhi...

2014年最优秀JavaScript编辑器大盘点

1.WebstormWebStorm是一种轻量级的、功能强大的IDE,为Node.js复杂的客户端开发和服务器端开发提供完美的解决方案。WebStorm的智能代码编辑器支持JavaScript,...

基于springboot、tio、oauth2.0前端vuede 超轻量级聊天软件分享

项目简介:基于JS的超轻量级聊天软件。前端:vue、iview、electron实现的PC桌面版聊天程序,主要适用于私有云项目内部聊天,企业内部管理通讯等功能,主要通讯协议websocket。支持...

JetBrains Toolbox推出全新产品订阅授权模式

捷克知名软件开发公司JetBrains最为人所熟知的产品是Java编程语言开发撰写时所用的集成开发环境IntelliJIDEA,相信很多开发者都有所了解。而近期自2015年11月2日起,JetBr...

idea最新激活jetbrains-agent.jar包,亲测有效

这里分享一个2019.3.3版本的jetbrains-agent.jar,亲测有效,在网上找了很多都不能使用,终于找到一个可以使用的了,这里分享一下具体激活步骤,此方法适用于Jebrains家所有产品...

CountDownTimer的理解(countdowntomars)

CountDownTimer是android开发常用的计时类,按照注释中的说明使用方法如下:kotlin:object:CountDownTimer(30000,1000){...

反射为什么性能会很慢?(反射时为什么会越来越长)

1.背景前段时间维护一个5、6年前的项目,项目总是在某些功能使用上不尽人意,性能上总是差一些,仔细过了一下代码发现使用了不少封装好的工具类,工具类里面用了好多的反射,反射会影响到执行效率吗?盲猜了一...

btrace 开源!基于 Systrace 高性能 Trace 工具

介绍btrace(又名RheaTrace)是抖音基础技术团队自研的一款高性能AndroidTrace工具,它基于Systrace实现,并针对Systrace不足之处加以改进,核心改进...

取消回复欢迎 发表评论: