在Ubuntu服务器中运行Flask
本文最后更新于 179 天前,其中的信息可能已经有所发展或是发生改变。

有需要在服务器上搭建一个Flask服务,于是采用Flask + Gunicorn + Nginx方案,特此记录。

首先需要有一个conda环境(或者使用python-virtualenv)和nginx,本文使用的是miniconda3。

还没有安装Conda的请自行百度。

然后安装 nginx

$ sudo apt-get install nginx

在 /var/www 目录下建立一个 flask_server 的文件夹(你的项目目录),然后用 chmod 改一下权限

$ sudo mkdir /var/www/flask_server
$ sudo chmod 777 /var/www/flask_server

接下来创建一个conda虚拟环境flask_server

$ conda create -n flask_server python=3.9

安装完后激活环境

$ conda activate flask_server

这里顺便提一嘴,创建完的环境的python可执行文件在miniconda安装目录下的env/flask_server/bin目录里面,等会要用到这个。

Gunicorn 绿色独角兽 是一个Python WSGI UNIX的HTTP服务器。接下来使用pip来安装

$ pip install gunicorn

接下来定位到/var/www/flask_server目录下面,开始编写flask服务的程序文件main_server.py


# main_server.py
from flask import Flask

def create_app():
  # 这个工厂方法可以从你的原有的 `__init__.py` 或者其它地方引入。
  app = Flask(__name__)
  return app

app = create_app()

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

保存之后就可以开始运行gunicorn啦

// gunicorn -w 4 -b 127.0.0.1:8080 [Python程序文件名(不带.py)]:[Flask服务变量名]
(flask_server) $ gunicorn -w 4 -b 127.0.0.1:8080 main_server:app

接下来开始改nginx的配置文件,直接在/etc/nginx/conf.d/目录下创建新的配置文件。

$ sudo vim /etc/nginx/conf.d/flask_server.conf

输入以下内容

server {
    listen 80;                              #监听端口
    server_name dbapi.chzt2.cn;               #绑定域名
    root /var/www/flask_server/;       #网站根目录,建议使用绝对路径
    # rewrite ^(.*)$  https://$host$1 permanent; #用于将http页面重定向到https页面

    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;
    }

    #添加错误页面,利于搜索引擎收录以及良好的用户体验
    error_page 404 /404.html;
    location /404.html {
        root /usr/local/nginx/html/;
    }

    error_page 500 502 503 504 /50x.html;
    location =/50x.html {
        root /usr/local/nginx/html/;
    }
}

然后重启nginx就搞定了。

systemctl restart nginx.service

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇