linux web服务器搭建 python flask + mysql + uwsgi + nginx --- 项目配置

1. Flask配置

virtualenv

 

sudo pip install virtualenv
mkdir projects
cd projects
virtualenv venv

git clone

git clone 'xxxxxxxxxx'

   导入项目使用的包

pip install -r requirement.txt

2. 数据库导入

  之前已经dump了数据库了,现在直接导入

mysql  -uroot -pyourpassword
create database xxx default charset utf8mb4;
use xxx;
source xxx/xxx/xxx.sql; # 导入之前到处的数据库

3. vscode 配置

  安装python插件

插件: python
来自 Microsoft

4. uwsgi

sudo pacman -S uwsgi
# 还需要一个插件
sudo pacman -S uwsgi-plugin-python
# 配置
[uwsgi]
# 工作路径
chdir=/home/iangong/Projects/Starry
# python 路径
home=/home/iangong/Projects/venv
# py入口文件
wsgi-file=/home/iangong/Projects/Starry/manager.py
# 入口 application
callable=app
# 是否启动master进程
master=true
# worker进程数量
processes=1
# 每个进程的线程数
threads=2
# 生成用于通讯的socket,如与nginx进行通讯
#socket=/home/iangong/Projects/Starry/starry.sock
# 监听地址和端口, 当与nginx一起用时,这里不能监听,要交给nginx
http-socket=127.0.0.1:7799
# 存放进程id的文件
pidfile=/home/iangong/Projects/Starry/starry.pid
# 统计查看端口
stats = 127.0.0.1:7800
# 开启多线程
enable-threads=true
# master进程记录进log
log-master=true,
# preload 官方没有查到用法,是在网上看到的用来解决apscheduler不能运行的问题
#preload=true
# 描述不是很清楚,没有理解。但是可以让apscheduler正常运行
lazy-apps=true
# log
daemonize=/home/iangong/Projects/Starry/logs/starry.log
# python插件
plugin=python
# 
threaded-log = true

5. nginx

 安装

sudo pacman -S  nginx

配置

# 安装 nginx
sudo pacman -S nginx
# 在默认配置文件中包含自己的配置
sudo vim /etc/nginx/nginx.conf
# 在keepalive 后面插入
include /conf.d/*.conf;

# 创建conf.d 文件夹
sudo mkdir /etc/nginx/conf.d

sudo vim /etc/nginx/conf.d/xxx.conf

#输入下面内容
server{
    listen 80;
    server 127.0.0.1;
    
    location / {
        include uwsgi_params;
        uwsgi_pass http://127.0.0.1:7799;
    }

    location /static/ {
        alias ~/xxx/xxx/static/;
        expires 1d;
    }
}

# 设置nginx自己启动
systemctl enable nginx
# 启动nginx
systemctl start nginx

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章