apache做反向代理服务器

2023-10-27

http://yahoon.blog.51cto.com/13184/162922

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://yahoon.blog.51cto.com/13184/162922
apache做反向代理服务器
apache代理分为正向代理和反向代理:
1 正向代理: 客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代理服务器访问外部的web(需要在客户端的浏览器中设置代理服务器)
适用于: ①局域网的代理服务器(一般是网关,相当于squid的一般用法)
②访问某个受限网络的代理服务器,如教育网访问某些国外网站需要找代理
2 反向代理: 客户端能访问外部的web,但是不能访问目标web,目标web所在的网络内一台机器充当目标web的代理,客户端直接访问代理就像访问目标web一样(此代理对客户端透明,即客户端不用做如何设置,并不知道实际访问的只是代理而已,以为就是访问的目标)
适用于: ①idc的某台目标机器只对内开放web,外部的客户端要访问,就让另一台机器做proxy,外部直接访问proxy即相当于访问目标
②idc的目标机器的某个特殊的web服务跑在非正常端口如9000,而防火墙上只对外开放了80,此时可在80上做proxy映射到9000,外部访问80即相当于9000
简单示意图如下
 
本例中
机器192.168.0.114是我们的reverse proxy server
apache/2.0.63运行在其80端口
上面有两个域名的虚拟主机
www.a.org
www.b.org
要实现的效果是:
访问 www.a.org 即相当于访问另一台机器192.168.0.115
访问 www.b.org 即相当于访问本机的9000端口
 
apache的proxy功能由其proxy模块实现.加载模块有两种方式:静态和动态,现分别说明:
一 静态加载
静态加载,在编译apache时候编译进去,编译参数如下:
"./configure" \
"-prefix=/usr/local/apache3" \
"--enable-so" \
"--enable-rewrite" \
"--with-mpm=prefork" \
"--enable-proxy" \ (这个参数即是代理模块启用)
安装完成后查看模块列表
/usr/local/apache3/bin/httpd -l
显示
Compiled in modules:
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_proxy.c
proxy_connect.c
proxy_ftp.c
proxy_http.c
prefork.c
http_core.c
.......
编辑配置文件 httpd.conf
在虚拟主机部分
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
ServerName www.a.org
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://192.168.0.115/
ProxyPassReverse / http://192.168.0.115/
</VirtualHost>
 
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
ServerName www.b.org
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>
 
二 动态加载
动态加载:编译进一个已经装好了的apache中(编译为dso模块)
已经装好的apache在 /usr/local/apache2
进入apache源码的模块目录进行编译
cd httpd-2.0.63/modules/proxy/
/usr/local/apache2/bin/apxs -c -i -a mod_proxy.c proxy_connect.c proxy_http.c proxy_util.c
从输出里面看到apache的modules目录下已经产生了mod_proxy.so,且已经在httpd.conf中激活了
cd /usr/local/apache2/conf/
ls ../modules/ 看到确实有mod_prxoy.so
编辑配置文件
vi httpd.conf
修改如下
加载模块
LoadModule proxy_module modules/mod_proxy.so (这句是编译激活时产生的)
LoadModule proxy_http_module modules/mod_proxy.so (这句是要手动添加的)
虚拟主机的部分加上
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
ServerName www.a.org
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://192.168.0.115/
ProxyPassReverse / http://192.168.0.115/
</VirtualHost>
 
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
ServerName www.b.org
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>
重启apache生效
 
注:
如果不加LoadModule proxy_http_module modules/mod_proxy.so,则浏览器页面打不开,页面显示
Forbidden
You don't have permission to access / on this server.
日志acess_log里面显示
192.168.0.28 - - [03/Jun/2009:16:16:27 +0800] "GET /?sessionId=4293567494722637330&rand=1244014624405&CONTEXT=0&page=com.othe
r.AjaxWhoWhatUpdate&xrand=1244016991554&wwRandId=1244014624405&wwBugId=2341&wwType=View HTTP/1.1" 403 315
或者
192.168.0.28 - - [03/Jun/2009:17:10:32 +0800] "GET / HTTP/1.1" 403 315
即403错误
日志error_log里面显示
[Wed Jun 03 17:08:46 2009] [warn] proxy: No protocol handler was valid for the URL /. If you are using a DSO version of mod_p
roxy, make sure the proxy submodules are included in the configuration using LoadModule.

本文出自 “yahoon的小屋” 博客,请务必保留此出处http://yahoon.blog.51cto.com/13184/162922


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

apache做反向代理服务器 的相关文章

  • Magento:设置刚刚创建的网站的配置值?

    我正在以编程方式创建网站 用户等 问题是 创建网站时 我无法立即设置配置值 Code
  • 类、模块、它们的特征类和方法查找

    我们来开公开课吧Module并向其中添加一个方法 class Module def foo puts phew end end 我可以通过这样做来调用这个方法 Class foo 这是可以理解的 因为类Class is Class 其超类是
  • 烧瓶 - 404 未找到

    我是烧瓶开发的新手 这是我在烧瓶中的第一个程序 但它向我显示了这个错误 在服务器上找不到请求的 URL 如果您输入了网址 请手动检查拼写并重试 这是我的代码 from flask import Flask app Flask name ap
  • MVC4更新部分视图

    我正在开发一个简单的 MVC 应用程序 我有主视图 部分视图和控制器 这是我的主要视图 model partitalViewTest Models Qset div class transbox style height 1 Html Pa
  • Node.js Async/Await 模块导出 [重复]

    这个问题在这里已经有答案了 我对模块创建有点陌生 想知道 module exports 并等待异步函数 例如 mongo connect 函数 完成并导出结果 在模块中使用 async await 正确定义了变量 但是当尝试通过要求模块来记
  • Capistrano 和 XSendFile 配置

    我正在尝试使用 Apache 2 2 Passenger 4 0 59 和 XSendFile 0 12 配置 Rails 生产服务器 应用程序通过 Capistrano 部署 部署的应用程序生成 可能很大 PDF Rails root t
  • 使用 SERVER_NAME 时出现 Flask 404

    在我的 Flask 配置中 我将 SERVER NAME 设置为 app example com 之类的域 我这样做是因为我需要使用url for with external网址 如果未设置 SERVER NAME Flask 会认为服务器
  • 在脚本标签内工作的角度表达式

    如何在脚本标签内使用角度表达式 我对此很陌生并且需要帮助 这是我的 java 脚本代码的示例
  • Chrome:网络元素自动移动

    我正在开发一个网络项目 在过去的两周里 我正在进行学期考试 所以我要休息一下 现在 既然他们已经结束了 我又继续我的工作了 但我发现我的一些Web 元素 如按钮 span 在 Chrome 上移动了一些像素 在 IE 和 Mozilla 上
  • 无法更改 Xampp 中的 Apache 端口号

    我刚刚下载了Xampp服务器xampp win32 1 8 2 0 VC9 zip http www apachefriends org en xampp windows html 641文件 Windows 并尝试启动 apache 服务
  • .htaccess 在动态文件夹名称中加载索引

    我在 htaccess 加载动态文件夹名称中的索引时遇到问题 这是我的目录结构 root products gt this is constant folder name 而不是使用 GET 获取产品 url root products i
  • 为现有模块创建 d.ts 文件

    我正在尝试创建一个d ts文件为React 静态容器 https github com reactjs react static container图书馆 NPM 中安装的库如下所示 var React require react var
  • 从子目录文件夹中删除尾部斜杠 Apache 1.3.42 DirectorySlash Off .htaccess

    我正在尝试从 Apache 1 3 42 中的子目录文件夹中删除尾部斜杠 但是命令DirectorySlash Off当我尝试将规则添加到我的 Apache 版本时 不支持 htaccess file 目前我的链接行为如下 www exam
  • 如何在MAMP中设置环境变量?

    如何在 MAMP 版本 3 3 中设置环境变量 我可以在我的 PHP 应用程序中使用它 我已经更新了 Applications MAMP Library bin envvars and envvars std file并添加以下行 Lice
  • 通过 AJP 将 REMOTE_USER 转发到 tomcat(例如用于 shibboleth)

    今天我刚刚遇到了以下问题 1 我将apache配置为基本身份验证 需要有效用户 这有效 2 我进一步配置 apache 将某些路径 在我的例子中为 idp 的请求转发到 tomcat servlet shibboleth IDP 结果是 s
  • 使用代理时,React 应用程序正在不同位置查找静态文件

    我用过npx create react app my app创建一个反应应用程序 我用过的npm run build构建应用程序并使用它进行部署serve s build 我正在使用代理服务器来公开我的应用程序 我的 httpd 配置如下所
  • 如何在apache 2.4.6上安装apxs模块

    我刚刚用过apt get update我的 apache 已更新为2 4 6 我想安装 apxs 来编译模块 但收到此错误 The following packages have unmet dependencies apache2 pre
  • 为什么将模块级代码放入函数中然后调用该函数在Python中速度更快?

    在亚历克斯 马尔泰利的回应中使 Python 脚本面向对象 https stackoverflow com questions 1813117 making a python script object oriented 他提到在 Pyth
  • Python模块可以访问英语词典,包括单词的定义[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 python 模块 它可以帮助我从英语词典中获取单词的定义 当然有enchant 这可以帮助我检查该单词是否存在于英语中
  • DBus 是我要找的吗?

    我需要一个Linux上的IPC系统 我的要求是 面向数据包 消息 能够处理点对点和一对多通信 没有层次结构 没有服务器和客户端 如果一个端点崩溃 必须通知其他端点 现有 Linux 发行版的良好支持 Apache 存在 绑定 用于创建动态页

随机推荐

  • 国际版阿里云/腾讯云CDN装备运用教程:加快网站拜访速度

    阿里云CDN装备运用教程 加快网站拜访速度 本文旨在为读者供给一个关于阿里云CDN的简要教程 咱们将介绍阿里云CDN的基本概念 资源加快过程 同步资源设置以及与阿里云OSS目标存储的结合 期望经过这篇教程 读者能够更好地了解和利用阿里云CD
  • 感知机

    统计学习方法 此书中 将感知机模型讲解十分清楚 并且推导了损失函数设计原理 随机梯度下降方法求解参数 详细解释了对偶问题求解方法及模型的收敛性 笔者再次学习该模型后 将自己的理解融入本文中 从感知机模型 损失函数设定 计算策略 算法流程这4
  • vue create is a Vue CLI 3 only command and you are using Vue CLI 2.9.6. You may want to run the

    这是应为vue的版本存在更新 需要先卸载vue cli2 然后重新安装vue cli 3 1 卸载vue cli2 npm uninstall vue cli g 或 yarn global remove vue cli 2 安装vue c
  • TCP报文段首部格式介绍

    1 TCP报文段首部格式tu 2 头部各个字段介绍 1 源端口和目的端口 源端口和目的端口字段各占 2 字节 端口是运输层与应用层的服务接口 运输层的复用和分用功能都要通过端口才能实现 2 序号字段 序号字段占 4 字节 要明确的是 TCP
  • WebService报错javax.xml.ws.soap.SOAPFaultException: javax.xml.ws.WebFault.messageName()

    原文地址 http blog csdn net woshixuye article details 14312579 一 发现问题 JAX WS规范是一组XML web services的JAVA API JAXWS RI是其的一个包 用j
  • 面试-大数据-场景题-sql

    1 求5min内浏览次数达到100的用户 LAG和LEAD函数 转载自 有如下场景 某公司网站每日访问量达到10亿级别的访问量 每次访问记录一条数据 数据包含如下字段 用户ID 访问时间 毫秒级 访问页面 要求使用hive求出所有在5分钟内
  • 卷积神经网络的三个特性

    转载 elecfans com emb fpga 20171116580425 2 html 局部感知 形象地说 就是模仿你的眼睛 想想看 你在看东西的时候 目光是聚焦在一个相对很小的局部的吧 严格一些说 普通的多层感知器中 隐层节点会全连
  • 关于C#模拟LED

    如下图 不管是用什么控件 或者是richTextBox 或者是TextBox 等等 我想应该都可以做得出下面这种效果来 但是 本人研究了快半个月了 可以说也没有找到什么很好的头绪 所以 干脆就粘贴在我的博客中了 希望看到的朋友给我个意见或者
  • c语言在输入字符串时输入空格的方式

    1 最容易的 将一个字符串分为一个一个字符输入 char s 100 int i 0 while scanf c s i s i n i s i 0 遇到换行停止输入 并且将换行替换为 0 printf s n s 但是如果在这段程序前还有
  • 每日一题:最大和上升子序列

    最大和上升子序列 题目 Daimayuan Online Judge 动态规划 和最长上升子序列类似 状态划分 以第i个数结尾的上升子序列的倒数第二个数可能是第一个数 第二个数 第i 1个数 从第一个数开始枚举 以它为结尾 首先f i a
  • bboss 流批一体化框架 与 数据采集 ETL

    数据采集 ETL 与 流批一体化框架 特性 高效 稳定 快速 安全 bboss 是一个基于开源协议 Apache License 发布的开源项目 主要由以下三部分构成 Elasticsearch Highlevel Java Restcli
  • feign调用使用Apache Http遇到问题汇总

    feign调用使用Apache Http目前已知会造成三个问题 1 RequestMapping必须显式指定调用方式 method RequestMethod POST 否则默认会使用get请求 这会造成之前一些没有显式指定调用方式的方法报
  • linux下quartus出现ModelSim executable not found和Unable to checkout a license. Make sure...... 错误

    一定要把Tools gt Options gt EDA Tool Options设置到bin下YOUR PATH altera 13 1 modelsim ase bin 注意是modelsim ase不是modelsim ae 而且有bi
  • C++内存分析工具

    C 内存分析工具 背景 内存泄漏在c 中是一个常见的问题 有一个好用的内存分析工具就是很有必要的 下面来介绍两个简单好用的内存分析工具 Valgrind和Sanitizer Valgrind valgrind是一种非侵入式的内存检测工具 在
  • TTS

    FastSpeech 基于 Transformer 的前馈网络 用于并行生成 TTS 梅尔谱图 FastSpeech 模型与自回归 Transformer TTS 相比 梅尔谱图生成速度加快了 270 倍 端到端语音合成速度加快了 38 倍
  • 【电商专享】聚划算活动海量商品一键报名,省时省力!

    电商专享 聚划算活动海量商品一键秒参与 省时省力 本机器人支持自动登录淘宝账号 输入密码并智能通过验证 将根据表格内容自动填写商品信息完成聚划算活动报名 并支持多款商品上传
  • 又是沙雕的一天-------关于错误关掉任务管理器之后出现的开机黑屏的解决

    沙雕经过 肝了一下午的实验 然后脑子十分不清醒的我 看着自己电脑上N多的窗口 默默的任务栏 gt 右键 gt 任务管理器 gt 任务管理器 gt 结束任务 然后华丽丽的让电脑黑屏了 想起社团大佬的教诲 默默的强制关机 好使 接着登陆界面出现
  • C++11:std::move和std::forward

    标准库函数 std move 既然编译器只对右值引用才能调用转移构造函数和转移赋值函数 而所有的命名对象都只能是左值引用 如果已知一个命名对象不再被使用而想对他调用转移构造函数和转移赋值函数 也就是把一个左值引用当做右值引用来使用 怎么做呢
  • 异步通信起始位正确检测的VHDL实现

    异步通信起始位正确检测的VHDL实现
  • apache做反向代理服务器

    http yahoon blog 51cto com 13184 162922 原创作品 允许转载 转载时请务必以超链接形式标明文章 原始出处 作者信息和本声明 否则将追究法律责任 http yahoon blog 51cto com 13