吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1211|回复: 9
收起左侧

[求助] Nginx正向代{过}{滤}理设置问题

[复制链接]
bigcan 发表于 2022-4-13 15:21
要求这样,内网的用户以http访问内网中某个安装有nginx的服务器IP,所有请求转到外网某个https的网站(用户没有权限访问外网,服务器也只能访问该外网)


注意的是内网访问是http,外网网站是强制https的,我自己按网上的教程试了几个方法,都不行,请教各位大佬

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
gancaoxin + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

单曲循环lee 发表于 2022-4-13 15:52
本帖最后由 单曲循环lee 于 2022-4-13 15:58 编辑

按我的理解,这是反代,而且http请求怎么能拿到https的内容呢,你可以把http请求301到https上面,https上面反代外网的地址就行了,用户访问的时候直接访问内网的Nginx服务器地址就行,参考https://segmentfault.com/a/1190000038358908
xyz349925756 发表于 2022-4-13 16:09
JuncoJet 发表于 2022-4-13 16:59
ghtt1991 发表于 2022-4-13 18:11
这个只能用反向代{过}{滤}理吧?如果不行可以考虑用frp端口映射试试。
头像被屏蔽
xiadongming 发表于 2022-4-13 18:24
提示: 作者被禁止或删除 内容自动屏蔽
gzhshan 发表于 2022-4-13 19:27
本帖最后由 gzhshan 于 2022-4-13 19:30 编辑

看错了,这种应该做个跳转就可以
 楼主| bigcan 发表于 2022-4-13 20:36
单曲循环lee 发表于 2022-4-13 15:52
按我的理解,这是反代,而且http请求怎么能拿到https的内容呢,你可以把http请求301到https上面,https上面 ...

在内网里,所有主机只能访问代{过}{滤}理服务器的IP,内网主机是不能访问外网的IP,所以跳转没有意义

刚才试了用iptables的NAT实现,基本上是实现了

[Shell] 纯文本查看 复制代码
iptables -t nat -A PREROUTING -d {interal_ip} -p tcp --dport 443 -j DNAT --to-destination {public_ip}:443;
iptables -t nat -A POSTROUTING -d {public_ip} -p tcp --dport 443 -j SNAT --to-source {interal_ip};


单曲循环lee 发表于 2022-4-13 20:49
bigcan 发表于 2022-4-13 20:36
在内网里,所有主机只能访问代{过}{滤}理服务器的IP,内网主机是不能访问外网的IP,所以跳转没有意义

...

我觉得你没理解我说的,你其他主机访问该网站的时候是直接访问服务器的地址并不是外网的地址,网站的流量也是从服务器转发过来的,这种情况我是做过的,只是没有反代过https协议,不知道配置需要添加点什么
 楼主| bigcan 发表于 2022-4-13 21:09
1、先感谢哥的回复,下面是对正反的理解,由于对数据方向的不同理解,所以有时有些偏差,实现上名词不太重要

正向代{过}{滤}理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代{过}{滤}理服务器),为了从目标服务器取得内容,客户端向代{过}{滤}理服务器发送一个请求并指定目标,然后代{过}{滤}理服务器向目标服务器转交请求并将获得的内容返回给客户端。
反向代{过}{滤}理(reverse proxy):是指以代{过}{滤}理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代{过}{滤}理服务器对外就表现为一个反向代{过}{滤}理服务器。

2、要用nginx,由http转到https实现,你提醒了我,细想一下这个nginx应该是无法实现,自己有点想过头了,可能因为以前一直用nginx做反向与负载均衡,有点相当然了

如果是https到https,nginx用下面的设置应该是可以的,明天有空我再试试:

[Shell] 纯文本查看 复制代码
server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name ***.com;
    ssl_certificate ***.pem;
    ssl_certificate_key ***.pem;

    location / {
        proxy_pass [url]https://127.0.0.1:8080[/url]$request_uri;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 15:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表