欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux笔记:使用uWSGI将python项目发布到linux服务器上

程序员文章站 2022-06-18 23:18:01
...

检查服务器软件环境

  • $apt update 安装软件之前的通用操作
  • $python3 -V 检查是否安装python3
  • $pip3 -V 检查是否安装pip3
  • $apt install python3 如果没有,则执行安装
  • $apt install python3-pip 如果没有,则执行安装
  • $pip3 install django 安装django框架

使用django创建一个简单的项目

1 ) 创建项目

django-admin startproject demo
cd demo/
ls
demo manage.py
cd demo
__init__.py settings.py urls.py wsgi.py

2 ) 编辑urls.py

from django.http import HttpResponse # 导入response

# 修改路由配置, 注意高版本的路由写法可能不一样, 此处只做举例
urlpatterns = [
    path('', lambda request: HttpResponse("Hello World")),
]

3 ) 测试运行程序

  • $python3 manage.py runserver 服务器运行起来了

4 ) 支持远程访问

  • 将刚才测试的服务结束掉
  • 编辑配置文件 $vi demo/settings.py 文件
    • 开启:ALLOWED_HOSTS = ['*']
  • 重新运行服务器:$python3 manage.py runserver 0.0.0.0:8080
  • 在其他电脑上通过ip地址访问:服务器ip:8080 Hello World 即可正常响应

5 ) 注意

  • django自带的server只能用于开发环境,性能较差
  • 生产环境推荐uWSGI软件

安装和使用uWSGI

  • uWSGI 是c语言写的专业的web服务器,性能强悍
  • 安装uWSGI, $pip3 install uwsgi
  • 启动调试uWSGI, $uwsgi --http :9090 --chdir /rootdemo --module demo.wsgi
    • 这种方式用于调试
    • --http: 表示 表示要开启一个http的服务, 指定的访问地址(端口), 默认没有ip表示本服务器
    • --chdir: 表示 指定项目的目录
    • --module: 表示 指定运行的模块
  • 后台运行服务并开启日志的方法: $uwsgi --http :9090 --chdir /rootdemo --module demo.wsgi --daemonize /var/log/uwsgi.log
    • --daemonize: 表示以服务的方式运行,不会占用终端, 并设置日志文件
    • 这是部署项目最终运行的方式
  • 如果需要结束该进程,那么:$ps -ef | grep uwsgi 查找到该进程的父进程ID, 即:PPID
    • $kill -9 父进程ID号
  • 将运行命令写到开机脚本中:
    • 为了避免每次开机都要手动启动该服务
    • $vi /etc/rc.local
    • uwsgi --http :9090 --chdir /rootdemo --module demo.wsgi --daemonize /var/log/uwsgi.log命令复制粘贴到最后(exit 0的上面)
  • 优化开机脚本:
    • 查看uwsgi的完整路径: $which uwsgi 输出一般默认是:/usr/local/bin/uwsgi
    • 优化脚本:/usr/local/bin/uwsgi --http :9090 --chdir /rootdemo --module demo.wsgi --daemonize /var/log/uwsgi.log
    • 推荐写完整路径