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

本文用于记录自己在阿里云部署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版本

[email protected]:/usr/bin# python --version
Python 3.5.2

下面安装pip,xshell里执行

sudo apt-get update
sudo apt-get install pip

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

[email protected]:/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

[email protected]:/home/dc/heymiss/heymiss-server# virtualenv --version
15.2.0

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

[email protected]:/home/dc/heymiss/heymiss-server# . venv/bin/activate
(venv) [email protected]:/home/dc/heymiss/heymiss-server# 

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

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

[email protected]:/home/dc/heymiss/heymiss-server# . venv/bin/activate
(venv) [email protected]:/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.pyfrom 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) [email protected]:/home/dc/heymiss/heymiss-server# deactivate
[email protected]:/home/dc/heymiss/heymiss-server# 

然后安装nginx,

sudo apt-get install nginx

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

[email protected]:/home/dc/heymiss/heymiss-server# cd /etc/nginx/sites-available/
[email protected]:/etc/nginx/sites-available# 

先备份nginx的默认配置

sudo cp default default.bak

然后修改配置

[email protected]:/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或者域名。配置修改完,检查下配置。

[email protected]:/etc/nginx/sites-available# nginx -t

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

[email protected]:/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端口。

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

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

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

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

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

原文地址:https://www.cnblogs.com/doocool/p/8847288.html

时间: 2024-10-06 00:02:04

Vue+Flask部署到阿里云服务器的相关文章

如何把php项目部署到阿里云服务器window server2012__含公网ip访问时jquery/ajax失效解决办法

记一次蛋疼的折腾. 弄了一晚上最后发觉是360浏览器的问题,换个浏览器就好了.垃圾360用什么IE7文档模式.导致界面和功能失效. 建议大家测试的时候用firefox或者chrome. 项目部署到服务器后360浏览器兼容模式显示错误的解决办法:http://www.cnblogs.com/zj917/p/6697724.html -------------------------------------------------- 正文: 上篇博客说临时起意做了个有意思的聊天版,就想把它部署到阿里

javaWeb项目部署到阿里云服务器步骤

记录web项目部署到阿里云服务器步骤 (使用 web项目.阿里云服务器.Xftp.Xshell),敬请参考和指正 1.将要部署的项目打包成WAR文件格式,可以在MyEclipse.Eclipse都可以完成打包,如下图: 2.安装Xshell和Xftp两种软件 简单介绍下这两种软件作用(详情请百度相关文档) Xshell:通过网络连接到远程服务器主机. Xftp:能在Linux.Unix和Windows之间互传文件. 3.通过Xshell连接远程主机,如下图    4.创建会话完成,点击连接,显示

将web项目部署到阿里云服务器上

将web项目部署到阿里云服务器(ubantu14.0.14)上的一般流程: 1.下载putty.在host name栏输入远程服务器ip地址,端口默认为22.阿里云服务器可以通过控制台查看公网ip地址,点击open进行连接 2.输入用户名和密码后进入dos界面,用apt-get update 命令更新,否则很多东西安装不了 3.安装vsftpd服务,通过命令apt-get vsftpd安装,注意 这里的ftp和之后的Tomcat.MySQL数据库端口在阿里云服务器中是默认关闭的,需要进入阿里云控

Java Web项目部署到阿里云服务器(ECS)

本篇随笔只是记录博主第一次将自己的Java项目部署到阿里云服务器的大致过程,具体细节还请参考别的博文. 一.项目介绍 我做的项目是利用maven项目构建工具进行搭建基于SSM框架的代码共享管理系统,主要功能是发布相关博文,对博文进行CRUD操作...所以说也算是个入门的SSM项目. 二.域名以及ECS 由于想要将自己的项目发布到公网上,所以首先想到的是去购买一个域名,于是到了阿里云计算官网上购买了万网的域名,过程比较简单:首先注册阿里云账号并进行相关的实名认证,在控制台中的信息模板进行实名认证,

将javaweb项目部署到阿里云服务器

主要步骤:1. 购买阿里云服务器2. 远程连接3. 在云服务器上配javaweb环境:jdk,tomcat,MySQL4. 将项目的war文件放到Tomcat下关于云服务器ECS:如果还想在买服务器之后,再买域名.买的服务器时间就要至少三个月,因为剩余时间 3 个月及以上的实例才能申请备案服务号.一.阿里云服务器1. 我买的学生优惠版服务器,先登录阿里云官网,进行学生身份认证.因为支付宝之前已经学生认证过了,所以可以一键认证,省了很多步骤.2. 下载阿里云app,在学生专区购买云服务器.先选择操

将项目部署到阿里云服务器

首先在阿里云官网注册一个账号,用支付宝注册比较快,之后购买一台阿里云服务器,新人有优惠价,我选择了1M,1G的,100出头,也可以团购,一般比较便宜,购买之后,登录自己的阿里云账号,查看提货券,选择配置,提交,等上一小段时间,阿里云会发送短信通知,您的阿里云服务器的一些信息(实例名称.公网ip.用户名,还会引导你设置实例密码). 那么第一步我想进入我的远程服务器看看,登录阿里云,进入控制台,点击云服务器ECS,进入实例列表,没有实例需要先创建实例,更多里面可以设置远程连接密码和实例密码,可以点击

如何将APP部署在阿里云服务器

1,APP应用需要什么样的云服务器? 为了帮助大家了解如何使用阿里云云服务器及相关应用,阿里云的移动云团队开发了一个简单的APP应用:移动云相册,其中使用了ECS主要用作部署云相册的API服务(图片信息调用.图片列表调用)和图片缩略图处理,因为这个应用服务端使用了JAVA语言开发,因此在上面安装tomcat来部署应用.具体部署1)远程登录:第一次购买ECS后,会把该ECS服务器的root账号.密码发送购买者的邮箱,然后购买者可以通过远程登录到ECS服务器,具体远程登录可以参考如下:Windows

小程序后端项目【Springboot框架】部署到阿里云服务器【支持https访问】

前言: 我的后端项目是Java写的,用的Springboot框架.在部署服务器并配置https访问过程中,因为做了一些令人窒息的操作(事后发现),所以老是不能成功. 不成功具体点说就是:域名地址可以正常访问(http/https均可),而部署在服务器上的API仍然只能通过http访问,通过https访问会显示不安全连接! 通过提交工单,得到阿里云工作人员的帮助,他们给出了答案: 然后我想,我好像知道是咋回事了呢. 1. Springboot框架是内嵌有tomcat的!!我只是把项目打成Jar包放

docker 部署公司阿里云服务器 (一)

持续更新... 背景环境: 阿里云ecs服务器 centos7.4          公网地址:xx.xx.xx.xx      内网地址:172.16.77.4 阿里云RDS 阿里云 Redis 第一步:安装docker #配置yum源,并开始安装wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo sed -i 's#download.