nat123+nginx实现外网访问本机IIS发布的系统
故事开端(前因)
一、前期准备
知识-如果不考虑了解可忽略该部分
- nat123的使用技巧(内网网站发布到外网-五种方法-内网环境,无公网IP-80端口)
- nginx的代理技巧(http-proxy)
- 本地访问和外网访问联系和区别
- Asp.Net WebApi的简单使用
- 前端html以及ajax的使用
工具-案例资源
- nat123 windows版本 下载链接 http://www.nat123.com/Pages_2_32.jsp
- nginx windows版本 nginx-1.13.12 下载链接 http://nginx.org/en/download.html
- 后端网站案例-VS2015开发 +前端网站案例-Html+js(ajax相关js文件) 下载地址 https://pan.baidu.com/s/1WAhv4WKXExGcEJsl3XdVow 密码: 1unv
二、操作实践
前端和后端网站的案例







<html>
<head>
<script src="/js/jquery.js"></script>
</head>
<body>
<span id='msg'>this is my web !</span>
<input id='btn' onclick='GetData()' type='button' value='getData'/>
</body>
<script type="text/javascript">
function GetData()
{
$.ajax({
url:"http://localhost:8090/api/product/getproducts",
type:"json",
method:"get",
success:function(data)
{
$("#msg").html(data);
}
});
}
</script>
</html>


配置Nginx
.......................略
http{ #内部前端网站转发规则名称
upstream myweb
{
#前端网站在IIS上的网址
server 127.0.0.1:;
}
#内部后端api网站转发规则名称
upstream webapi
{
#api网站在IIS上的网址
server 127.0.0.1:;
}
.......................略
}
http {
.........略
server {
listen ;#nginx监听端口-同时也是计划内网穿透的端口
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
#默认location注释掉
#location / {
# root html;
# index index.html index.htm;
#}
#默认转发的请求-转发给前端网站-前端网站为localhost:9898
location /{
proxy_pass http://myweb;
}
#匹配请求中含有/api/-转发给后端网站-后端网站为localhost:8090
location /api/{
proxy_pass http://webapi;
}
.......................略
}




配置Nat123

三、测试效果
测试效果


四、测试分析
处理ajax跨域的基本思路
Nginx与nat123在此处扮演的角色
作为前后端分离的简单方式这样的核心思想是否能够运用到实际的开发中
五、问题总结
所思
所想
六、资源链接
关于代理服务
关于nat123
关于ajax跨域
nat123+nginx实现外网访问本机IIS发布的系统的更多相关文章
- frp内网渗透实现ssh外网访问家里树莓派(树莓派raspbian系统+腾讯云contos7)
只有信用卡大小的它,同时也是一台功能完备的电脑(树莓派),把内网能玩的功能都玩了个遍,自然就有了外网访问这台树莓派的需求.一样也是查阅了无数文章,研究了无数个方案,最终试验成功用FRP实现了内网穿透, ...
- 外网访问本地服务器下的web应用
让本地服务器可以在外网访问的方式有很多,介绍其中一种: 由于本人是在自己电脑上装了一个虚拟机, 测试环境为:虚拟机作为服务器,服务器中装了一个禅道,虚拟机IP192.168.2.221,本人通过tpl ...
- 阿里云centos7成功安装和启动nginx,但是外网访问不了的解决方案
问题环境: 阿里云centos7.4.1708 问题描述:成功配置,启动成功,外网访问不了 解决方案: 经过查阅文档,去阿里云后台查看,原来是新购的服务器都加入和实例安全组. (OMG)立即去配置.加 ...
- WinServer 之 内网发布网站后端口映射外网访问
内网IP只能在内网局域网访问连接,在外网是不能认识内网IP不能访问的.如有路由权限,且路由有固定公网IP,可以通过路由的端口映射,实现外网访问内网.如无路由,或路由无公网IP,需要用到第三方开放的花生 ...
- vs visual studio 让外网访问设置
vs2015 提供外网访问我是这么解决的 有时我们经常会用到连接外网的方式来调试自己写的莫名bug.而我们通常有两种解决方式 一.捕捉错误日志进行代码分析. 二.则是将我们的源码项目提供外网访问进行直 ...
- python restful 框架之 eve 外网访问设置
官网地址: http://python-eve.org/ 配合mongodb进行crud使用起来很方便,但是部署的时候遇到一个问题,按照官网和Deom说的,servername使用 '127.0.0. ...
- ngrok 本机代码部署外网访问神器(转)
背景:听哥们说了个工具ngrok,可以让本机配置的web服务在外网访问,抱着将信将疑的态度试了试,发现还真的可以.下面记录下我自己的安装步骤,另外谈下自己还有些疑问的地方. 参考资料网站:http:/ ...
- Nginx代理外网映射
外网映射内网端口8080, 外网访问使用端口8379: nginx监听8080和80端口 #user nobody; worker_processes ; #error_log logs/error. ...
- 360路由器+花生壳实现外网访问SVN服务器
注册花生壳账号 花生壳注册地址:https://console.oray.com/passport/register.html?fromurl=http%3A%2F%2Fhsk.oray.com%2F ...
随机推荐
- JAVA System.exit(0) 和 System.exit(1) 的区别
System.exit(int state) 方法都是来结束当前运行的java虚拟机.所有System.exit(1).System.exit(0) 执行后都会退出程序. state为0时时正常退出, ...
- Linux恢复删除的文件
linux恢复删除的文件 先介绍下一些文件的基本概念: · 文件实际上是一个指向inode的链接, inode链接包含了文件的所有属性, 比如权限和所有者, 数据块地址(文件存储在磁盘 ...
- .NET Core之单元测试(四):Fluent Assertions的使用
目录 什么是Fluent Assertions 待测试API 测试用例 什么是Fluent Assertions Fluent Assertions 是 .NET 平台下的一组扩展方法,用于单元测试中 ...
- Windows更改、自定义键盘功能键
为什么要改? 使用mac盘习惯之后回到Windows感觉实盘使用起来很是别扭,所以... 开始行动 新建一个.reg后缀的文件,文件名称随意,编辑输入一下内容:(以下内容是把键盘左侧的CTRL和ALT ...
- jquery二级导航
效果图 直接放代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Cesium案例解析(五)——3DTilesPhotogrammetry摄影测量3DTiles数据
目录 1. 概述 2. 案例 3. 结果 1. 概述 3D Tiles是用于传输和渲染大规模3D地理空间数据的格式,例如摄影测量,3D建筑,BIM / CAD,实例化特征和点云等.与常规的模型文件格式 ...
- Python和Anoconda和Pycharm安装教程
简介 Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的.大型项目的开发. ...
- 【转载】structlog4j介绍
源文章:structlog4j介绍 结构化日志对于日志的收集的作用挺大的,根据自身的业务场景,基于SLF4J实现了structlog4j. 相关引用 Gradle // 基础包 compile 'te ...
- 学习使用add()()()迭代调用,柯里化处理
将多个参数的函数,转换成单参数函数链 以add()()()举例 function add(){ 使用数组保存参数 let _args = Array.prototype.slice.call(argu ...
- idea 普通项目 改成 maven项目
首先 pom.xml 是必要的 然后在该文件上右击 add as maven project