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

Apache httpd-2.4安装并配置转发

目录

  • 一、写在前面
  • 二、下载Apache
  • 三、编译安装依赖库
    • 3.1 编译安装apr
    • 3.2 编译安装apr-util
    • 3.3 编译安装pcre
  • 四、编译安装及启动Apache
    • 4.1 编译安装Apache
    • 4.2 启动Apache
  • 五、配置Apache
    • 5.1 备份 httpd.conf
    • 5.2 启用代理模块
    • 5.3 修改监听端口
    • 5.4 配置转发规则
  • 六、常用指令
    • 6.1 启动Apache指令:
    • 6.2 查看启动情况
    • 6.3 重启Apache
  • 七、写在后面

一、写在前面

(由于考虑到公司业务和代码安全性问题,所有内容已脱敏)

下载方式为 手动下载和 wget 下载。

Linux下安装路径以本人习惯为准,可根据需求自行更改。

参考文献
Apache安装编译遇到APR的问题

二、下载Apache

以下为 wget 下载教程,也可手动访问 wget 后链接手动下载并上传服务器。

从https://httpd.apache.org/download.cgi下载Apache,本文使用的是2.4.58版本。

wget https://dlcdn.apache.org/httpd/httpd-2.4.58.tar.gz

同时还需要下载依赖库:

wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz  
wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz  
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip

将四个压缩包移动到服务器同一目录/tmp/apache2.4.58-install,将Apache中所有文件复制到/apps/apache2.4.58-install中

mkdir /apps/apache2.4.58-install/
cd /apps/apache2.4.58-install/
cp /tmp/apache2.4.58-install/* /apps/apache2.4.58-install/ # 拷贝Apache和依赖库
ls # 查看拷贝结果

三、编译安装依赖库

apache2.4 版本后需要三个依赖: aprapr-utilpcre ,所有进行优先编译安装。

3.1 编译安装apr

cd /apps/apache2.4.58-install/
tar -zxf apr-1.4.5.tar.gz # 解压 apr
cd apr-1.4.5
./configure --prefix=/apps/apr
make && make install

3.2 编译安装apr-util

cd /apps/apache2.4.58-install/
tar -zxf apr-util-1.3.12.tar.gz # 解压 apr-util
cd apr-util-1.3.12
./configure --prefix=/apps/apr-util --with-apr=/apps/apr
make && make install

3.3 编译安装pcre

cd /apps/apache2.4.58-install/
unzip -o pcre-8.10.zip # 解压 pcre
cd pcre-8.10  
./configure --prefix=/apps/pcre  
make && make install

四、编译安装及启动Apache

4.1 编译安装Apache

解压安装包并进入目录:

cd /apps/apache2.4.58-install/
tar -xzvf httpd-2.4.58.tar.gz
cd httpd-2.4.58

执行configure脚本:

./configure --prefix=/apps/apache2.4.58 --with-apr=/apps/apr --with-apr-util=/apps/apr-util --with-pcre=/apps/pcre

如果找不到 pcre-config ,报错如下:

checking for pcre-config... pcre-config
configure: error: Did not find working script at pcre-config

就具体到 pcre-config 路径执行:

./configure --prefix=/apps/apache2.4.58 --with-apr=/apps/apr --with-apr-util=/apps/apr-util --with-pcre=/apps/pcre/bin/pcre-config

然后编译并安装:

make && make install 

4.2 启动Apache

启动Apache指令:

如果有配置文件,则可以修改完配置文件再进行启动

/apps/apache2.4.58/bin/apachectl start

五、配置Apache

5.1 备份 httpd.conf

第一次修改 httpd.conf 可以先备份 httpd.conf 文件

cp /apps/apache2.4.58/conf/httpd.conf /apps/apache2.4.58/conf/httpd.conf.copy

5.2 启用代理模块

在httpd主配置文件中,取消以下两个模块的注释:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# 编辑配置文件
vim /apps/apache2.4.58/conf/httpd.conf

即将:

#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_http_module modules/mod_proxy_http.so

改为:(也可以在对应位置添加以下模块)

# 代理模块 需要启动 mod_proxy 和 mod_proxy_http
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

5.3 修改监听端口

默认监听80端口,可以通过修改httpd主配置文件中的Listen指令修改监听端口:

# 本文以修改 8080 为例
Listen 8080

5.4 配置转发规则

将访问8080的端口访问转发到7080上面来

在httpd主配置文件中添加以下内容:

<VirtualHost *:8080>ProxyPreserveHost OnProxyPass /  http://xx.xx.xx.xx:7080/ProxyPassReverse /  http://xx.xx.xx.xx:7080/
</VirtualHost>

其中xx.xx.xx.xx是被转发的目标地址。

如果此时 Apache 已经启动,需要重启 Apache 才能让配置生效。
启动指令参考本文 6.1
重启指令参考本文 6.3

六、常用指令

6.1 启动Apache指令:

如果有配置文件,则可以修改完配置文件再进行启动

/apps/apache2.4.58/bin/apachectl start

6.2 查看启动情况

方法一:列出所有正在运行的与"httpd"相关的进程

ps aux | grep httpd

如果上述命令没有输出任何结果,或者没有显示与"httpd"相关的进程,则表示Apache没有成功启动。

方法二:列出所有正在运行的与"httpd"相关的进程

# 这里的 8080 需要改为你监听的端口 
netstat -tuln | grep 8080

如果Apache正在监听端口80(或其他HTTP端口),则命令的输出中应该会显示类似于以下内容:

tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN  

这表明Apache已成功启动并正在监听端口80,以接受HTTP请求。

6.3 重启Apache

执行以下命令重启Apache,重启可以让配置文件生效:

/apps/apache2.4.58/bin/apachectl restart

七、写在后面

欢迎关注,会经常记录一些工作中遇到的问题。

欢迎随时留言讨论,与君共勉,知无不答!

http://www.lryc.cn/news/248385.html

相关文章:

  • 【Cisco Packet Tracer】DHCP/FTP/WEB/DNS实验
  • 模糊C均值聚类(Fuzzy C-means clustering,FCM)的基本概念,详细流程以及广泛应用!
  • chapter10-homework-Java
  • 前端如何中断请求 ( axios、原生 ajax、fetch)
  • CSS实现一些小功能
  • Ubuntu安装nfs服务步骤
  • android开发:子线程更新UI界面
  • P9242 [蓝桥杯 2023 省 B] 接龙数列(dp+最长接龙序列+分类)
  • 网络运维与网络安全 学习笔记2023.11.29
  • Java实现通过经纬度求两个任意地点在球面上的距离
  • vscode使用插件KoroFileHeader添加注释
  • NSAttributedString设置折行方式NSLineBreakByTruncatingTail,计算高度出错,高度返回异常。
  • YOLOv8改进 | 2023 | DWRSeg扩张式残差助力小目标检测 (附修改后的C2f+Bottleneck)
  • ssm+vue的物资物流系统的设计与实现(有报告)。Javaee项目,ssm vue前后端分离项目。
  • 纵行科技获评“汽车物流行业优秀技术装备供应商”
  • Chrome和chromedriver版本不匹配导致的UI自动化测试无法运行的问题
  • [go 面试] 深入理解进程、线程和协程的概念及区别
  • 人工智能即将彻底改变你使用计算机的方式
  • 工艺系统所管理数字化实践
  • VsCode学习
  • Javaweb之Vue组件库Element案例的详细解析
  • Bert-VITS2本地部署遇到的错误
  • 【Ambari】HDFS基于Ambari的常规运维
  • WIFI模块(esp-01s)获取网络时间与天气信息
  • 03、K-means聚类实现步骤与基于K-means聚类的图像压缩(2)
  • Condition 源码解析
  • acwing算法基础之数学知识--求组合数进阶版
  • 基础算法:大数除以除以13
  • 软件版本区分
  • Redis高可用之主从复制及哨兵模式