当前位置:论坛首页 > Linux面板 > Linux面板教程

反向代理(Nginx版本)

发表在 Linux面板2020-2-4 19:52 [复制链接] 18 40446

概念
反向代理:反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。(摘自百度百科)
充当中间服务器.png
优点
1、提高内部服务器的安全
2、加快对内部服务器的访问速度
3、节约了有限的公网ip
使用场景
1、仅有少量的外网ip,但是服务器较多,可以使用反向代理来充分使用服务器资源
2、不想让用户直接访问到自己的后端服务器,用来隔离前后端服务
注意:开启反向代理建议使用空站进行操作,因为开启反向代理后会将原先的站点变成纯静态方式运行,原先的站点如果有动态解析的话会失效。


示例1:直接反向代理
访问http://192.168.0.24 显示的是https://www.bt.cn的内容
反向代理a.png
示例2:开启缓存
设置缓存.png
示例3:开启目录代理(注意,开启目录代理的话必须关闭全局反向代理,就是代理目录是 / 的反向代理,该功能在高级功能中)
http://192.168.0.24/bbs/ -----> https://www.724dpyw.cn/bbs/
访问http://192.168.0.24/bbs/这个url,返回的内容是https://www.724dpyw.cn/bbs/ 这个url下面的内容
反代目录.png


使用道具 举报 只看该作者 回复
发表于 2020-2-4 20:29:22 | 显示全部楼层
学习下

淘宝优惠券 www.jianloua.com  发表于 2021-9-20 15:31
使用道具 举报 回复
发表于 2020-3-14 10:46:51 | 显示全部楼层
原来高级功能是这么用的
使用道具 举报 回复 支持 反对
发表于 2021-2-20 15:37:52 | 显示全部楼层
可是这样配置仍然不生效,大炮哥能帮忙看一下嘛。 1.jpg
这是前端站点的反向代理配置
----------------------------------------------------
是这样的,我先用python项目管理器,在宝塔面板中新建了一个python项目并映射到http://sunny-api.nexio.cn/
python的反向代理(通过python项目管理器创建).jpg

这是python项目的映射站点显示的反向代理,这时候访问http://sunny-api.nexio.cn/all-news-title 得到正常请求
直接访问.jpg
下面是前端页面http://sunny-admin.nexio.cn/站点的设置
开启代理前访问http://sunny-admin.nexio.cn/api/all-news-title
开启代理之前.jpg
↑ 得到的是nginx报的404
如下开启代理后
1.jpg
访问http://sunny-admin.nexio.cn/api/all-news-title
得到flask框架返回的404(也就是说代理指向了5000端口但是没有指向正确的url)
开启代理后.jpg

很疑惑这是为什么,谢谢大哥。


使用道具 举报 回复 支持 反对
发表于 2021-2-20 15:40:35 | 显示全部楼层
我的宝塔版本之前是6.9 但是升级到了7.5.1也一样不行
使用道具 举报 回复 支持 反对
发表于 2021-2-20 15:41:31 | 显示全部楼层
宝塔用户_qyxsre 发表于 2021-2-20 15:37
可是这样配置仍然不生效,大炮哥能帮忙看一下嘛。
这是前端站点的反向代理配置
-------------------------- ...

你的http://127.0.0.1:5000 在本机能访问到吗?
使用道具 举报 回复 支持 反对
发表于 2021-2-20 15:48:54 | 显示全部楼层
大炮运维V587 发表于 2021-2-20 15:41
你的http://127.0.0.1:5000 在本机能访问到吗?

_D8H9T5$DCRHXUS~I%AV1{X.png 是可以访问的
使用道具 举报 回复 支持 反对
发表于 2021-2-20 16:16:27 | 显示全部楼层
大炮运维V587 发表于 2021-2-20 15:41
你的http://127.0.0.1:5000 在本机能访问到吗?

你好,麻烦帮忙看下哈 谢谢
使用道具 举报 回复 支持 反对
发表于 2021-2-20 16:28:26 | 显示全部楼层
宝塔用户_qyxsre 发表于 2021-2-20 16:16
你好,麻烦帮忙看下哈 谢谢

你修改下目标url,带上后面的 /all-xxx
使用道具 举报 回复 支持 反对
发表于 2021-2-20 16:56:23 | 显示全部楼层
大炮运维V587 发表于 2021-2-20 16:28
你修改下目标url,带上后面的 /all-xxx

啊哈 把目标url改成了http://127.0.0.1:5000/all-news-title 通过 http://sunny-admin.nexio.cn/api访问到了/all-news-title的内容。但是,平级的站点下面仍有其他的内容(目前相当于代理了一个子目录)。
----------------------------------我排查出来了,大概算是一个bug,我复现如下。
按大炮哥的建议修改如下
修改带后缀.jpg

此时的配置文件如下
带后缀的配置文件.jpg

此时的访问情况如下图,访问/api 直接指向了:5000/all-news-title,虽然不符合要求但问题渐渐明晰。
访问成功.jpg
---------------------------------------------------
手动修改配置文件如下(这里如果通过 “把目标url”改成127.0.0.1:5000,进行修改的话 proxy_pass 是127.0.0.1:5000 不带最后那个斜杠“/” 使得flask无法识别地址)
手改配置文件.jpg
再去访问
成功访问.jpg
成功通过/api/all-news-title 访问到:5000/all-news-title,那么到此感谢大炮哥耐心解答问题解决。
但是,显然 这个问题的本质是带不带斜杠,我一想,那直接设置目标url为“http://127.0.0.1:5000/” 不就好了,但是!
带后斜杠报错.jpg
宝塔的反向代理面板返回了“发送域名格式错误”,我再次尝试,把发送域名改回原本目标url为“http://127.0.0.1:5000/” 时显示的$host。
带斜杠 修改发送域名.jpg
同样访问成功。
-----------------------------------
那么这应该是宝塔面板前端的一个自动填写input的bug,给ip:port加上“/”时,“发送域名”就自动变成了“ip:port/”,导致格式错误,实际上应该仍然是“$host”。
谢谢大炮哥的耐心解答。
使用道具 举报 回复 支持 反对
发表于 2021-5-8 09:54:15 | 显示全部楼层
宝塔用户_qyxsre 发表于 2021-2-20 16:56
啊哈 把目标url改成了http://127.0.0.1:5000/all-news-title 通过 http://sunny-admin.nexio.cn/api访问 ...

我的版本是7.5.2,代理目录是 /api,
然后我改成url:
  1. http://localhost:8099/
复制代码
域名
  1. localhost
复制代码

如果需要访问
  1. http://域名/api
复制代码

这个是可以的,但是如果要访问下一级,比如
  1. http://域名/api/abc.html
复制代码

这个时候就会出错,然后我改成
  1. http://域名/apiabc.html
复制代码


就可以,查看路由打印,这样也是对的


说明这个版本对于反斜杠处理是有问题的,虽然已经解决了我的问题,但是发送请求的时候,apiabc.html这样连着,看着很奇怪的
使用道具 举报 回复 支持 反对
发表于 2021-8-13 09:26:28 | 显示全部楼层
宝塔用户_qyxsre 发表于 2021-2-20 16:56
啊哈 把目标url改成了http://127.0.0.1:5000/all-news-title 通过 http://sunny-admin.nexio.cn/api访问 ...

这个问题后面已经解决了,是生成配置文件的时候一个bug

使用道具 举报 回复 支持 反对
发表于 2021-8-17 12:03:45 | 显示全部楼层
大大,做完反向代理我的是报错。被镜像的网站是HTTPS 1111111111.png 22222222222.png
使用道具 举报 回复 支持 反对
发表于 2022-11-29 08:16:53 | 显示全部楼层
大炮运维V587 发表于 2021-2-20 16:28
你修改下目标url,带上后面的 /all-xxx

大哥 我这个怎么搞怎么配置wws代理
使用道具 举报 回复 支持 反对
发表于 2023-2-16 14:55:51 | 显示全部楼层
经常遇到反代运行一段时间以后就无法响应的问题,重新加载一下反代的配置或者停用再启用就好了,何解?
使用道具 举报 回复 支持 反对
12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

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