Ubuntu实战续篇:Apache httpd轻松搭建高效代理服务器
作者:高玉涵
时间: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
搭建一个高效、稳定的代理服务器。然而,由于Windows
与Ubuntu
两大操作系统在配置和管理上存在着显著的差异,许多习惯使用Ubuntu
系统的用户可能遇到了不少挑战。为了满足这部分用户的需求,我们特别推出了本篇实战指南,旨在为大家提供一份详尽、易懂的Ubuntu
系统上Apache httpd
代理服务器的搭建教程。无论您是初学者还是有一定经验的开发者,相信都能从中找到适合自己的学习路径,轻松掌握在Ubuntu
上搭建高效代理服务器的技能。
二、Ubuntu下的Apache配置文件概览
在Ubuntu系统中,Apache2的配置体系独具特色,不同于某些将所有设置集中于单一配置文件的系统,Ubuntu采用了模块化的设计思想。这种设计将不同的配置项分散在多个文件中,并通过apache2.conf
主配置文件中的Include
指令来引用这些分散的配置文件。
具体来说,Ubuntu中的Apache2配置文件和目录结构可以梳理如下:
- 主配置文件:
- 位置:
/etc/apache2/apache2.conf
- 功能:这是Apache的主配置文件,系统启动时会自动读取。它包含了指向其他配置文件的
Include
指令,用于加载模块配置、端口配置、虚拟主机配置等重要设置。
- 模块配置文件:
可用模块配置:
/etc/apache2/mods-available/
目录,存放所有可用的Apache模块配置文件(.load
和.conf
文件)。已启用模块配置:
/etc/apache2/mods-enabled/
目录,存放指向mods-available
目录中文件的符号链接,决定哪些模块被实际启用。
- 端口配置文件:
- 位置:
/etc/apache2/ports.conf
- 功能:包含Apache监听的端口号设置,修改监听端口时需编辑此文件。
- 虚拟主机配置文件:
- 可用虚拟主机配置:
/etc/apache2/sites-available/
目录,存放所有可用的虚拟主机配置文件。 - 已启用虚拟主机配置:
/etc/apache2/sites-enabled/
目录,存放指向sites-available
目录中文件的符号链接,决定哪些虚拟主机被实际启用。
- 其他配置文件:
- 可选配置:
/etc/apache2/conf-available/
和/etc/apache2/conf-enabled/
目录,用于存放其他可选的配置文件及其启用链接。 - 环境变量设置:
/etc/apache2/envvars
文件,包含Apache运行时的环境变量。
- 用户自定义配置文件(非默认主要配置):
- 位置:
/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 7月 11 20:44 proxy.conf -> ../mods-available/proxy.conf
lrwxrwxrwx 1 root root 36 7月 11 20:40 proxy_connect.load -> ../mods-available/proxy_connect.load
lrwxrwxrwx 1 root root 33 7月 11 20:40 proxy_http.load -> ../mods-available/proxy_http.load
lrwxrwxrwx 1 root root 28 7月 11 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系统上成功配置并启动。