背景


  • 公司有保密要求比较高,数据安全要求比较高的企业客户,要求核心业务服务器部允许直接访问互联网,但是因为我们有一些OCR识别以及发票查验等的场景需要连接云端的服务才可以正常使用, 所以这里面就存在安全与易用性的矛盾,之前采取的方式是nginx反向代理云端服务, 在内网修改hosts 进行虚拟DNS解析就可以实现,不需要改程序代码.稳定性比较好,但是客户方要求必须使用正向搭理,由代理服务器负责将服务转发至局域网.为了验证解决方案,简单总结一下正向代理的搭建过程.

搭建过程


  • 本来想使用apache的httpd的tar包进行安装,但是发现编译起来比较麻烦,需要有apr以及apr-tuil等包,需要不停的下载tar进行编译,比较繁琐,所以索性改用docker方式运行.也是对自己docker技能的一个简单自我检查.
docker pull httpd
docker run -d --name httpd httpd
#拉取并且启动容器
docker cp httpd:/usr/local/apache2/conf /root
#将httpd的配置文件拉取出来,在本地进行增加便于修改
#主要是我懒 不想自己去找配置文件了.
cd /root/conf
进入配置文件目录进行参数修改
第一部分
vim /root/conf/httpd.conf
注意打开如下部分的 proxy设置
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_express_module modules/mod_proxy_express.so
# 需要注意的是 不同版本的配置文件可能不一样. 我这边就删除了两项docker镜像里面没有依赖包的配置项目, 但是不影响正常使用.
注意在httpd.conf 的前面增加一个配置项目, 增加上允许读取vhosts的配置项目
Include conf/extra/httpd-vhosts.conf # 这样总体配置文件就算完成了
在根据include 的配置文件进行修改
vim /root/conf/extra/httpd-vhosts.conf
我这边修改成为的内容为:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"
ServerName 10.110.82.173
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
Options FollowSymLinks #正向代理设置
ProxyRequests On
ProxyVia On
<Proxy *>
</Proxy>
</VirtualHost> 注意虚拟站点里面需要增加 ProxyRequests 以及 ProxyVia 然后proxy 增加 * 使之可以传入任意的域名进行访问.
修改完成之后保存文件.
删除之前的httpd 容器 docker rm httpd -f 重新运行容器, 使用如下命令 docker run -d -p 888:80 -p 881:443 -p 9110:9100 -p 9101:9101 -v /root/conf:/usr/local/apache2/conf --name httpd httpd

正向代理验证


  • 找一台没有外网访问权限但是可以连接 docker 容器所在服务器的机器

  • 安装chrome 进行访问百度

  • 增加上代理之后进行处理 效果为:

HTTPD 搭建正向代理 使无网络访问权限的服务器能够访问互联网服务的快捷办法的更多相关文章

  1. 关于苹果手机设置fiddler代理后无网络无法抓包的问题

    1.设置代理后,需要在苹果手机的关于本机中,打开证书信任 这样就可以抓包咯

  2. Dynamics CRM报表无法访问提示“报表服务器无法访问或使用加密密钥。你可能需要将服务器添加到扩展组,或重新导入”

    当我们部署Dynamics CRM的环境的时候如果报表配置的不规范会出现很多问题,尤其是这个问题相对来说更棘手,解决起来非常麻烦. 网上很多教程都说直接到报表配置页删除密钥就可以了,实际上删除的时候会 ...

  3. nginx正向代理访问百度地图API

    正向代理的概念 正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器这个代理服务器呢,他能访问那个我不能访问的网站于是我先连上代 ...

  4. Centos8 Docker+Nginx部署Asp.Net Core Nginx正向代理与反向代理 负载均衡实现无状态更新

    首先了解Nginx 相关介绍(正向代理和反向代理区别) 所谓代理就是一个代表.一个渠道: 此时就涉及到两个角色,一个是被代理角色,一个是目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程称 ...

  5. Nginx教程(7) 正向代理与反向代理【总结】

    1.前言 最近工作中用到反向代理,发现网络代理的玩法还真不少,网络背后有很多需要去学习.而在此之前仅仅使用了过代理软件,曾经为了访问google,使用了代理软件,需要在浏览器中配置代理的地址.我只知道 ...

  6. Nginx正向代理、反向代理、负载均衡及性能优化

    一.Nginx是什么 Nginx是一款高性能的 HTTP 和反向代理服务器,由俄罗斯人Igor Sysoev(伊戈尔·赛索耶夫)为俄罗斯网站Rambler.ru开发的,在Rambler.ru网站平稳的 ...

  7. Nginx教程(7) 正向代理与反向代理【总结】 (转)

    1.前言 最近工作中用到反向代理,发现网络代理的玩法还真不少,网络背后有很多需要去学习.而在此之前仅仅使用了过代理软件,曾经为了访问google,使用了代理软件,需要在浏览器中配置代理的地址.我只知道 ...

  8. 正向代理与反向代理的区别【Nginx读书笔记】

    正向代理的概念 正向代理,也就是传说中的代理,他的工作原理就像一个跳板, 简单的说, 我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 这个代理服务器呢,他能访问那个我不能访问的网站 于是我 ...

  9. 正向代理与反向代理的区别【Nginx读书笔记】(zz)

    正向代理与反向代理的区别[Nginx读书笔记]       正向代理的概念 正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 ...

  10. 代理_正向代理_反向代理_nginx_转

    转自:Nginx 相关介绍(Nginx是什么?能干嘛?)   蔷薇Nina 关于代理 说到代理,首先我们要明确一个概念,所谓代理就是一个代表.一个渠道: 此时就设计到两个角色,一个是被代理角色,一个是 ...

随机推荐

  1. CTPN+CRNN算法端到端实现文字识别的实战开发

    本文分享自华为云社区<CTPN+CRNN 算法端到端实现文字识别>,作者:HWCloudAI. OCR介绍 光学字符识别(英语:Optical Character Recognition, ...

  2. 云图说|初识华为云数据库GaussDB(for openGauss)

    摘要:本文带你了解华为云华为云数据库GaussDB(for openGauss),将AI 技术融入分布式数据库的全生命周期,实现自运维.自管理.自调优.故障自诊断和自愈. 本文分享自华为云社区< ...

  3. 在openGauss上做开发?这个大赛拿出30万寻找开源的你

    摘要:信创"大比武"鲲鹏基础软件开发赛道,面向openGauss设置2个赛题,将推进openGauss人才建设,加快openGauss"产学研用"人才培养. 多 ...

  4. Mybatis 模块拆份带来的 Mapper 扫描问题

    项目中,两个模块中都放了 Mapper,如下所示 @MapperScan(basePackages ={"com.vipsoft.his.mapper","com.vip ...

  5. Android gradle dependency tree change(依赖树变化)监控实现,sdk version 变化一目了然

    @ 目录 前言 基本原理 执行流程 diff 报告 不同分支 merge 过来的 diff 报告 同个分支产生的 merge 报告 同个分支提交的 diff 报告 具体实现原理 我们需要监控怎样的 D ...

  6. Grafana--双Y轴

    grafana版本:6.5.2 背景:同一面板里想展示各实例与集群在一段时间范围内,平均每秒执行命令数,但是由于数值差异太大,曲线图抖动不明显,实例的更近乎于一条直线,所以设置双Y轴,可更直观的展示线 ...

  7. 【JAVA基础】Swagger使用

    Swagger使用 刷新权限 自定标签名称

  8. 一个含不少免费额度和数据下载的IP地址来源查询工具

    大家好,我是TJ君! 如今在国内运营的各种互联网应用都有接入IP来源显示的要求,现在相关API的供应商也很多.今天TJ刚好看到一个不错的,所以马上给大家推荐一下. 这款不错的产品名称为:IPInfo ...

  9. 深度 | 新兴软件研发范式崛起,云计算全面走向 Serverless 化

    11月3日,2022 杭州 · 云栖大会上,阿里云智能总裁张建锋表示,以云为核心的新型计算体系正在形成,软件研发范式正在发生新的变革,Serverless 是其中最重要的趋势之一,阿里云将坚定推进核心 ...

  10. apache-jmeter-5.6.3版本报错:errorlevel=1的解决办法

    一.背景: 今天遇到了apache-jmeter-5.6.3版本,下载解决后,打开bin下的:jmeter.bat报错 二.解决方法:  尝试解决了jmeter.bat的内存占用还是没有解决 最终发现 ...