Vue+Flask部署到阿里云服务器

摘要:
本文档用于记录在阿里云部署Vue+Flask组合的详细过程。root@heymiss:/home/dc/heymiss/hymiss服务器#.venv/bin/activateroot@heymiss:/home/dc/heymass/heyass-server#通过xftp工具将本地Flask项目代码复制到服务器的Flask项目目录中。要安装nginx,需要退出virtualenv的虚拟环境并在xshell下执行deactivateroot@heymiss:/home/dc/heymiss/hymiss服务器#deactivateroot@heymiss:/home/dc/heymiss/hymiss-server#然后安装nginx。sudoapt-geinstallnginx安装成功后,切换到nginx目录,root@heymiss:/home/dc/heymiss/hymiss服务器#cd/etc/nginx/sites可用/root@heymiss:/etc/nginx/sites available#首先备份nginx-sudocpdefault.bak的默认配置,然后修改配置root@heymiss:/etc/nginx/sites available#videofault被修改为以下内容并保存为服务器{listen80;#阿里云添加安全组规则端口80server_name14.215.177.38;#域名或公共网络IProot/home/dc/heymass/data;indexindex.html;location/{root/home/dic/heymas/data;try_files$uri$uri/index.html;indexindex.html;}服务器{listen8081;#阿里云添加安全组规则端口8081server_name 14.215.177.38;#域名或公网IP位置/{proxy_passhttp://127.0.0.1:8080#指向gunicornhost_set_headerHost$host的服务器地址代理;proxy_set_headerX转发给$proxy_add_x_Forwarded_For;}}将14.215.177.38更改为您自己的IP或域名。

本文用于记录自己在阿里云部署Vue+Flask组合的详细过程。

在阿里云部署Vue+Flask组合的前提是已经在自己电脑上成功部署,参考:https://minatsuki-yui.github.io/2018/01/04/vue&flask/?from=timeline

阿里云ECS建网站基础配置,参考:https://www.jianshu.com/p/2604e53a7f6a?from=singlemessage

Python环境配置

阿里云服务器中已经存在Python2.7和Python3.5版本,默认Python环境是Python2.7,因为我需要使用的是Python3.5版本,所以需要将默认环境设置成Python3.5

使用alternatives机制修改默认Python环境

xshell里执行

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

执行后再执行python --version查看当前Python版本

root@heymiss:/usr/bin# python --version
Python 3.5.2

下面安装pip,xshell里执行

sudo apt-get update
sudo apt-get install pip

此时执行pip --version,pip已经安装成功

root@heymiss:/home/dc/heymiss/heymiss-server# pip --version
pip 9.0.3 from /usr/local/lib/python3.5/dist-packages (python 3.5)

Flask环境配置

参考:http://www.pythondoc.com/flask-mega-tutorial/helloworld.html

root@heymiss:/home/dc/heymiss/heymiss-server# virtualenv --version
15.2.0

阿里云服务器已经默认安装了virtualenv,我没有再在服务器上通过命令创建虚拟环境,而是将我本地项目已经创建好的虚拟境文件夹venv拷贝到服务器Flask项目下,然后通过命令激活。

root@heymiss:/home/dc/heymiss/heymiss-server# . venv/bin/activate
(venv) root@heymiss:/home/dc/heymiss/heymiss-server# 

通过xftp工具将本地Flask项目代码拷贝到服务器Flask项目(heymiss-server)目录下。

Vue+Flask部署到阿里云服务器第1张

然后在虚拟环境激活的前提下安装需要的模块,例如:

root@heymiss:/home/dc/heymiss/heymiss-server# . venv/bin/activate
(venv) root@heymiss:/home/dc/heymiss/heymiss-server# pip install flask

配置Nginx、Gunicorn

nginx是一个高性能的HTTP和反向代理服务器。gunicorn是一个Python WSGI UNIX的HTTP服务器,能够与各种WSGI WEB框架协作。

在虚拟环境激活状态下,安装gunicorn。

pip install gunicorn

然后在入口文件的app.run()加上

from werkzeug.contrib.fixers import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app)

加完后的内容如

#run.py
from
app import app if __name__ == '__main__': from werkzeug.contrib.fixers import ProxyFix app.wsgi_app = ProxyFix(app.wsgi_app) app.run()

然后命令行启动gunicorn,gunicorn -w 4 -b 127.0.0.1:8080 入口文件名:app,需要注意的是需要切换到项目目录(入口文件目录)下执行命令。(本项目入口文件是run.py)

gunicorn -w 4 -b 127.0.0.1:8080 run:app

这样就可以启动4个进程同时处理HTTP请求,提高系统的使用效率和性能。还可以把端口8080改为其他。

安装nginx需要退出virtualenv的虚拟环境,在xshell下执行deactivate即可

(venv) root@heymiss:/home/dc/heymiss/heymiss-server# deactivate
root@heymiss:/home/dc/heymiss/heymiss-server# 

然后安装nginx,

sudo apt-get install nginx

安装成功后,切换到nginx目录,

root@heymiss:/home/dc/heymiss/heymiss-server# cd /etc/nginx/sites-available/
root@heymiss:/etc/nginx/sites-available# 

先备份nginx的默认配置

sudo cp default default.bak

然后修改配置

root@heymiss:/etc/nginx/sites-available# vi default

修改成以下内容并保存(需要熟悉简单的vi操作指令)

server {
        listen 80; #阿里云添加安全组规则端口80
        server_name 14.215.177.38; #域名或者公网IP
        root /home/dc/heymiss/data;
        index index.html;

        location / {
           root /home/dc/heymiss/data;
           try_files $uri $uri/ /index.html last;
           index index.html;
        }

}

server {
       listen 8081; #阿里云添加安全组规则端口8081
       server_name 14.215.177.38; #域名或者公网IP

       location / {
          proxy_pass http://127.0.0.1:8080; #指向gunicorn host的服务器地址
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }

}

将14.215.177.38修改为自己的ip或者域名。配置修改完,检查下配置。

root@heymiss:/etc/nginx/sites-available# nginx -t

如果出现以下内容,则配置成功。

root@heymiss:/etc/nginx/sites-available# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

配置成功后,启动或重启nginx。

sudo service nginx restart

Vue项目Build并上传到服务器

使用WebStorm工具打开Vue项目,修改Vue项目中请求服务器的地址和端口,地址是阿里云服务器的域名或IP,端口是在nginx配置的8081(可以是其他端口,有些端口备案后才可以正常使用),修改config/prod.env.js内容(将'ip'换成正确的域名或IP地址):

'use strict'
module.exports = {
  NODE_ENV: '"production"',
  URL_PATH: '"http://ip:8081"'
}

Vue项目中请求服务器接口示例:

this.$http.request({
     method: 'post',
     url: process.env.URL_PATH + '/test/',
     data: {
        //请求参数 
     }
     }).then(function (response) {
          
     })

此处使用的端口除了在nginx配置外,也需要在阿里云后台安全组规则中添加8081端口和80端口。

Vue+Flask部署到阿里云服务器第2张

配置完成后,在WebStorm工具中按照下图执行build操作

Vue+Flask部署到阿里云服务器第3张

build操作完成后,会在项目dist文件夹下生成index.html文件和static文件夹,将dist文件夹下所有文件通过xftp工具上传到服务器/home/dc/heymiss/data目录下,该目录必须保证和nginx配置目录相同。

 Vue+Flask部署到阿里云服务器第4张

然后就可以在浏览器中输入域名或者IP访问网站了。

Vue+Flask部署到阿里云服务器第5张

输入账号和密码,点击“登录”,登录成功并跳转。

以上内容大部分整理自互联网,本人根据自己的实际需求稍加修改。

免责声明:文章转载自《Vue+Flask部署到阿里云服务器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C++ _access和_waccess的使用方法一种极简的异步超时处理机制设计与实现(C#版)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Nginx反向代理WebSocket链接失败问题

问题记录:本地socket测试无误后部署发现 WebSocket connection to "xxx/xxx" failed  解决方案: 在nginx.conf的http模块添加如下内容 map $http_upgrade $connection_upgrade { default upgrade; '' close; } 其...

Let's Encrypt的HTTPS证书在阿里云OSS内部署

最重要的就是找到pem格式的公钥和私钥文件。 Let's Encrypt的HTTPS证书中包含的公钥文件在certificate.crt内,全部复制即可。 Let's Encrypt的HTTPS证书中未提供RSA私钥格式,需要自己手动转换。 转换过程如下 openssl rsa -in private.pem -out new_server_key.pem...

树莓派更换阿里云源

我的树莓派使用的jessie系统: 1、打开文件 sudo nano /etc/apt/sources.list 2、编辑文件 将原来的deb.......和deb-src......两行注释掉 或者直接在这两行修改 debhttp://mirrors.aliyun.com/raspbian/raspbian/jessie main contrib non...

手把手教你用Jenkins CI 自动部署Docker + 使用阿里云镜像服务自动构建+ webhook触发

Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略.... 嗯?不是说好手把手么?你妹的. 好好好,我们还是来手把手教程好了. 首先安装JDK8 添加安装源之后直接apt-get install就好,下面是ubuntu的安装命令,其他系统...

完美日记:实现高弹性高稳定电商架构

公司简介 完美日记(Perfect Diary)是广州市“独角兽”创新企业——广州逸仙电子商务有限公司旗下首个美妆品牌,创立于2017年,用心为新生代女性开发高品质、精设计、易上手的彩妆及护肤产品,立志于打造有国际影响力的Chinese Beauty Icon。 完美日记上线不到两年即成为天猫彩妆销冠,2019年成为11年来第一个登上天猫双十一彩妆榜首的国...

naginx安装入门

一.nginx是什么 nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件。它是一个俄罗斯人lgor sysoev开发的,作者将源代码开源出来供全球使用。 nginx比它大哥apache性能改进许多,nginx占用的系统资源更少,支持更高的并发连接,有更高的访问效率。 nginx不但是一个优秀的web服务软件,还可以作为反向代理,负载均衡,...