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

苏州建站免费模板南涧县城乡建设局网站

苏州建站免费模板,南涧县城乡建设局网站,苏州市建设工程交易网,腾讯云 建网站一、需求 公司内部服务器向外访问腾讯接口:https://qyapi.weixin.qq.com/cgi-bin,不能使用http直接访问。并且不支持域名,还需要设置互联网出口-出向白名单ip。 如何在尽量少改动代码的情况下实现应用的出向访问链接,考虑使用正向…

一、需求

公司内部服务器向外访问腾讯接口:https://qyapi.weixin.qq.com/cgi-bin,不能使用http直接访问。并且不支持域名,还需要设置互联网出口-出向白名单ip。
如何在尽量少改动代码的情况下实现应用的出向访问链接,考虑使用正向代理服务器实现SSL请求的隧道,支持https请求。

二、操作步骤

1. 确认服务器对外ip白名单已添加

先获取域名对应的ip地址:直接ping域名可以获取到qyapi.weixin.qq.com解析地址是117.185.253.167

C:\Users\Lenovo>ping qyapi.weixin.qq.com正在 Ping qyapi.weixin.qq.com [117.185.253.167] 具有 32 字节的数据:
来自 117.185.253.167 的回复: 字节=32 时间=27ms TTL=46

如果服务器支持对外访问,curl可以收到返回值,

curl https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET

服务器不支持,只能使用ip:

curl "https:// 117.185.253.167 /cgi-bin/gettoken?corpid=ID&corpsecret=SECRET" -H "Host:qyapi.weixin.qq.com" -k

能正常返回说明可以通。更简单的直接ping

2. 为nginx添加正向代理

2.1 下载ngx_http_proxy_connect_module模块

https://gitcode.com/gh_mirrors/ng/ngx_http_proxy_connect_module/tree/master
此模块提供了对连接(CONNECT)方法请求的支持。这种方法主要用于通过代理服务器实现SSL请求的隧道。

2.2 nginx安装模块

nginx版本和ngx_http_proxy_connect_module补丁文件的版本相关,按需下载nginx版本
我需要的是proxy_connect_rewrite_102101.patch,直接把proxy_connect_rewrite_102101.patch重命名为proxy_connect.patch

$ wget http://nginx.org/download/nginx-1.23.2.tar.gz
$ tar -xzvf nginx-1.23.2.tar.gz
$ cd nginx-1.23.2/
$ patch -p1 < /home/nginx/ngx_http_proxy_connect_module/patch/proxy_connect.patch
$ ./configure --add-dynamic-module=/home/nginx/ngx_http_proxy_connect_module --modules-path=/home/nginx/modules  --prefix=/home/nginx/nginx --with-http_ssl_module --with-http_realip_module --with-stream --with-stream_ssl_module
$ make && make install
nginx 版本启用重写阶段补丁文件
1.4.x ~ 1.12.x不启用proxy_connect.patch
1.4.x ~ 1.12.x启用proxy_connect_rewrite.patch
1.13.x ~ 1.14.x不启用proxy_connect_1014.patch
1.13.x ~ 1.14.x启用proxy_connect_rewrite_1014.patch
1.15.2启用proxy_connect_rewrite_1015.patch
1.15.4 ~ 1.16.x启用proxy_connect_rewrite_101504.patch
1.17.x ~ 1.18.x启用proxy_connect_rewrite_1018.patch
1.19.x ~ 1.21.0启用proxy_connect_rewrite_1018.patch
1.21.1 ~ 1.22.x启用proxy_connect_rewrite_102101.patch
1.23.x ~ 1.24.0启用proxy_connect_rewrite_102101.patch
1.25.0 ~ 1.25.x启用proxy_connect_rewrite_102101.patch

2.3 nginx配置文件

安装nginx后可以到modules文件下面查看是否生成了ngx_http_proxy_connect_module.so,
nginx.conf 中显式加载模块,注意要在events,http模块之前定义

load_module /path/to/modules/ngx_http_proxy_connect_module.so;

nginx配置文件修改

server {listen                         3128 ssl;# 正向代理使用的 DNS 解析器,这个可以找一个通用版,我是改为dns服务器的地址resolver                       8.8.8.8;# 对于 CONNECT 请求的正向代理proxy_connect;proxy_connect_allow            443;proxy_connect_connect_timeout  10s;proxy_connect_data_timeout     10s;# 非 CONNECT 请求的自定义配置(例如:非 CONNECT 请求的反向代理)location / {proxy_pass http://$host;proxy_set_header Host $host;}
}

如果服务器支持域名访问,到此配置结束,启动nginx验证效果

curl -x 127.0.0.0:3128 https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET

3. 本地服务器安装dns服务

在本地网络或服务器上搭建DNS服务器,实现域名到IP的自定义解析:
BIND9:功能全面,适合复杂需求(如内部域名系统、反向解析)。
dnsmasq:轻量级,适合简单场景(仅需解析少量域名,同时支持DHCP)。
场景简单搭建的是dnsmasq。

3.1 linux安装dnsmasq

需要使用root用户

# CentOS/RHEL
sudo yum install dnsmasq -y# Ubuntu/Debian
sudo apt install dnsmasq -y

3.2 查看安装结果并配置

sudo vim /etc/dnsmasq.conf
应该有默认的文件夹设置,不用改:

conf-dir=/etc/dnsmasq.d/,*.conf

直接到/etc/dnsmasq.d/下创建配置文件test.conf
输入

address=/qyapi.weixin.qq.com/117.185.253.167

3.3 测试配置文件启动服务

dnsmasq --test

没问题启动服务

systemctl start dnsmasq

查看端口是否启动

netstat -nltp|grep 53

配置客户端使用本地DNS

# 临时修改(重启失效)
sudo echo "nameserver [你的Linux服务器IP]" > /etc/resolv.conf# 永久修改(以NetworkManager为例)
sudo nmcli con modify [网卡名] ipv4.dns "[你的Linux服务器IP]"
sudo nmcli con up [网卡名]

验证解析结果

dig qyapi.weixin.qq.com @127.0.0.1

成功后修改nginx配置文件dns服务器地址,然后可以测试

curl  -x 127.0.0.0:3128  https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET

3.4 扩展

启动服务并设置开机自启

sudo systemctl start dnsmasq
sudo systemctl enable dnsmasq

dnsmasq.conf

# 指定本地解析文件路径
addn-hosts=/etc/dnsmasq.d/custom-hosts# 禁用从上游DNS获取解析(仅使用本地配置)
no-resolv
# 或指定上游DNS(如同时需要公共解析)
# server=8.8.8.8

配置客户端使用本地DNS

# 临时修改(重启失效)
sudo echo "nameserver [你的Linux服务器IP]" > /etc/resolv.conf# 永久修改(以NetworkManager为例)
sudo nmcli con modify [网卡名] ipv4.dns "[你的Linux服务器IP]"
sudo nmcli con up [网卡名]

防火墙配置

# CentOS/RHEL
sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload# Ubuntu/Debian
sudo ufw allow 53/udp

常见问题排查
解析失败:

  1. 检查 /etc/dnsmasq.d/custom-hosts 文件格式是否正确。

  2. 查看日志:

journalctl -u dnsmasq --since "5 minutes ago"
  1. 确认防火墙允许UDP 53端口。

  2. 服务无法启动:
    检查配置文件语法:

dnsmasq --test

扩展功能

泛域名解析:
在 custom-hosts 中添加:

183.47.100.66  .weixin.qq.com  # 解析所有子域名

反向解析:
编辑 /etc/dnsmasq.conf,添加:

ptr-record=66.100.47.183.in-addr.arpa qyapi.weixin.qq.com
http://www.dtcms.com/wzjs/618662.html

相关文章:

  • 南京软月网站建设公司gps建站教程视频
  • 织梦网站首页打开慢鲤城网站建设推广服务公司
  • 网站+建设+拖拉+源码+系统简单动画制作
  • 万域网站建设新手怎么开始做微商
  • 正规的咨询行业网站策划免费做图片链接网站
  • wordpress建站视频为知笔记 编辑wordpress
  • wordpress 首页展示百度网站怎么优化排名
  • 网站文章后台写完前台不显示开网站需要准备什么
  • 百度热搜榜第一苏州网站优化建设
  • 做网站导航栏素材图最专业微网站建设价格
  • 乐清建设公司网站响应式视频网站
  • 太仓苏州网站建设建设通app免费版
  • 郑州微信网站公司官网包括什么内容
  • 双栏wordpressseo是什么意思新手怎么做seo
  • 如何用dw做网站怎么做公司销售网站
  • 建设行政主管部门查询网站网站建设进展推进表
  • 大型租车门户网站商业版源码沈阳制作网站
  • 萧山区建设工程质量监督站网站百度成都分公司
  • 有没有做淘宝客网站的关键词app
  • 海南省住房建设厅网站承接婚庆公司网站建设
  • mg电子游戏网站开发一级A做爰片秋欲浓网站
  • 网站开发常见方法行业门户网站方案
  • 网站的留言板怎么做代理ip多少钱一个月
  • 外贸营销型网站制作wordpress积分抽奖
  • 建设信用卡在线海淘网站返现phython 做的网站
  • 网站品牌推广济南百度竞价开户
  • 小学电教检查网站建设资料品牌建设规划制定及实施情况
  • 南京网站关键词优化咨询wordpress上传图片自动重命名
  • 建设网站需要营业执照h5技术网站
  • 百度知道网址阿里巴巴网站优化怎么做