现状

一个域名(www.abc.com),指向了公司的外网IP(59.108.xx.xx),

公司的外网IP(59.108.xx.xx),映射到一台内网服务器37(172.16.2.37),以下简称37服务器。

另一台内网服务器38是资源服务器(172.16.2.38),上传了很多的图片,以下简称38服务器。

其中,

37服务器是外网访问我们服务器的唯一入口,其中配置了nginx,跳转到多个服务器的应用。

38服务器,8081端口就是访问图片的应用端口。

希望:

通过外网ip和域名地址,可以访问资源服务器上的图片

实现步骤:

1、配置nginx.conf

#cat /etc/nginx/nginx.conf# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;events {worker_connections 1024;
}http {include       mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';# access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;include conf.d/*.conf;
}

这里为了nginx.conf文件结构清晰,将所有的跳转配置到conf.d文件夹的不同的配置文件中。

2、配置nginx_9091_38_static.conf

# cat nginx_9091_38_static.conf
server {listen       9091;server_name  127.0.0.1 172.16.2.37 59.108.xx.xx www.abc.com;#charset koi8-r;#access_log  logs/host.access.log  main;location / {
#            root   html;
#            index  index.html index.htm;proxy_set_header Host $host:9091;proxy_set_header X-Real-Ip $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://172.16.2.38:8081/;}
}

这里仅列出图片服务器的配置文件,

9091是外网访问端口,

59.108.xx.xx www.abc.com是外网访问的ip和域名

http://172.16.2.38:8081 是图片服务器的内网访问地址,也是nginx将9091跳转到的地址

3、重启nginx

nginx -s reload

可以查看/var/log/nginx/下的access.log和error.log文件,查看访问记录和出错记录

4、防火墙开启9091端口

#vi /etc/sysconfig/iptables-A IN_public_allow -p tcp -m tcp --dport 9091 -m conntrack --ctstate NEW -j ACCEPT#service iptables restart

5、验证

确保38服务器在8081端口启动了应用,并且开启了8081防火墙。

本地电脑用内网地址验证

http://172.16.2.37:9091/static/1525844569268.jpg

由于本地电脑无法访问外网,所以用手机流量访问以下地址

http://59.108.xx.xx:9091/static/1525844569268.jpg

http://www.abc.com:9091/static/1525844569268.jpg

总结:

本方案是对同一个域名用不同的端口号跳转。

也可以针对不同的应用,创建不同的二级域名,用不同的二级域名跳转,比如img.abc.com,api.abc.com,cms.abc.com。这样就可以不带端口号访问内网服务器的资源了(此时默认端口号为80)。

nginx反向代理内外网跳转相关推荐

  1. Nginx反向代理内网web系统找不到CSS,JS及图片问题解决方案

    一.背景介绍: 有个部署在内网的web单体应用,需要通过部署在DMZ区的Nginx访问到,由于需要复用现有的域名,所以只能是通过在Nginx上增加location的方式访问. 二.问题描述: 但是在访 ...

  2. Ngnix反向代理内外网访问

    1.Web应用使用Nginx进行代理,内网访问则直接是访问的Nginx:80代理服务器,在外网则访问不了,所以就有一个问题需要映射网络 2.通过路由器配置将Nginx:80代理服务器80端口映射到We ...

  3. 利用nginx反向代理在内网服务器(无外网)下访问接口,视频,地图(一)

    最近在项目中遇到一个需求,需要把项目部署在客户内网服务器上(无外网),内网服务器(无外网)需要访问公网IP,由于我们的项目包括外接谷歌地图接口,视频直播接口:项目经理就把这个任务分配给我,让做ngni ...

  4. uni-app——一种通过Nginx反向代理处理302重定向请求解决网络请求中无法获取Cookie的解决方案

    问题描述 小程序中不会自动保存和发送Cookie 使用插件(https://uniapp.dcloud.io/api/request/request)方法不能解决302重定向情况下获取Cookie 小 ...

  5. nginx反向代理下thinkphp、php获取不到正确的外网ip

    nginx反向代理下thinkphp.php获取不到正确的外网ip 在记录用户发送短信需要获取用户ip时,tp一直获取的是内网ip:10.10.10.10 tp框架获取ip方法:get_client_ ...

  6. Nginx反向代理:通过外网访问内网数据库(mysql)

    Nginx反向代理:通过外网访问内网数据库 前言 项目场景: 问题描述及分析: 解决方案: 1 在部署nginx里配置端口IP 2 在外网nginx配置反向代理参数 3 重启nginx 前言 部署ng ...

  7. 搭建nginx反向代理用做内网域名转发

    搭建nginx反向代理用做内网域名转发 一.安装nginx $ sudo yum install nginx 二.修改配置文件 1 先备份配置文件 $ sudo cp /etc/nginx/nginx ...

  8. Nginx反向代理相关事宜

    第一章:Nginx概述 1.1.Nginx概述 Nginx("engine x")是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上Nginx的并发能力确 ...

  9. Nginx 反向代理 负载均衡 动静分离 高可用 原理

    1.Nginx简介 1.1 概述 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理服务器,特点是占有内存少,并发能力强,能经受高负载的考验,有报告表明能 ...

最新文章

  1. 参加web前端开发培训具体要学什么内容
  2. 长期分享干货的技术大佬
  3. DeepFaceLab 换脸
  4. 采用SIMULINK SimPowerSystems的光伏并网阵列仿真
  5. 树形结构:二叉排列树,二叉搜索树
  6. 交换机老化测试和性能测试方法收集
  7. java 开发人员工具_Java开发人员应该知道的5种错误跟踪工具
  8. 798. 差分矩阵 (二维差分)
  9. Redis RDB与AOF持久化详解
  10. with 语句的妙用
  11. 机器学习——Gradient Boost Decision Tree(Treelink)
  12. java testwhileidle,springboot使用druid时报错:testWhileIdle is true, validationQuery not set
  13. SSH客户端:Termius for Mac
  14. C语言学习资源汇总,史上最全面总结,没有之一
  15. Ubuntu下WPS 快捷键、使用方法总结
  16. ISCW实验11:使用SDM配置Site-to-Site IPSec ×××
  17. 恢复Cisco 2960交换机密码
  18. C++二叉排序树代码实现
  19. 600度近视眼恢复方法_高度近视600度如何恢复视力?这三大办法
  20. php--spry框架读取显示xml数据

热门文章

  1. 转 从SNMP到NETCONF
  2. springboot集成kafka消费手动启动停止
  3. 跳跳鱼视频处理大师Mac版,使用方法介绍
  4. windows系统“删库跑路“脚本bat
  5. java list把相同的数据合并_如何将list中ID值相同的数据合成一条
  6. Debian Ubuntu输入法安装
  7. 模糊的照片可以变清晰吗?
  8. python的sendto_Python 3 – 验证sendto()成功
  9. RDkit四:数据处理过程中smiles编码的清洗统一化
  10. 重装系统以及无线打印机连接