Nginx代理服务器转发解决跨服务器访问

前言
        老样子,先来讲讲我所遇到的问题,大概是需要外网访问一个内网服务器,想通过这台内网服务器访问到到另外一台内网服务器(两台内网服务器互通),可以说是跨服务器访问。咨询过大佬后自己在总结一下。大佬一听,立马跟我说,这个很简单,需要nginx做反向代理即可,那么如何操作呢,接下来回顾一下。
        首先情况摸清楚:两台服务器,一台外网可访问到的内网服务器一【10.25.7.169:8070】,另一台外网不可访问到的内网服务器二【10.25.12.188:8080】。我们要让外网去访问服务器一,然后通过nginx做反向代理,间接访问服务器二。首先要在服务器一上安装nginx。

linux离线安装Nginx详细步骤

        下载nginx安装环境:gcc、g++、pcre、zlib、nginx
        1)gcc

##	安装nginx需要将官网下载的源码进行编译,编译一以来gcc和g++,如果没有gcc环境,需要安装gcc
##	下载好所需要的文件后上传至服务器,进入gcc的根目录执行如下操作,
##	当执行下面语后,系统会总动选出所需要的依赖包进行安装不需要的就会自动清理。

[root@xjxx-wwapp gcc]#rpm -Uvh *.rpm --nodeps --force

##	最后查询一下是否安装成功

[root@xjxx-wwapp gcc]#gcc -v
[root@xjxx-wwapp gcc]#g++ -v
##	如果出现他们各自的版本号,说明安装成功

        2)pcre

##	pcre是一个库,包括perl兼容的正则表达式库
##	nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
##	同样进入到pcre根目录下执行如下命令。

[root@xjxx-wwapp pcre]#rpm -ivh pcre-8.32-17.el7.x86_64.rpm --force
[root@xjxx-wwapp pcre]#rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm --force

        3)zlib

##	zlib库提供了很多种压缩和解压缩的方式,nigin使用zlib对http包的内容进行gzip。

[root@xjxx-wwapp zlib]#rpm -ivh zlib-1.2.7-18.el7.x86_64.rpm    --force
[root@xjxx-wwapp zlib]#rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm   --force

        4)nginx

##	进入nginx的根目录解压

[root@xjxx-wwapp nginx]#tar -xzvf nginx-1.18.0.tar.gz

##	将源码移动到对应目录下

[root@xjxx-wwapp nginx]#sudo mv nginx-1.18.0 /usr/local/
[root@xjxx-wwapp nginx]#cd /usr/local/nginx-1.18.0/
[root@xjxx-wwapp nginx-1.18.0]#./configure

##	编译

[root@xjxx-wwapp nginx-1.18.0]#make

##	安装

[root@xjxx-wwapp nginx-1.18.0]#make	install

##	运行nginx

[root@xjxx-wwapp nginx-1.18.0]#cd sbin/
[root@xjxx-wwapp sbin]#./nginx

##	检查是否安装正确

[root@xjxx-wwapp sbin]#/usr/local/nginx-1.18.0/sbin/nginx -t

##	nginx的启动、停止、退出、重新加载配置文件的命令

[root@xjxx-wwapp sbin]#/./nginx
[root@xjxx-wwapp sbin]#/./nginx -s stop
[root@xjxx-wwapp sbin]#/./nginx -s quit
[root@xjxx-wwapp sbin]#/./nginx -s reload

        接下来开始配置nginx反向代理

##	进入nginx配置文件
[root@xjxx-wwapp conf]#vim nginx.conf

##	复制一组server,然后进行如下修改
server {
		##	监听8080端口
        listen 8080;
        server_name localhost;
		
		##	路由1配置:如果请求的url包含/,走本地的8070端口访问
        location / {
            proxy_pass http://127.0.0.1:8070;
            proxy_connect_timeout 300s;
            proxy_send_timeout 900;
            proxy_read_timeout 900;
            proxy_buffer_size 32k;
            proxy_buffers 4 64k;
            proxy_busy_buffers_size 128k;
            proxy_redirect off;
            proxy_hide_header Vary;
            proxy_set_header Accept-Encoding '';
            proxy_set_header Referer $http_referer;
            proxy_set_header Cookie $http_cookie;
            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;
        }
		
		##	路由2配置:如果url遇到/appFileDownLoad/的请求,走另外一台内网服务器的8080端口
        location /appFileDownLoad/ {
			##	rewrite 重写当前路径,去掉/appFileDownLoad/标记
            rewrite ^/appFileDownLoad/(.*) /$1 break;
            proxy_pass http://10.25.12.188:8080;
        }
}

        假设我们通过外网访问到一个请求:http://外网ip:9527/HVPS/MainServlet/op=report&pid=MAX_DAY,外网访问到内网服务器一【10.25.7.169:8070】,通过nginx反向代理,根据请求url发现,并没有特殊的标记,然后nginx将请求发送给本地;
        再假设我们通过外网访问一个请求:http://外网ip:9527/appFileDownLoad/norone/fileDownLoad.do?type=reportDoc&file=1603247989056.xls,外网访问到内网服务器一【10.25.7.169:8070】,通过nginx反向代理,根据请求url发现,有特殊标记/appFileDownLoad/,然后nginx将请求发送给内网服务器二【http://10.25.12.188】
        到此为止,我的问题就已经解决了。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
为在OpenWrt上配置Nginx以实现公网访问,您可以按照以下步骤进行操作: 1. 首先,在OpenWrt的防火墙设置中进行端口转发配置。根据引用的描述,您可以配置两个转发规则:一个用于HTTP请求,将外部的端口映射到OpenWrt的80端口;另一个用于HTTPS请求,将外部的端口映射到OpenWrt的443端口。 2. 接下来,您需要启动一个内网应用程序。根据引用和引用的描述,您需要将这个内网应用程序部署在OpenWrt的某个服务器上,并确保其监听在适当的端口(例如80端口或443端口)。 3. 配置Nginx。您需要编辑Nginx的主配置文件nginx.conf。根据引用和引用的描述,您需要配置Nginx反向代理到您的内网应用程序。具体来说,您需要添加一个代理配置,将外部的HTTP请求(通过转发规则映射到OpenWrt的80端口)转发到内网应用程序的对应端口(例如8003端口)。另外,您还需要配置Nginx来支持HTTPS请求,将外部的HTTPS请求(通过转发规则映射到OpenWrt的443端口)转发到内网应用程序的对应端口。 验证配置是否成功,请您通过在本地网络中访问OpenWrt的公网地址(可能是您的路由器的公网IP地址)和相应的端口来测试访问您的内网应用程序。确保通过HTTP和HTTPS均可以成功访问您的应用程序,并且没有出现任何错误。 请注意,具体的配置步骤可能会因您的网络环境和需求而有所不同。请仔细阅读OpenWrt和Nginx的文档,以确保正确配置和安全性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [openwrt内网端口转发,内部使用nginx反代,外部使用https安全访问的方案](https://blog.csdn.net/weixin_40294053/article/details/119859936)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值