nginx反向代理内网访问(nginx反向代理内网访问是什么)
大家好!今天让创意岭的小编来大家介绍下关于nginx反向代理内网访问的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
ChatGPT国内免费在线使用,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
本文目录:
一、nginx反向代理带路径访问问题
这个主要是要做一个反向代理,具体配置如下:
#upstream的配置upstream server_A {
server 192.168.0.55:8080;
}
upstream server_B {
192.168.0.206:8080;
}
#主机192.168.0.219的配置
server {
listen 80 default_server;
server_name XX.com;
#server中的其它配置
#...
#如下值反向代理配置
if ($request_uri ~* "^/+$") {
proxy_pass http://server_A;
break;
}
#其他的反向代理配置,通过uri的正则进行匹配
# if ($request_uri ~* "regex") {
# proxy_pass http://server_B;
# break;
#}
}
#对应的server_A,server_B的机器的配置需要增加相应的路由规则。
#在server_A机器上增加路由规则。
location / {
rewrite "^/+bingo-szwf-sso" /path/of/php break;
#...其他配置。
}
二、nginx反向代理proxy_pass绝对路径和相对路径
当访问 http://127.0.0.1/proxy/test/test.txt 时,nginx匹配到/proxy路径,把请求转发给192.168.137.181:8080服务,实际请求路径为
http://10.0.0.1:8080/test/test.txt ,nginx会去掉匹配的“/proxy”。
当访问 http://127.0.0.1/proxy/test/test.txt 时,nginx匹配到/proxy路径,把请求转发给 192.168.137.181:8080 服务,实际请求代理服务器的路径为
http://192.168.137.181:8080/proxy/test/test.txt , 此时nginx会把匹配的“/proxy”也代理给代理服务器。
当访问 http://127.0.0.1/proxy/test/test.txt 时,nginx匹配到/proxy路径,把请求转发给192.168.137.181:8080服务,实际请求代理服务器的路径为
http://10.0.0.1:8080/static01/test/test.txt 。
实际上2、3是一种情况,即加了“/”就会去掉匹配前缀。这就引出了下一个问题。
我们使用nginx的很多时候都需要去掉前缀。前缀只是为了让nginx用来区分转发到哪个服务器,不是实际URL的一部分。例如我们需要代理访问 http://10.0.0.1:8080/test/test.txt ,如果不去掉前缀,nginx代理访问的就是 http://192.168.137.181:8080/proxy/test/test.txt ,那么这时候就需要改变代理服务器原来写好的url,这是不合理的。
一个种方案是上面提到的proxy_pass后面加根路径“/”。另一种方案是使用正则重写url。例如:
这里的
就是路径重写,其中:
三、nginx反向代理数据传输能提高数据响应么?
您好,是的,Nginx反向代理可以提高数据响应。Nginx反向代理是一种分布式的服务器架构,它可以将客户端的请求转发到多台服务器上,从而提高数据传输的效率。Nginx反向代理可以将客户端的请求分发到多台服务器上,从而提高数据传输的效率。Nginx反向代理还可以提供负载均衡,可以将客户端的请求分发到多台服务器上,从而提高数据传输的效率。此外,Nginx反向代理还可以提供安全性,可以将客户端的请求转发到多台服务器上,从而提高数据传输的安全性。总之,Nginx反向代理可以提高数据响应,提高数据传输的效率,提供负载均衡,以及提供安全性。
四、转载:反向代理服务器nginx-proxy-manager
什么是 Nginx Proxy Manager ?
Nginx Proxy Manager 是用于管理 Nginx 代理主机的 Docker 容器,具有简单、强大的界面。它使您可以轻松地转发到您在家里或其他地方运行的网站,包括免费的 SSL,而无需对 Nginx 或 Letsencrypt 了解太多。
通过 phpMyAdmin 在 MariaDB 10 中新建用户 npm ,创建同名的库 npm 并授予所有权限。
在注册表中搜索 nginx-proxy-manager ,选择第一个 jc21/nginx-proxy-manager,版本选择 latest。
在 docker 文件夹中,创建一个新文件夹,并将其命名为 npm,再建 2 个子目录,分别命名为 data 和 letsencrypt
端口
端口不冲突就行,不确定的话可以用命令查一下
在浏览器中输入 http://群晖IP:2081 就能看到主界面
默认的账号: admin@example.com ,密码:changeme
登录后可以编辑用户信息
之后是密码
进入主菜单的 SSL Certificates
Add SSL Certificate 有两种方式,一种是在线申请,另一种是添加已有证书
在线申请和我们在『 免费的泛域名https证书自动续期 』一文中介绍的非常类似,需要选择 DNS 解析服务提供商,以及填写 token 等参数
老苏因为已经配置了 Certbot 并实现了自动续期,所以只需要导入现有证书就可以了,Name 老苏用了域名,这样比较容易识别
上传成功后,证书存放在 /data/custom_ssl/ 目录中以 npm-1 、 npm-2 等子目录保存
进入主菜单的 Hosts
以将 http://192.168.0.197:5000 映射到 https://nas.laosu.ml 为例
因为准备用 https 协议访问,所以必须勾选 Force SSL
其他的 HTTP/2 和 HSTS 和群晖内置的是一样的,可根据需要勾选,没啥问题的话老苏建议都勾上
为什么要另外安装 nginx proxy manager 而不是用群晖内置的反向代理的原因,老苏在一开始就讲了,装完之后老苏还发现了几个优点:
以上就是关于nginx反向代理内网访问相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读:
关于chatGPT的英文文章(关于cheating的英语作文)