首页 > 系统相关 >用他 nginx 访我 nginx 之计(跨 nginx 访问方案)

用他 nginx 访我 nginx 之计(跨 nginx 访问方案)

时间:2024-07-26 16:30:57浏览次数:15  
标签:之计 Nginx 访问 header nginx Host internal proxy

需求:生产环境上,我们这边网络权限他们开不了,想从被人系统的ng跳转到我们ng,这个需要怎么做?总之就是人家ng有外网权限,通过人家ng访问我们ng,然后我们用人家域名。

答:
如果想要通过别人项目的Nginx(简称“外网Nginx”)来访问自己环境的Nginx(简称“内部Nginx”),并且你还希望使用别人的域名,
那么这通常涉及到在外网Nginx上设置一个反向代理来转发请求到你的内部Nginx。

第一步:
操作步骤:
在外网Nginx上配置反向代理
命令:vim /etc/nginx/nginx.conf
添加:

server {  
    listen 80; #监听80端口,这是HTTP的默认端口。如果您想使用HTTPS,请改为listen 443 ssl;,并添加SSL证书的配置
    server_name external.example.com; # 这里填外网Nginx的域名  

    location /internal/ { # 这里/internal/是你希望用户访问的路径前缀   
        rewrite ^/internal/(.*)$ /$1 break;  #当请求的URL以/internal/开头时,将/internal/部分去掉,然后将剩余部分的URL转发到内部的Nginx 
        proxy_pass http://internal-nginx-address:8080; # 替换internal-nginx-address为你的内部Nginx地址,8080是内部Nginx监听的端口  
        proxy_set_header Host $host;  
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_set_header X-Forwarded-Proto $scheme;  

        # 如果内部Nginx使用了基于Host的虚拟主机,需要保留Host头不变  
        # proxy_set_header Host $host; 改为 proxy_set_header Host internal.example.com;  
    }  

    # 其他location块...  
}

注意:
1、的配置中,rewrite指令用于去除URL中的/internal/部分,以便你的内部Nginx能够正确处理请求。
但是,这取决于你的内部Nginx如何配置以及你希望如何暴露你的服务。如果你的内部Nginx期望看到/internal/作为URL的一部分,那么你应该省略rewrite指令。

2、Host的虚拟主机是一种在Web服务器(如Apache、Nginx等)上实现多网域服务的技术。
它允许在一台物理服务器或服务器群上,通过识别请求中的Host头部信息来区分和托管多个网站或服务。
判断是否配置基于Host的虚拟主机的方法:
①检查Nginx配置文件:如果nginx.conf配置文件中有多个server块,且每个块中的server_name都指定了不同的域名,那么可以初步判断Nginx配置了基于Host的虚拟主机;
②检查网站目录和文件:Host的虚拟主机通常会在Nginx的配置文件中指定不同的根目录(通过root指令)或索引文件(通过index指令),用于存放不同域名对应网站的内容。
可以检查这些目录和文件是否存在,并确认其内容是否与域名相对应。

第二步:重启外网Nginx

第三步:测试配置
通过在外网Nginx的域名后加上你配置的路径前缀(在这个例子中是/internal/)来测试配置是否工作正常。你应该能够看到你的内部Nginx服务器的响应。

标签:之计,Nginx,访问,header,nginx,Host,internal,proxy
From: https://www.cnblogs.com/zhoutuo/p/18325653

相关文章

  • 使用 useRequestURL 组合函数访问请求URL
    title:使用useRequestURL组合函数访问请求URLdate:2024/7/26updated:2024/7/26author:cmdragonexcerpt:摘要:本文介绍了Nuxt3中的useRequestURL组合函数,用于在服务器端和客户端环境中获取当前页面的URL信息。通过示例展示了如何在页面中使用此函数获取并显示URL及其......
  • 记一次NACOS开放公网访问导致服务器被挖矿的解决流程 [kdcflush] acosd
    前言事情的起因是这样的,昨天领导找到我说服务器内存满了,影响其他程序正常运行了,让我把测试服务器上之前启动的六个JAVA程序停一下,接着我就登上服务器执行dockercomposedown把服务关掉,临走之前习惯性使用htop查看一下资源面板,意外发现服务器中有个叫[kdcflush]acosd的进程把服......
  • 多租户架构中的安全与访问控制
    随着云计算和SaaS(软件即服务)模式的普及,多租户架构逐渐成为软件开发中的一种重要模式。多租户架构允许多个客户(租户)共享同一应用程序实例,同时确保数据的隔离和安全性。本文将重点探讨在多租户架构中实现安全与访问控制的方法,并通过Java代码示例进行详细说明。1.多租户架构概述......
  • 前后端都用得上的 Nginx 日常使用经验
    前言nginx是一个高性能的开源反向代理服务器和web服务器,一般用来搭建静态资源服务器、负载均衡器、反向代理,本文将分享其在Windows/docker中的使用,使用nssm部署成服务的方案脚本,局域网中自定义域名解决https提示不安全的解决方案,以及一路踩过的坑。特点高性能:......
  • Docker Nginx
    #1.拉取nginxsudodockerpullnginx#2.创建目录sudomkdir-p/home/docker/nginx/conf/home/docker/nginx/html/home/docker/nginx/log#3.生成容器,将其文件复制到物理机dockerrun--namenginx-p9001:80-dnginx#将容器nginx.conf文件复制到宿主机sudod......
  • 无法访问 json 属性
    我正在尝试访问此json的“城市”属性,但不知何故它不起作用,这是json结构:"{\"ForSaleShopperPlatformFullRenderQuery{\\\"zpid\\\":28657235,\\\"platform\\\":\\\"DESKTOP_WEB\\\",\\\"formType\\\":\\\"OPA......
  • nginx灰度发布、网站限速和防盗链
    一、灰度发布(金丝雀发布)灰度发布时使用比较平稳的过渡方式升级或者替换产品项目的方法统称主要作用及时发现项目问题尽早获取用户反馈的信息,以改进产品如果项目产生问题,可以将问题影响控制到最小范围【1】、基于不同IP进行灰度发布proxy代理web01开启80端口开启8......
  • 单机模式下ElasticSearch8(ES8设置账号密码访问)
     重置密码报错:ERROR:Failedtoresetpasswordforthe[elastic]user 修改配置文件/config/elasticsearch.yml修改或添加discovery.type:single-nodexpack.security.enabled:truexpack.security.http.ssl.enabled:falsexpack.security.enrollment.enabled:......
  • 使用 aws cdk 设置用户池客户端属性以具有读/写访问权限 - Python
    我试图根据属性给予一些自定义属性特定的读/写访问权限。我收到此错误。资源处理程序返回消息:“无效写入创建客户端时指定的属性(服务:CognitoIdentityProvider,状态代码:400,请求ID:<request_id>)”(RequestToken:<request_token>,HandlerErrorCode:InvalidRequest)任何人都可以为......
  • 使用CloseableHttpClient 访问 http 和https 的get请求
    publicclassHttpClientUtil{privatestaticLoggerlogger=LoggerFactory.getLogger(HttpClientUtil.class);/***带参数的get请求**@paramurl*@paramparam*@returnString*/publicstaticStringdoGet(Stringurl,Map<S......