该文仅做思路引导,实践者需要有一些网络知识

1、准备一台内网服务器,假设内网IP为192.168.31.100
2、确定宽带入口IP为公网IP,假设为52.52.52.50,确定是否公网IP的方式很多种,运维人员自己想办法确认,不懂的话,百度百度百度。。。,如果不是,请打电话给运营商,就说宽带要改为公网ip,公司要用,他们就会帮你改的。(ps:固定公网ip是要钱的,动态的是不用钱的)
3、把光猫的DMZ或者相应端口映射给192.168.31.100内网服务器(ps:啥,中间经过多台路由器?一台台往下映射即可)
4、准备个备案的作为开发用的域名,假设为:dev.top,然后在准备台外网服务器,假设网址为:52.52.52.52
5、把*.dev.top解析到52.52.52.52
6、在52.52.52.52服务器上做nginx转发

upstream  dev.top{server 52.52.52.50:8808;
}
server{listen 80;listen 443;server_name *.dev.top;location / {access_log /tmp/access.log;client_max_body_size 50m;proxy_redirect off;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_pass http://dev.top;index index.xhtml index.html index.htm index.php;}
}

7、把内网服务器的nginx监控到8808端口,同时可以配一系列转发,比如指定子域名转发到某台开发工程师的电脑上等等。 再也不烦恼微信开发调试了。
8、这个时候因为是动态公网ip,所以ip会隔一段时间变化一次,一变化就需要去修改nginx的转发配置,这个时候jenkins就派上用场了。
9、在内网服务器上部署上jenkins,然后添加让定时构建任务,这个频率看自己,我建议5分钟,毕竟IP不会变化的太平凡。
10、jenkins上链接上52.52.52.52服务器,执行一个脚本,脚本内容如下(ps:其中有一行是52.52,这个是公司动态ip(52.52.52.50)的ip段,减少误差甚至可以根据内网服务器的ip做判断,根据实际情况调整):

#!/bin/sh
echo "获取旧ip!"
sudo cd ~
oldip=$(cat /usr/local/nginx/conf/ip)echo "获取新ip!"
newip=$(w root | grep 52.52 | awk '{print $3}')if [ ! $newip ] || [ ! $oldip ]; thenecho "获取ip失败,放弃修改!"
elseif [ "$newip" != "$oldip" ]; thenecho "更换nginx代理ip,原端口:$oldPort:8808,修改为:$newPort:8808"sed -i "s/$oldip/$newip/g" /usr/local/nginx/conf/vhost/www.confecho "重启nginx"/etc/init.d/nginx restartecho $newip > /usr/local/nginx/conf/ipelseecho "ip未改变,不需要修改"fi
fi

11、把这个脚本放在/usr/local/nginx/conf/setip.sh ,然后jenkins定时执行即可。
12、同时第一次需要在52.52.52.52 服务器上执行 echo 52.52.52.50 > /usr/local/nginx/conf/ip

13、嗯。。。剩下的自己发挥想象吧,能做的事很多

企业动态IP,内网服务器配置相关推荐

  1. 公网IP/内网IP:

    转自:http://hi.baidu.com/qkjzsjqsehailte/item/1042151cc0959f426926bbb4 IP地址分配 IP地址标识着网络中一个系统的位置.我们知道每个 ...

  2. 更换公司核心路由器案例配置---1.console初始配置-2.用户配置-3.telnet登录配置-4.NAT端口映射配置-5.内网服务器配置-6.链路聚合配置-7.DHCP和DNS配置

    一.场景 因公司核心路由器老旧,运行不稳定,对旧路由器进行更换,要在路由器上实现以下功能. 1.模拟新机console初始配置:         2.用户配置:         3.模拟通过telne ...

  3. 公网IP,内网IP,动态IP,静态IP的区别

    随着计算机和网络的不断发展,网络的规模和数量也随之增加,慢慢的,ip地址这个名字的出现频率慢慢的开始不再局限于网络专业的工作者和学生之间,也逐渐进入普通大众的视野.那么这篇文章就讲一下什么是公网IP, ...

  4. golang 获取公网ip 内网ip 检测ip类型 校验ip区间 ip地址string和int转换 判断ip地区国家运营商

    目录 简要简介net包 什么是外网IP和内网IP? 获取公网ip 获取本地ip 判断是否是公网ip ip地址string转int ip地址int转string 判断ip地址区间 通过淘宝接口根据公网i ...

  5. 异地远程访问本地SQL Server数据库【无公网IP内网穿透】

    文章目录 1.前言 2.本地安装和设置SQL Server 2.1 SQL Server下载 2.2 SQL Server本地连接测试 2.3 Cpolar内网穿透的下载和安装 2.3 Cpolar内 ...

  6. 企业安全挑战 内网安全技术十大策略

    几乎所有企业对于网络安全的重视程度一下子提高了,纷纷采购防火墙等设备希望堵住来自Internet的不安全因素.然而,Intranet内部的***和***却依然猖狂.事实证明,公司内部的不安全因素远比外 ...

  7. android公网ip,android 获取公网ip 内网ip

    /** * 获取公网ip * @return */ public String getNetIp() { URL infoUrl = null; InputStream inStream = null ...

  8. python直联(适合于企业内部的内网邮箱)发送邮件(带附件)、发送给多人、抄送给多人的示例

    # coding=utf-8 import smtplib from email.mime.text import MIMEText from email.mime.multipart import ...

  9. 外网访问内网服务器配置方法

    前提需要有固定IP 路由器必须得是通过固定IP上网,才能通过外网访问内网服务器 登录路由器 在地址栏输入192.168.1.1或192.168.0.1.初始密码为admin,若忘记密码请重置路由器.这 ...

最新文章

  1. FastCGI与php-fpm
  2. 如何查看Oracle的用户权限
  3. boost::container模块实现比较的程序
  4. 折叠玻璃体球囊手术介绍
  5. 非对称加解密交互故事
  6. Arraylist理解(2)扩容
  7. C++STL优先队列小根堆大根堆自定义的应用
  8. 说白了 枚举是一个对象中属性的参数值
  9. python小工具脚本批量处理_压缩文件批量处理(附Python脚本代码)
  10. 流氓软件的完全卸载的一些方法
  11. 我的世界服务器物品图标闪,我的世界中国版用资源包修改闪烁标的方法分享
  12. 各类编程开发软件及资源全版本下载地址合集
  13. 浅谈微信小程序开发工具
  14. iOS开发实例 | Demo:数独小游戏
  15. 个性化的CRM具备的功能有哪些
  16. 蠕虫病毒html,蠕虫病毒的防治
  17. 项目杂识-FOV(视场角)
  18. 【erlang】【rebar依赖】添加eredis依赖
  19. 一张图把DCDC电源拓扑“融会贯通”
  20. JVM内存区域和垃圾收集器

热门文章

  1. 敢看系列?Python字体反爬实战案例之实习那僧,继续挖坑
  2. 商用密码应用安全性评估从业人员考核知识点
  3. mysql数据库操作多表查询_MySQL数据库查询操作进阶——多表查询
  4. 资深设计师们都在用的20个3dsMax建模技巧
  5. Spring--整合Junit
  6. Java 面向对象编程(三)——多态,方法重写,向上转型,向下转型
  7. 支付宝国际支付 对接
  8. 在webpack中使用 process.cwd()与__dirname的区别
  9. 拉勾教育——TypeScript学习
  10. 简单理解面向对象和面向过程