基于Python构建前后端分离服务架构实践,其中Web服务为Nginx,前端采用VUE组件,后端Web服务采用Tornado,数据库使用文档型MongoDB,服务协议主要为restfull。

1. Nginx Web服务

Nginx是俄罗斯人Igor Sysoev编写的轻量级Web服务器,它的发音为 [ˈendʒɪnks] ,它不仅是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。

根据Netcraft的数据,截至2020年9月,Nginx在为25.76%的最繁忙站点提供服务或代理服务。例如一些成功案例:Dropbox, Netflix, Wordpress.com, FastMail.FM。

1.1. 安装部署Nginx服务

Windows环境下安装简明过程如下:
下载Nginx最新Windows操作系统下的稳定版本,http://nginx.org/en/download.html。
例如:http://nginx.org/download/nginx-1.18.0.zip
直接解压到D盘下,修改文件夹名为Niginx,在如下命令行窗口中输入nginx运行启动服务。

1.2. 目录结构说明

在Windows环境下,安装后目录结构说明如下:

  • conf 配置文件目录
文件名称 说明
fastcgi.conf #fastcgi程序相关配置文件
fastcgi_params #fastcgi程序参数文件
koi-utf #编码映射文件
koi-win #编码映射文件
mime.types #当 Web 服务器收到静态的资源文件请求时,依据请求文件的后缀名在服务器的 MIME 配置文件中找到对应的 MIME Type,再根据 MIME Type 设置 HTTP Response 的Content-Type,然后浏览器根据 Content-Type 的值处理文件
nginx.conf #Nginx 服务配置文件
scgi_params #scgi程序相关配置文件
uwsgi_params #uwsgi程序相关配置文件
win-utf #编码映射文件
  • html 默认解析的静态文件目录,静态网页
  • logs 日志目录
文件名称 说明
access.log 访问日志,包含所有访问记录
error.log 错误日志,包含访问出错的记录
nginx.pid Nginx 运行的进程号,同ps -ef

1.3. 配置Nginx服务

配置Nginx服务主要是通过nginx.conf文件来完成的,默认配置如下:

    server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;#try_files $uri $uri/ @router; }

1.4. 启停Nginx服务

Nginx服务默认端口是80,在浏览器中输入http://localhost,看到如下提示,服务安装启动成功。

停止nginx,命令行进入nginx根目录,执行如下命令,停止服务器:

# 启动nginx服务
D:/nginx>start nginx
# 或
D:/nginx>nginx
#注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。# 强制停止nginx服务器,如果有未处理的数据,丢弃
D:/nginx> nginx -s stop# 优雅的停止nginx服务器,如果有未处理的数据,等待处理完成之后停止
D:/nginx> nginx -s quit

2. Vue 部署

Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

下载VUE包,VUE下载地址:https://codeload.github.com/vuejs/vue/zip/2.6。
可以单独下载开发版:https://cn.vuejs.org/js/vue.js,文件体积大,提供错误提示等,包含完整的警告和调试模式。
可以单独下载运行版:https://cn.vuejs.org/js/vue.min.js,删除了警告,33.30KB min+gzip。

2.1. 部署Vue到Niginx服务器上

手动部署VUE,只需把下载Vue包中的dist目录整体拷贝到html文件夹下,再把相关例子examples文件也拷贝到html文件夹下,这样,就可以查看Vue例子。

注意代码中引用js文件的路径,例如<script src="../../dist/vue.min.js"></script>,“dist”目录层次及名称要与样例的保持一致,默认是在html,也就是根目录下。

例如:输入http://localhost/examples/grid/

2.2. 我自己的网页

假设你已了解关于 HTML、CSS 和 JavaScript 的中级知识。如果你刚开始学习前端开发,将框架作为你的第一步可能不是最好的主意——掌握好基础知识再来吧!之前有其它框架的使用经验会有帮助,但这不是必需的。

下面是我自己试验网页,多个复选框,绑定到同一个数组。

<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8"><title>我自己的网页</title><link rel="stylesheet" href="style.css"><!-- Delete ".min" for console warnings in development --><script src="../../dist/vue.min.js"></script></head><body><div id="app">{{ message }}</div><div id='example-3'><input type="checkbox" id="jack" value="汽油" v-model="checkedNames"><label for="jack">汽油</label><input type="checkbox" id="john" value="柴油" v-model="checkedNames"><label for="john">柴油</label><input type="checkbox" id="mike" value="乙醇" v-model="checkedNames"><label for="mike">乙醇</label><br><span>Checked names: {{ checkedNames }}</span></div><script >new Vue({el:'#app',data: {message:'您好!这是我演示VUE使用的!'}});new Vue({el: '#example-3',data: {checkedNames: []}})        </script></body>
</html>

数据绑定最常见的形式就是使用 {{…}}(双大括号)的文本插值

把这个网页命名为index.html,放在Nginx服务器根目录html下。浏览器输入:http://localhost/

2.3. 部署vue-echarts/demo

vue-echarts是基于echarts封装实现的一个组件库,直接按照正常的组件引用方式,安装引用即可。

vue-echarts下载地址,https://github.com/ecomfe/vue-echarts/archive/master.zip

拷贝vue-echarts-master文件包下,dist文件夹下的vue-echarts.js文件到Nginx服务器html/dist文件夹下;拷贝demo文件目录到html。在浏览器上输入http://localhost/demo/

3. Tornado Web框架

Tornado是一个Python web框架和异步网络库,最初是在FriendFeed开发的。通过使用无阻塞网络I/O,Tornado可以扩展到数万个开放连接,使其成为长时间轮询、WebSocket和其他需要与每个用户建立长期连接的应用程序的理想选择。

D:\Python>pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tornado

参考:
《Tornado》 简书 ,JunChow520 , 2019年7月
Tornado Web Server
《Nginx安装及配置详解包括windows环境》 博客园 ,霞光里 ,2018年5月
《Vue 之 Nginx 部署》 博客园 , DreamTestEngineer ,2019年10月
《Vue项目部署–nginx配置》 吴惟刚个人博客网站 , 吴惟刚 ,2020年5月
Vue-ECharts

Nginx+Vue.js+Tornado前后端分离架构环境实践(1)相关推荐

  1. vue 新建的页面如何访问_Vue.js—实现前后端分离架构中前端页面搭建(四)(完)...

    [Vue.js实现前后端分离架构中前端页面搭建] 二十.实现服务端登录业务 前提:已经有单机版Eureka,端口8761.启动开Eureka 1. 新建父项目 新建backend_parent. 为了 ...

  2. Spring Boot + Vue.js 实现前后端分离(附源码)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者: 梁小生0101 链接:juejin.im/post/5c6 ...

  3. ASP.NET Core 实战:使用ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目

    一.前言 这几年前端的发展速度就像坐上了火箭,各种的框架一个接一个的出现,需要学习的东西越来越多,分工也越来越细,作为一个 .NET Web 程序猿,多了解了解行业的发展,让自己扩展出新的技能树,对自 ...

  4. 前后端分离跨服务器文件上传,SpringBoot+Vue.js实现前后端分离的文件上传功能

    这篇文章需要一定vue和springboot的知识,分为两个项目,一个是前端vue项目,一个是后端springboot项目. 后端项目搭建 我使用的是springboot1.5.10+jdk8+ide ...

  5. Node.js + Express + Springboot实现前后端分离架构

    2019独角兽企业重金招聘Python工程师标准>>> 架构说明 前后端分离架构,很多团队都是通过"代理转发"浏览器发往后端的rest请求来解决跨域问题,可以用n ...

  6. 前后端分离架构一直没机会实战?1周完成Vue+Core WebApi移动商城实战(含源码)!...

    疫情让企业受到重创! 就业形势更加严峻! 前后端分离架构成了当下最高频的招聘需求 还没实战过前后端分离? 花3分钟阅读本文, 带你全面了解前后端分离,轻松面试拿高薪! Web发展至今技术非常成熟,主流 ...

  7. 用uwsgi和nginx 部署 django和vue打造的前后端分离项目

    用uwsgi和nginx 部署 django和vue打造的前后端分离项目 前言 由于现在没有彻底掌握nginx的使用,部署起来有点磕磕绊绊,为了防止以后再次需要部署的时候无法快速找到适合的资料,以此文 ...

  8. spring boot+iview 前后端分离架构之文件上传的实现(三十一)

    spring boot 与 iview 前后端分离架构之文件上传的实现(三十一) 公众号 文件上传 前端改造 main.js引入配置的全局变量 编写baseImgUpload图片上传组件 baseIm ...

  9. JavaWeb前后端分离架构

    目录 JavaWeb前后端分离架构 前后分离的优势 在本机中部署项目 关于验证 Cookie & Session Token & JWT token验证流程 JWT的构成 JWT搭建使 ...

最新文章

  1. 浅谈android的事件分发机制
  2. JDK1.6官方下载
  3. java 读文件夹_java怎么读取读取文件夹下的所有文件夹和文件?
  4. 魅族MX4的线控电路图
  5. html 按钮 按下 状态_科普|你身边的手动火灾报警按钮,您了解吗?
  6. python下载url_三种Python下载url并保存文件的代码详解
  7. python定义对象的比较方法
  8. Linux系统的启动过程(转)
  9. python3.7怎么设置中文_Python3.7中文字符编码问题
  10. 公司使用 Qt 到底要不要付费?| 博文精选
  11. java rmi 规范学习
  12. [转]OAuth 认证步骤
  13. 响应式织梦模板酒店客房类网站
  14. 读书笔记(穷查理宝典)
  15. 各场景下NetApp的数据备份推荐(Veeam+群晖NAS)
  16. route路由失败,为何?
  17. 苹果再推7寸超级iPhone7,iPad何去何从?
  18. 使用vue-admin-template搭建简单增删改查导入导出项目及CentOs服务器部署
  19. 行人仿真仿而不真——基于NetLogo与MatLab仿真行人运动
  20. 舆情传播的全过程如何监控监测?

热门文章

  1. 第二十一天- 基本模块
  2. Vue进阶(七十八):Vue 定时器与 JS 定时器
  3. 2019年最强大的十大机器学习python库
  4. UWB室内人员定位技术闯进我们的生活,室内定位更加精准-新导智能
  5. Android App跳转微信小程序
  6. 腾讯qq2014官方正式版 v5.3.10723 免费版
  7. 在小程序扫码的方式拿到太阳码的路径
  8. centos7重启php环境
  9. CodeMix使用教程:调试
  10. Ubuntu下官方QQ崩溃的解决