当前位置: 首页 > news >正文

Ubuntu实战续篇:Apache httpd轻松搭建高效代理服务器

Ubuntu实战续篇:Apache httpd轻松搭建高效代理服务器

      • 一、前言
      • 二、Ubuntu下的Apache配置文件概览
      • 三、配置并启用 Apache 代理服务

作者:高玉涵
时间:2024.7.11 21:06
博客:blog.csdn.net/cg_i
环境:Ubuntu 22.04.4 LTS、Apache/2.4.52 (Ubuntu)

机器比人更能干,大部分人终将无所事事。

一、前言

本篇是[《Windows11上Apache httpd实战:轻松搭建高效代理服务器》](Windows11上Apache httpd实战:轻松搭建高效代理服务器-CSDN博客)的姊妹篇。在之前的篇章中,我详细介绍了如何在Windows 11系统上利用Apache httpd搭建一个高效、稳定的代理服务器。然而,由于WindowsUbuntu两大操作系统在配置和管理上存在着显著的差异,许多习惯使用Ubuntu系统的用户可能遇到了不少挑战。为了满足这部分用户的需求,我们特别推出了本篇实战指南,旨在为大家提供一份详尽、易懂的Ubuntu系统上Apache httpd代理服务器的搭建教程。无论您是初学者还是有一定经验的开发者,相信都能从中找到适合自己的学习路径,轻松掌握在Ubuntu上搭建高效代理服务器的技能。

二、Ubuntu下的Apache配置文件概览

在Ubuntu系统中,Apache2的配置体系独具特色,不同于某些将所有设置集中于单一配置文件的系统,Ubuntu采用了模块化的设计思想。这种设计将不同的配置项分散在多个文件中,并通过apache2.conf主配置文件中的Include指令来引用这些分散的配置文件。

具体来说,Ubuntu中的Apache2配置文件和目录结构可以梳理如下:

  1. 主配置文件:
  • 位置:/etc/apache2/apache2.conf
  • 功能:这是Apache的主配置文件,系统启动时会自动读取。它包含了指向其他配置文件的Include指令,用于加载模块配置、端口配置、虚拟主机配置等重要设置。
  1. 模块配置文件:
  • 可用模块配置:/etc/apache2/mods-available/目录,存放所有可用的Apache模块配置文件(.load.conf文件)。

  • 已启用模块配置:/etc/apache2/mods-enabled/目录,存放指向mods-available目录中文件的符号链接,决定哪些模块被实际启用。

  1. 端口配置文件:
  • 位置:/etc/apache2/ports.conf
  • 功能:包含Apache监听的端口号设置,修改监听端口时需编辑此文件。
  1. 虚拟主机配置文件:
  • 可用虚拟主机配置:/etc/apache2/sites-available/目录,存放所有可用的虚拟主机配置文件。
  • 已启用虚拟主机配置:/etc/apache2/sites-enabled/目录,存放指向sites-available目录中文件的符号链接,决定哪些虚拟主机被实际启用。
  1. 其他配置文件:
  • 可选配置:/etc/apache2/conf-available//etc/apache2/conf-enabled/目录,用于存放其他可选的配置文件及其启用链接。
  • 环境变量设置:/etc/apache2/envvars文件,包含Apache运行时的环境变量。
  1. 用户自定义配置文件(非默认主要配置):
  • 位置:/etc/apache2/httpd.conf
  • 说明:在某些情况下,用户可能在此文件中添加自定义配置。但在Ubuntu的Apache2默认安装中,此文件可能为空,因为所有主要配置都已分散到其他文件中。

注意事项

  • 在Ubuntu的Apache2中,httpd.conf并非主要配置文件,且默认情况下可能为空。因此,在Ubuntu中配置Apache时,应重点关注apache2.conf文件以及通过Include指令引用的其他配置文件。

三、配置并启用 Apache 代理服务

1. 启用代理模块

  • 导航至模块启用目录:cd /etc/apache2/mods-enabled
  • 创建必要的符号链接以启用代理模块:
sudo ln -s ../mods-available/proxy.load  
sudo ln -s ../mods-available/proxy_connect.load  
sudo ln -s ../mods-available/proxy_http.load  
sudo ln -s ../mods-available/proxy.conf

执行后,使用 ls -al 命令查看链接情况,应类似于以下输出:

gao@NAS:/etc/apache2/mods-enabled$ ls -al pr*  
lrwxrwxrwx 1 root root 28  711 20:44 proxy.conf -> ../mods-available/proxy.conf  
lrwxrwxrwx 1 root root 36  711 20:40 proxy_connect.load -> ../mods-available/proxy_connect.load  
lrwxrwxrwx 1 root root 33  711 20:40 proxy_http.load -> ../mods-available/proxy_http.load  
lrwxrwxrwx 1 root root 28  711 20:40 proxy.load -> ../mods-available/proxy.load
  • 举例:proxy.load文件内容

    LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
    

2. 修改 proxy.conf 配置文件

使用文本编辑器(如 vi)编辑 proxy.conf 文件:

gao@NAS:/etc/apache2/mods-enabled$ sudo vi proxy.conf

修改内容如下,确保取消注释并适当配置代理设置:

<IfModule mod_proxy.c>  # 如果想将 Apache 用作正向代理。  # 注意:请务必在 <Proxy *> 块中限制访问。  # 开放代理服务器对您的网络和整个互联网都是危险的。  #  # 如果只想将 Apache 用作某些 Web 应用程序服务器前的反向代理/网关,  # 则不需要 'ProxyRequests On'。  ProxyRequests On  <Proxy *>  Require all granted  </Proxy>  
</IfModule>

3. 配置监听端口

  • 导航至 Apache 配置文件目录:cd /etc/apache2
  • 编辑 ports.conf 文件以添加或修改监听端口:
gao@NAS:/etc/apache2$ sudo vi ports.conf

修改内容如下,添加新的监听端口(例如 8756):

# 如果只是更改端口或在此处添加更多端口,则可能还需要更改  
# /etc/apache2/sites-enabled/000-default.conf 中的 VirtualHost 语句。  Listen 80  
Listen 8756  <IfModule ssl_module>  Listen 443  
</IfModule>  <IfModule mod_gnutls.c>  Listen 443  
</IfModule>

4. 启动 Apache 服务

使用以下命令启动 Apache 服务:

sudo systemctl start apache2

确保 Apache 服务已成功启动,并且代理服务正在监听配置的端口。

gao@NAS:~$ netstat -an|grep '8756'
tcp6       0      0 :::8756                 :::*                    LISTEN     

至此,Apache httpd代理服务器已在Ubuntu系统上成功配置并启动。

相关文章:

Ubuntu实战续篇:Apache httpd轻松搭建高效代理服务器

Ubuntu实战续篇&#xff1a;Apache httpd轻松搭建高效代理服务器 一、前言二、Ubuntu下的Apache配置文件概览三、配置并启用 Apache 代理服务 作者&#xff1a;高玉涵 时间&#xff1a;2024.7.11 21:06 博客&#xff1a;blog.csdn.net/cg_i 环境&#xff1a;Ubuntu 22.04.4 LTS…...

Linux 程序卡死的特殊处理

一、前言 Linux环境。 我们在日常编写的程序中&#xff0c;可能会出现一些细节问题&#xff0c;导致程序卡死&#xff0c;即程序没法正常运行&#xff0c;界面卡住&#xff0c;也不会闪退... 当这种问题出现在客户现场&#xff0c;那就是大问题了。。。 当我们暂时还无法排…...

(C++字符串02) 反转字符串中的单词

151、反转字符串中的单词 先将字符串的里的多余空格去掉&#xff0c;时间复杂度:O(n)&#xff0c;再将字符串整体反转&#xff0c;时间复杂度:O(n)&#xff0c;最后反转每一个单词&#xff0c;时间复杂度:O(n)&#xff1b; class Solution { public:string reverseWords(stri…...

一致性Hash问题及解决方案

Hash算法的应用场景 请求的负载均衡 Nginx的ip_hash策略可以在客户端ip不发生变化的情况下&#xff0c;将其发出的请求始终路由到同一个目标服务器上&#xff0c;实现会话粘滞&#xff0c;避免处理session共享问题。 如果没有ip_hash策略&#xff0c;可以通过维护一张映射表的…...

【接口设计】如何设计统一 RESTful 风格的数据接口

如何设计统一 RESTful 风格的数据接口 1.版本控制1.1 通过 URL1.2 通过自定义请求头1.3 通过 Accept 标头 2.过滤信息3.确定 HTTP 的方法4.确定 HTTP 的返回状态5.定义统一返回的格式 近年来&#xff0c;随着移动互联网的发展&#xff0c;各种类型的客户端层出不穷。如果不统一…...

【备战秋招】——算法题目训练和总结day3

【备战秋招】——算法题目训练和总结day3&#x1f60e; 前言&#x1f64c;BC149简写单词题解思路分析代码分享&#xff1a; dd爱框框题解思路分析代码分享&#xff1a; 除2&#xff01;题解思路分析代码分享&#xff1a; 总结撒花&#x1f49e; &#x1f60e;博客昵称&#xff…...

Git 操作总结

1. 安装、Git 环境配置 1.1 安装 Git 官方版本可以在 Git 官方网站下载&#xff1a;打开 https://git-scm.com/download/win&#xff0c;选择相应版本即可。 Git 安装完成后&#xff0c;可以在开始菜单中看到 Git 的三个启动图标&#xff08;Git Bash、Git CMD、Git GUI&…...

若依 ruoyi-vue SpringBoot highlight-textarea 输入框敏感词关键词高亮标红(二)

参考文章&#xff0c;非常感谢大佬的分享 实现可高亮的输入框 — HighlightTextarea GitHub:highlight-textarea 可看作者上一篇文章 若依 ruoyi-vue SpringBoot聊天敏感词过滤sensitive-word&#xff08;一&#xff09; 效果图 审核时&#xff0c;输入框高亮敏感词&#xff…...

33 IRF配置思路

IRF配置思路网络括谱图 主 Ten-GigabitEthernet 1/0/49 Ten-GigabitEthernet 1/0/50 Ten-GigabitEthernet 1/0/51 备 Ten-GigabitEthernet 2/0/49 Ten-GigabitEthernet 2/0/50 Ten-GigabitEthernet 2/0/51 思路 主 1 利用console线进入设备的命令行页面去更改…...

Dify中的RAG和知识库

一.RAG 基本架构 当用户提问 “美国总统是谁&#xff1f;” 时&#xff0c;系统并不是将问题直接交给大模型来回答&#xff0c;而是先将用户问题在知识库中进行向量搜索&#xff0c;通过语义相似度匹配的方式查询到相关的内容&#xff08;拜登是美国现任第46届总统…&#xff0…...

vue3 + i18n 中英文切换

第一步&#xff1a;安装vue-i18n npm install vue-i18n 第二步&#xff1a;配置语言包及js文件 目录如下&#xff1a; 英文语言包 en.js // lang/en.js - 英文语言包 export default {menu: { 库房管理: Warehouse Management,入库检测: Incoming Inspection, 设…...

one-hot-zhu案例

# 导入用于对象保存与加载的joblib # from sklearn.externals import joblib import joblib # 导入keras中的词汇映射器Tokenizer from keras.preprocessing.text import Tokenizer def one_hot_01(): # 1 准备语料 vocabs # vocabs {“周杰伦”, “陈奕迅”, “王力宏”, “…...

数据库课设---酒店管理系统(MySQL、VBNet)

目录 一. 知识技术 二. 需求分析 2.1 功能需求 2.2 数据需求 三. 数据流图与数据字典 3.1 数据流图 3.1.1 业务流图 3.1.2 数据流图 3.1.3 关系图 3.2 数据字典 四. 数据库设计 4.1 概念模型设计 4.2 逻辑模型设计 4.3 数据库实现 …...

NLP入门——前馈词袋分类模型的搭建、训练与预测

模型的搭建 线性层 >>> import torch >>> from torch import nn >>> class DBG(nn.Module): ... def forward(self,x): ... print(x.size()) ... return x ... >>> tmod nn.Sequential(nn.Linear(3,4),DB…...

GD32F303RET6读取SGM58031电压值

1、SGM58031芯片详解 &#xff08;1&#xff09;SGM58031是一款低功耗&#xff0c;16位精度&#xff0c;delta-sigma (ΔΣ)模数转换器(ADC)。它从3V到5.5V供电。 &#xff08;2&#xff09;SGM58031包含一个片上参考和振荡器。它有一个I2C兼容接口&#xff0c;可以选择四个I2…...

Pandas实战指南:any()函数深度解析与高效应用

Pandas实战指南&#xff1a;any()函数深度解析与高效应用 引言 在数据分析和处理过程中&#xff0c;经常需要快速检查数据集中是否存在满足特定条件的元素。Pandas库中的any()函数正是这样一个强大的工具&#xff0c;它可以帮助我们沿着指定的轴检查是否至少有一个元素满足某…...

ClickHouse中PRIMARY KEY和ORDER BY关键字的关系

在ClickHouse中&#xff0c;PRIMARY KEY和ORDER BY关键字在表的创建过程中扮演着重要的角色&#xff0c;它们共同决定了数据在物理存储上的排序方式&#xff0c;这对查询性能有着直接的影响。理解它们之间的关系对于设计高效的ClickHouse表结构至关重要。 ORDER BY ORDER BY定…...

android 图片轮播

在Android中&#xff0c;实现图片轮播&#xff08;也称为图片滑动或图片轮转&#xff09;通常涉及到使用ViewPager、RecyclerView配合PagerAdapter、RecyclerView.Adapter或者第三方库如Glide、Picasso来处理图片加载&#xff0c;以及一个定时器&#xff08;如Handler、Timer、…...

进度条提示-在python程序中使用避免我误以为挂掉了

使用库tqdm 你还可以手写一点&#xff0c;反正只要是输出点什么东西都可以&#xff1b; Demo from chatgpt import time from tqdm import tqdm# 示例函数&#xff0c;模拟长时间运行的任务 def long_running_task():total_steps 100for step in tqdm(range(total_steps), …...

【案例】python集成OCR识别工具调研

目录 一、前言二、Tesseract_OCR2.1、安装过程2.2、python代码使用三、PaddleOCR3.1、安装过程3.2、python代码使用四、EasyOCR五、ddddOCR六、CnOCR七、总结一、前言 因项目需要OCR识别能力,且要支持私有化部署。本文将对比市场一些开源的OCR识别工具,从中选择适合项目需要…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...