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

发布于:2024-07-15 ⋅ 阅读:(57) ⋅ 点赞:(0)

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搭建一个高效、稳定的代理服务器。然而,由于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系统上成功配置并启动。


网站公告

今日签到

点亮在社区的每一天
去签到