教你使用Apache搭建Http
Apache2默认采用的是80端口号,因此直接通过公网ip或域名就能访问。现实中,很多服务器本身就部署了许多其它服务,80端口号往往被占用,因此就需要将Apache2改成其它访问端口。
修改端口,首先需要修改/etc/apache2/ports.conf这个文件:
这里吧80改成其它不冲突的端口号,我这里以1024为例

#Listen 80
Listen 1024
Listen 443

#<VirtualHost *:80>
<VirtualHost *:1024>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
注:这个文件中还有一个DocumentRoot,修改该参数可以调整文件系统的根路径。
修改完成之后,重启apache2:
1
/etc/init.d/apache2 restart
此时,就可以通过访问域名:1024的形式访问到同样内容,例如我的服务器访问url为http://xdxsb.top:1024
设置访问限制
个人服务器很容易遭到别人的攻击,如果有人开好多线程来反复请求下载,这就将导致流量带宽消耗巨大,甚至会让服务器宕机。因此,长期提供下载服务的服务器必须设置访问限制。
配置文件参数详解
访问限制主要涉及到/etc/apache2/apache2.conf这个配置文件,首先来对该文件进行解读。
这个文件内容如下:
This is the main Apache server configuration file. It contains the
configuration directives that give the server its instructions.
See http://httpd.apache.org/docs/2.4/ for detailed information about
the directives and /usr/share/doc/apache2/README.Debian about Debian specific
hints.
Summary of how the Apache 2 configuration works in Debian:
The Apache 2 web server configuration in Debian is quite different to
upstream’s suggested way to configure the web server. This is because Debian’s
default Apache2 installation attempts to make adding and removing modules,
virtual hosts, and extra configuration directives as flexible as possible, in
order to make automating the changes and administering the server as easy as
possible.
It is split into several files forming the configuration hierarchy outlined
below, all located in the /etc/apache2/ directory:
/etc/apache2/
|-- apache2.conf
| `-- ports.conf
|-- mods-enabled
| |-- *.load
| `-- *.conf
|-- conf-enabled
| `-- *.conf
`-- sites-enabled
`-- *.conf
* apache2.conf is the main configuration file (this file). It puts the pieces
together by including all remaining configuration files when starting up the
web server.
* ports.conf is always included from the main configuration file. It is
supposed to determine listening ports for incoming connections which can be
customized anytime.
* Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/
directories contain particular configuration snippets which manage modules,
global configuration fragments, or virtual host configurations,
respectively.
They are activated by symlinking available configuration files from their
respective *-available/ counterparts. These should be managed by using our
helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See
their respective man pages for detailed information.
* The binary is called apache2. Due to the use of environment variables, in
the default configuration, apache2 needs to be started/stopped with
/etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not
work with the default configuration.
Global configuration
ServerRoot: The top of the directory tree under which the server’s
configuration, error, and log files are kept.
NOTE! If you intend to place this on an NFS (or otherwise network)
mounted filesystem then please read the Mutex documentation (available
at URL:http://httpd.apache.org/docs/2.4/mod/core.html#mutex);
you will save yourself a lot of trouble.
Do NOT add a slash at the end of the directory path.
#ServerRoot “/etc/apache2”
The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#Mutex file:${APACHE_LOCK_DIR} default
The directory where shm and other runtime files will be stored.
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile: The file in which the server should record its process
identification number when it starts.
This needs to be set in /etc/apache2/envvars
PidFile ${APACHE_PID_FILE}
Timeout: The number of seconds before receives and sends time out.
Timeout 300
KeepAlive: Whether or not to allow persistent connections (more than
one request per connection). Set to “Off” to deactivate.
KeepAlive On
MaxKeepAliveRequests: The maximum number of requests to allow
during a persistent connection. Set to 0 to allow an unlimited amount.
We recommend you leave this number high, for maximum performance.
MaxKeepAliveRequests 100
KeepAliveTimeout: Number of seconds to wait for the next request from the
same client on the same connection.
KeepAliveTimeout 5
These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups: Log the names of clients or just their IP addresses
e.g., www.apache.org (on) or 204.62.129.132 (off).
The default is off because it’d be overall better for the net if people
had to knowingly turn this feature on, since enabling it means that
each client request will result in AT LEAST one lookup request to the
nameserver.
HostnameLookups Off
ErrorLog: The location of the error log file.
If you do not specify an ErrorLog directive within a
container, error messages relating to that virtual host will be
logged here. If you do define an error logfile for a
container, that host’s errors will be logged there and not here.
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel: Control the severity of messages logged to the error_log.
Available values: trace8, …, trace1, debug, info, notice, warn,
error, crit, alert, emerg.
It is also possible to configure the log level for particular modules, e.g.
“LogLevel info ssl:warn”
LogLevel warn
Include module configuration:
IncludeOptional mods-enabled/.load
IncludeOptional mods-enabled/.conf
Include list of ports to listen on
Include ports.conf
Sets the default security model of the Apache2 HTTPD server. It does
not allow access to the root filesystem outside of /usr/share and /var/www.
The former is used by web applications packaged in Debian,
the latter may be used for local directories served by the web server. If
your system is serving content from a sub-directory in /srv you must allow
access here, or in any related virtual host.
Options FollowSymLinks AllowOverride None Require all denied参数解释:
PidFile:记录服务器启动进程号的文件
Timeout:接收和发送前超时秒数
KeepAlive:是否允许稳固的连接(每个连接有多个请求),设为"Off"则停用
MaxKeepAliveRequests:在稳固连接期间允许的最大请求数,设为0表示无限制接入
KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数
User/Group:运行的用户和组
HostnameLookups:指定记录用户端的名字还是IP地址
例如,本指令为on时记录主机名,如www.apache.org;为off时记录IP地址,204.62.129.132。默认值为off,这要比设为on好得多,因为如果设为on则每个用户端请求都将会至少造成对 nameserver 进行一次查询。
ErrorLog:错误日志文件定位
LogLevel:控制记录在错误日志文件中的日志信息
可选值:debug,info,notice,warn,error,crit,alert,emerg
Directory:在标签对里面可以设置各文件夹属性
Options:控制在特定目录中将使用哪些服务器特性
All:除MultiViews之外的所有特性,这是默认设置
ExecCG:允许使用mod_cgi执行CGI脚本
FollowSymLinks:服务器允许在此目录中使用符号连接,如果此配置位于配置段中,则会被忽略
Includes:允许使用mod_include提供的服务器端包含
IncludesNOEXEC:允许服务器端包含,但禁用"#exec cmd"和"#exec cgi",但仍可以从ScriptAlias目录使用"#include virtual"虚拟CGI脚本
Indexes:如果一个映射到目录的URL被请求,而此目录中又没有DirectoryIndex(例如:index.html),那么服务器会返回由mod_autoindex生成的一个格式化后的目录列表
MultiViews:允许使用mod_negotiation提供内容协商的"多重视图"(MultiViews)
SymLinksIfOwnerMatch:服务器仅在符号连接与其目的目录或文件的拥有者具有相同的uid时才使用它。 如果此配置出现在配置段中,则将被忽略
AllowOverride:确定允许存在于.htaccess文件中的指令类型
语法:AllowOverride All|None|directive-type [directive-type]
如果此指令被设置为None ,那么.htaccess文件将被完全忽略。
directive-type可以是下列各组指令之一:
AuthConfig : 允许使用与认证授权相关的指令
FileInfo : 允许使用控制文档类型的指令、控制文档元数据的指令、mod_rewrite中的指令、mod_actions中的Action指令
Indexes : 允许使用控制目录索引的指令
Limit : 允许使用控制主机访问的指令
Order:控制默认的访问状态与Allow和Deny指令生效的顺序
Deny,Allow : Deny指令在Allow指令之前被评估。默认允许所有访问。任何不匹配Deny指令或者匹配Allow指令的客户都被允许访问
Allow,Deny : Allow指令在Deny指令之前被评估。默认拒绝所有访问。任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问
Mutual-failure : 只有出现在Allow列表并且不出现在Deny列表中的主机才被允许访问。这种顺序与"Order Allow,Deny"具有同样效果
Allow:控制哪些主机可以访问服务器的该区域。可以根据主机名、IP地址、 IP地址范围或其他环境变量中捕获的客户端请求特性进行控制。
语法:Allow from all|host|env=env-variable [host|env=env-variable]
Deny:控制哪些主机被禁止访问服务器的该区域。可以根据主机名、IP地址、 IP地址范围或其他环境变量中捕获的客户端请求特性进行控制。
语法:Deny from all|host|env=env-variable [host|env=env-variable]
Require:访问限制
- all granted:表示允许所有主机访问
- all denied:表示拒绝所有主机访问
- local:表示仅允许本地主机访问
- [not] host <主机名或域名列表>:表示允许或拒绝指定主机或域名访问
- [not] ip <IP地址或网段列表>:表示允许或拒绝指定的IP地址或网段访问
AccessFileName:设置分布式配置文件的名字,默认为.htaccess
如果为某个目录启用了分布式配置文件功能,那么在向客户端返回其中的文档时,服务器将在这个文档所在的各级目录中查找此配置文件
<FilesMatch"^.ht">:拒绝对.ht开头文件的访问,以保护.htaccess文件
LogFormat:定义访问日志的格式
相关文章:
教你使用Apache搭建Http
Apache2默认采用的是80端口号,因此直接通过公网ip或域名就能访问。现实中,很多服务器本身就部署了许多其它服务,80端口号往往被占用,因此就需要将Apache2改成其它访问端口。 修改端口,首先需要修改/etc/apache2/ports…...
ZooKeeper+Kafka+ELK+Filebeat集群搭建实现大批量日志收集和展示
文章目录一、集群环境准备二、搭建 ZooKeeper 集群和配置三、搭建 Kafka 集群对接zk四、搭建 ES 集群和配置五、部署 Logstash 消费 Kafka数据写入至ES六、部署 Filebeat 收集日志七、安装 Kibana 展示日志信息一、集群环境准备 1.1 因为资源原因这里我就暂时先一台机器部署多…...
数据结构初阶 - 总结
-0- 数据结构前言 什么是数据结构 什么是算法 数据结构和算法的重要性-1- 时间复杂度和空间复杂度 👉数据结构 -1- 时间复杂度和空间复杂度 | C 算法效率 时间复杂度大O的渐进表示法eg 空间复杂度 常见复杂度对比OJ 消失的数组 轮转数组-2- 顺序表 与 链表 &am…...
代码随想录算法训练营第四十四天-动态规划6|518. 零钱兑换 II ,377. 组合总和 Ⅳ (遍历顺序决定是排列还是组合)
如果求组合数就是外层for循环遍历物品,内层for遍历背包。 如果求排列数就是外层for遍历背包,内层for循环遍历物品。 求物品可以重复使用时,最好是用一维数组,会比较方便。二维数组不想思考了,二维还是用在01背吧吧。…...
wma格式怎么转换mp3,4种方法超快学
其实我们在任何电子设备上所获取的音频文件都具有自己的格式,每种格式又对应着自己的属性特点。比如wma就是一种音质优于MP3的音频格式,虽然很多小伙伴比较青睐于wma所具有的音质效果,但也不得不去考虑因wma自身兼容性而引起很多播放器不能支…...
【数据结构与算法】判定给定的字符向量是否为回文算法
题目: Qestion: 试写一个算法判定给定的字符向量是否为回文。 回文解释: 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。 主要思路: 因为数据要求不是很严格并且是一个比较简单的…...
考研数二第十七讲 反常积分与反常积分之欧拉-泊松(Euler-Poisson)积分
反常积分 反常积分又叫广义积分,是对普通定积分的推广,指含有无穷上限/下限,或者被积函数含有瑕点的积分,前者称为无穷限广义积分,后者称为瑕积分(又称无界函数的反常积分)。 含有无穷上限/下…...
【论文总结】理解和减轻IoT消息协议的安全风险
理解和减轻IoT消息协议的安全风险介绍概述前置知识威胁模型MQTT IoT通信安全分析未授权的MQTT消息未授权的Will消息未经授权的保留消息MQTT会话管理故障未更新的会话订阅状态未更新的会话生命周期状态未经身份验证的 MQTT 身份客户端id劫持MQTT Topics的授权MQTT Topic不安全的…...
SpringBoot基础入门
一、概述 Spring Boot是一个开源的Java框架,它是基于Spring框架的基础之上创建的。Spring Boot可以帮助开发人员更快地创建Spring应用程序,并以最小的配置要求来运行它们。Spring Boot可以用于构建各种类型的应用程序,包括Web应用程序、RESTful API、批处理作业、消息传递应…...
jar 包与 war 包区别
1、war是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块;jar一般只是包括一些class文件,在声明了Main_class之后是可以用java命令运行的。 2、war包是做好一个web应用后,通常是网站,打成包部署…...
【数据结构:复杂度】时间复杂度
本节重点内容: 算法的复杂度时间复杂度的概念大O的渐进表示法常见时间复杂度计算举例⚡算法的复杂度 算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的&…...
京东pop店铺订单导出
下载安装与运行 下载、安装与运行 语雀 特别提醒 只能导出已登录店铺的订单导出的收件人手机号是虚拟号 功能 主要是方便线下工厂发货的店主 所见即所得的导出自由选择导出项自由排序Excel导出列顺序导出过程中有进度提示,用户可以随时提前中止 什么是所见即所…...
论文阅读:Towards Stable Test-time Adaptation in Dynamic Wild World
今天阅读ICLR 2023 ——Towards Stable Test-time Adaptation in Dynamic Wild World Keywords:Test-time adaptation (TTA); 文章目录Towards Stable Test-time Adaptation in Dynamic Wild WorldProblem:motivation:Contributio…...
2022国赛27:Linux-1时间服务chrony配置
大赛试题内容: 3.利用chrony配置Linux-1为其他Linux主机提供时间同步服务。 解答过程: 安装chrony服务[root@cs1 ~]# yum -y install chrony 配置/etc/chrony.conf文件[root@cs1 ~]# vi /etc/chrony.conf 7行改为 server 10.10.70.101 iburst 23行改为 去掉#号 allow 1…...
Java——二维数组中的查找
题目链接 牛客在线oj题——二维数组中的查找 题目描述 在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二…...
Android 9.0 添加关机铃声功能实现
1.前言 在9.0的系统rom定制化开发中,在原生系统中,关于开机铃声和关机铃声是默认不支持的,系统默认支持开机动画和关机动画等功能,所以关于增加开机铃声和关机 铃声的相关功能,需要自己增加相关的关机铃声功能 2.添加关机铃声功能实现的核心类 frameworks\base\cmds\boo…...
IPv4 和 IPv6 的组成结构和对比
IPv4 和 IPv6 的组成结构和对比IPv4IPv6互联网协议 (IP) 是互联网通信的基础,IP 地址是互联网上每个设备的唯一标识符。目前最常用的 IP 协议是 IPv4,它已经有近 30 年的历史了。然而,IPv4 存在一些问题,例如: 地址空间不足:IPv4 …...
Spring的事务管理
Spring的事务管理Spring的事务管理1、事务的回顾【1】事务的定义【2】事务的ACID原则2、spring事务API介绍【了解】【1】PlatformTransactionManager【1.1】PlatformTransactionManager作用【1.2】PlatformTransactionManager接口【1.3】PlatformTransactionManager实现类【2】…...
MCAL知识点(十六):VADC驱动配置详解(理论基础篇)
目录 1、概述 2、EB配置 2.1、通用界面配置 2.1.1、General 2.1.2、AdcConfigSet_0 2.1.3、AdcGlobinputClass 2.1.4、AdcHwUn...
MySQL--库的操作--校验规则对于数据库的影响--0409
目录 1.库的基础操作 查看数据库 创建数据库 删除数据库 查看建库语句 修改数据库 2.字符集和字符集校验规则 2.1 查看系统默认字符集以及校验规则 2.2 使用特定的字符集创建数据库 2.3 不同校验规则对数据库的影响 2.3.1 大小写验证 2.3.2 排序验证 3.备份和恢复 3.1…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...
