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】
到此为止,我的问题就已经解决了。
Nginx代理服务器转发解决跨服务器访问相关推荐
- vue反向代理解决跨域及部署nginx端口转发解决跨域
1. 前言 本文是为了解决vue反向代理解决跨域及部署服务器nginx端口转发解决跨域,因为踩了不少的坑,百度了很多,也试了太多的方法,最终得以解决,所以记录一下,希望遇到同样问题的友友们可以高效的解 ...
- linux apache 跨域,解决nginx/apache静态资源跨域访问问题详解
1. apache静态资源跨域访问 找到apache配置文件httpd.conf 找到这行 #LoadModule headers_module modules/mod_headers.so 把#注释 ...
- Nginx配置valid_referer解决跨站请求伪造(CSRF)
Nginx配置valid_referer解决跨站请求伪造(CSRF) 文章目录 Nginx配置valid_referer解决跨站请求伪造(CSRF) 漏洞说明 漏洞描述 危害等级 修复建议 漏洞复现 ...
- 通过nginx反向代理解决跨域
先写一个发送跨域请求的页面index.html <html> <head><title></title> </head> <body& ...
- Nginx 方向代理解决跨域问题-2
概述 在浏览器端进行 Ajax 请求时会出现跨域问题,那么什么是跨域,如何解决跨域呢?先看浏览器端出现跨域问题的现象,如下图所示 什么是跨域问题? 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览 ...
- mysql跨服务器查询语句_MySQL 跨服务器访问之-FEDERATED引擎
在工作中会遇到mysql要跨服务器访问,下面就介绍mysql的FEDERATED引擎如何建立跨服务器访问 进入mysql命令行,没有看到Federated,说明没有安装 mysql>show e ...
- php跨服务器访问不了,php跨服务器访问方法小结
本文实例总结了php跨服务器访问方法..具体分析如下: 近来项目中遇到跨服务器访问的问题,研究了好些日子,总结如下: 1.用file_get_contents方法 $host = 'url'; $ra ...
- 利用nginx 反向代理解决跨域问题
利用nginx 反向代理解决跨域问题 参考文章: (1)利用nginx 反向代理解决跨域问题 (2)https://www.cnblogs.com/hpx2020/p/9928175.html 备忘一 ...
- nginx反向代理解决跨域问题,使本地调试更方便
nginx反向代理解决跨域问题,使本地调试更方便 参考文章: (1)nginx反向代理解决跨域问题,使本地调试更方便 (2)https://www.cnblogs.com/gwf93/p/102951 ...
最新文章
- SpringBoot第二十二篇: 创建含有多module的springboot工程
- Microsoft Visual Studio 宏脚本添加注释模板
- 3.QT数据库综合案例,模糊查询等操作
- [linux] shell脚本编程-统计日志文件中的设备号发通知邮件
- jzoj3845-简单题【dp】
- vmware安装minimal centos报错/etc/rc5.d/s99local : line
- openresty package.path require 报错
- asp.net ajax 怎么获取前端ul li_useEffect Hook 是如何工作的(前端需要懂的知识点)
- Js获取字符串的显示宽度/高度
- Linux学习总结(34)——Linux系统目录结构详解
- Python官方软件包存储库成恶意软件大本营?
- tensorflow2.0对应python版本_TensorFlow2.1.0最新版本安装详细教程
- 迅雷远程与服务器失去响应,#原创新人# 彻底解决迅雷关闭接口对群晖NAS的影响...
- PMP培训内容有哪些?
- c语言教师工资管理系统源程序设计,C语言教师工资管理系统
- lan口配置 petalinux_【Xilinx-Petalinux学习】-02-建立PetaLinux工程
- 【1194】移动路线
- CSS3实现闪烁动画效果
- Android MIntegral广告SDK接入
- 在测试tensorBroad中在运行mnist_with_summaries.py时URLError:urlopen error [WinError 10060] 由于连接方在一段时间后没有正确答
热门文章
- linux系统grep用法,linux中grep的用法
- c语言答辩题目及答案,c语言if语句的练习题答案.doc
- 技术的本质——读书笔记
- 【信息学奥赛】2061:【例1.2】梯形面积(C++)
- java xpath evaluate_java – XPath.evaluate性能在多个调用中减慢(荒谬)
- Pacemaker+corosync实现高可用集群
- 基于 React hooks + Typescript + Cesium 绘制四棱锥(视椎体)
- 服装界BOM的管理方式
- TERASOLUNA Framework
- 保留关键字 (Transact-SQL)