博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络应用的托管设置以及Nginx反向代理
阅读量:2432 次
发布时间:2019-05-10

本文共 1463 字,大约阅读时间需要 4 分钟。

网络应用是什么

我们都知道什么是app, 就是手机上的一个软件,点开就有很多功能可以使用,这种类型的软件我们称之为“移动应用“(mobile application);而当你打开浏览器浏览各种网页、进行各种操作的时候,你就是在使用网络应用(web application). 网络应用的很多功能依赖于和服务器的交互,大致的过程是你通过浏览器里看到的页面请求一些信息,然后浏览器告诉操作系统:“你帮我对ip地址是xxx.xxx.xxx.xxx的那台机器说xxxxxpaidsjlkfnad9130p5up@%$@WERGSDFXvcsdoij这些话,它回你什么你都告诉我“,操作系统空下来就帮浏览器传话了,收到回复以后也告诉了浏览器;最后浏览器阅读了收到的回复,组织了一下语言再呈现给你看。

一个服务器就是一台一直开着的电脑,也有CPU、内存、硬盘、主板这些东西。上述的过程有一个步骤是操作系统要向ip为xxx.xxx.xxx.xxx的机器传话,这台机器要能收到消息必须“在线“,所以服务器必须24小时开启。

托管设置有什么用

一般网络应用在开发阶段会通过 localhost:[port] 来访问,这时候开发人员只要保证应用能监听 localhost 即可,但是当应用部署到服务器上,开始24小时提供服务的时候,继续把监听范围仅限于 localhost 就不行了。监听 localhost 的意思是该应用允许访问的用户只有本机,也就是说自己跟自己玩它才愿意,换了生人就不玩了。要让它成为一个正经的网络应用,它需要允许“公共网络接口“ 0.0.0.0 也就是所有 ip 地址的连接。

我们来看一个 Flask 的例子,下面的代码片段给出一个最精简的 Flask 应用:

from flask import Flaskapp = Flask(__name__)@app.route('/')def index():    return 'Hello!'if __name__ == '__main__':    app.run(debug=True)

运行之后 Flask 只会允许localhost的连接,监听5000端口,如果把这个应用在服务器上运行,然后尝试通过 ip 地址访问就会失败;应该要让 Flask 允许公共网络接口的连接,使用 flask-manager:

from flask import Flaskfrom flask_script import Managerapp = Flask(__name__)@app.route('/')def index():    return 'Hello!'if __name__ == '__main__':    manager.run()

将代码片段保存为 app.py, 然后使用 python app.py runserver --host 0.0.0.0 来启动服务器,这次能够通过 ip 地址访问。

Nginx反向代理是什么

网络上的请求是很复杂的,有人将 www 戏称为(wild weird web),一般的网络应用框架在设置白名单、黑名单、代理、重定向方面不如Nginx有效率,所以一般的后端架构都有一个 Nginx 做为中介来转发用户的请求,比如要把某个 url 的请求转发给flask应用的话就要在 Nginx 的配置文件中写:

location /yoururl {    proxy_pass http://localhost:5000;}

转载地址:http://mfpmb.baihongyu.com/

你可能感兴趣的文章
技术引路:机器学习仍大有可为,但方向在哪里?
查看>>
漫画:如何给女朋友解释什么是编译与反编译
查看>>
刷屏了!这篇 Python 学习贴,90% 的程序员都用的上!
查看>>
漫画:如何给女朋友解释什么是适配器模式?
查看>>
程序员又迎来一个好消息! | 每日趣闻
查看>>
Mac 被曝存在恶意漏洞:黑客可随意调动摄像头,波及四百万用户!
查看>>
拒绝与其他码农一致!CSDN定制T让你成为最靓的仔
查看>>
程序员情商低?看完这 4 类程序员我懂了!
查看>>
《长安十二时辰》里你不能不知道的 IT 技术 | 每日趣闻
查看>>
程序员爬取 3 万条评论,《长安十二时辰》槽点大揭秘!
查看>>
一年参加一次就够,全新升级的 AI 开发者大会议程出炉!
查看>>
基于 XDanmuku 的 Android 性能优化实战
查看>>
基于嵌入式操作系统的物联网安全
查看>>
一个只有 99 行代码的 JS 流程框架
查看>>
移动周刊第 186 期:移动 App 客户端性能优化、iOS 开源库源码解析
查看>>
包学会之浅入浅出 Vue.js:开学篇
查看>>
JavaScriptCore 全面解析 (上篇)
查看>>
移动周刊第 187 期:App 模块化实战经验总结
查看>>
以不一样的视角看物联网协议
查看>>
JavaScriptCore全面解析 (下篇)
查看>>