Flask+阿里云ECS+Nginx 搭建后台服务器 域名解析+响应简单http+转发访问https请求

Flask部分

一、新建Flask工程

(系统学习flask开发可到2022版-零基础玩转Python Flask框架-学完可就业_哔哩哔哩_bilibili

1,打开pycharm - New Project - Flask工程

2,编写下面代码(上面有些库是另外的一个接口要用的,此例没用):

# 从flask包中导入Flask对象
import base64

import numpy as np
import torch
from model import Generator

import cv2
from flask import Flask, render_template, request, json
import config

from Animegan2Args import args

# 使用Flask创建一个app对象,并且传递__name__参数
app = Flask(__name__)

# 以后所有的配置项都是放到config.py中
app.config.from_object(config)

# @app.route: 设置访问的url,这里是设置成一个根路径
@app.route('/')
def hello_world():  # put application's code here
    # return 'Hello aweizeng !!'
    return {"username": "知了"}



@app.route('/about')
def about():
    context = {
        'username': "zzw"
    }
    return render_template("about.html", **context)

if __name__ == '__main__':
    app.run(debug=True)

3,运行flask框架 debug模式 在本机浏览器打开 调试地址:

4,调试结果如下,正常:

 flask部分暂时先开发到这里。


阿里云ECS环境部署

一、购买服务器并加入安全组

1,登录阿里云网址:阿里云-上云就上阿里云 , 注册并登录。

2,购买对应的服务器 ,这里我选择的是 Ubuntu 系统

3,购买完毕后,可登入控制台,查看 服务器ECS实例,可以看到公有IP是 47.242.255.1 :

 4,左侧 选择 安全组 - 创建 安全组 - 把一些可能用到的端口开放。

 

 5,返回服务器ECS实例, 并加入安全组

6,创建 密钥对 并 绑定服务器ECS实例。此时会自动下载 pem 密钥文件。

 二、ssh连接服务器

1,下载安装 ssh连接工具,推荐 xftp 、 xshell 工具。

xftp 是用来复制拷贝文件到服务器的工具。

xshell 是用来控制服务器命令的工具。

2,打开xshell 和 xftp ,新建会话: 

以root用户登录,主机地址填写服务器的公有IP。

此时点击确定后,会提示让你输入密钥对文件。 选择上面下载好的pem密钥对文件就可以。

3,如下图,则连接服务器成功。

三,Flask工程部署到服务器上

1,利用xftp工具 ,把刚才的flask工程传输过去 服务器的 /home 地址上,如图:

 2,利用xshell ,转到 /home 下后,执行 命令:

python3 app.py

3,看错误提示,并安装py对应的库

pip install flask
pip install numpy
pip install torch
pip install opencv-python

4,解决完所有库引用错误后,重新运行py脚本:

可以看到 我们的flask工程已经部署完成,并运行到服务器上了。

5,在本机浏览器上输入 http://47.242.255.1:5000/ 。可以看到以下结果:

发生以上错误是 因为 flask工程 部署的host没有设置对。

重新在服务器上修改一下 flask工程上的app.py 。

6,先 ctrl + c 退出flask工程。

再 vim app.py 

输入 i 。进入编辑模式:

 修改 host为"0.0.0.0"

输入 esc,再 输入 :wq 保存并退出vim模式

7,重新运行 app.py 和 本机测试 http://47.242.255.1:5000/ 结果。

可以看到此时正常了。 


域名解析

1,进入阿里云 - 域名注册

2,注册完成后,进入域名控制台 - 域名解析。

(我的域名注册为 liliwei.top )

3, 解析设置 - 添加记录 - 把 服务器ECS的公有IP输入。

 4,这时候 如果我们想 访问域名=访问我们flask工程 ,先运行 我们的flask工程:

python3 app.py

然后 本机浏览器上输入 http://www.liliwei.top:5000/

5,如果我们想直接用域名访问到我们的flask工程(不加端口号),则需要 修改一下 app.py:

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=80, debug=True)

6,在本机浏览器上输入 http://www.liliwei.top:/

 可以看到 域名已经解析成功 ,访问到我们的服务器上了。


搭建Nginx环境,转发https请求

一、申请ssl证书

1,登录阿里云网址 - SSL证书 - 选购

2,配置证书,绑定域名

3,下载证书,环境选择Nginx。

 

 4,下载后解压。得到证书的密钥文件。

 

5,通过xftp把证书放到服务器上,如图,这里我放去了 工程里的 新建的 cert/Nginx 文件夹。

二、搭建Nginx环境

1,在服务器命令中输入:

apt-get install nginx

2,如图,搭建Nginx环境成功。 

3,由于Nginx的访问和我们flask工程的访问端口号冲突了。都是80。所以接下来我们需要配置一下Nginx的配置,来做请求的转发。

新建个配置文件 nginxhttps.conf:

#二级域名
server {
        listen 443 ssl ;
        server_name liliwei.top; # 这是申请证书时候的域名
        # 把你的pem文件和key文件的目录下载下面
        ssl_certificate      /home/01study/cert/Nginx/7234605_www.liliwei.top.pem;
        ssl_certificate_key  /home/01study/cert/Nginx/7234605_www.liliwei.top.key;
        ssl_session_timeout  5m;

        ssl_protocols  SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2 ;
        ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers   on;

        location / {
        	#下面的3333端口就是uwgsi的http端口
                proxy_pass http://127.0.0.1:5000;
                add_header Access-Control-Allow-Origin *;
                # 当然由于这里只是转发请求,所以没有跳转index
                # 如果需要跳转index页面的话需要加上root和index路径
        }
}

可以看到,我们用nginx转发的 host地址是 127.0.0.1 端口号是 5000. 

4,用 xftp 把 nginxhttps.conf 放到 服务器的Nginx的配置文件夹上 地址为:

5,重启下 nginx 。

service nginx restart

三,修改Flask工程中的运行地址

1,由于我们转发的地址是 127.0.0.1:5000 。所以我们的flask工程的app.py 也需要修改一下:

if __name__ == '__main__':
    app.run(host='127.0.0.1', port=5000, debug=True)

2,运行工程 并 本机浏览器访问 https://www.liliwei.top/ 。

 至此,https请求正常!

猜你喜欢

转载自blog.csdn.net/DeveloperZZW/article/details/123046189