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

检查服务器软件环境

  • $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
    • 推荐写完整路径
发布了391 篇原创文章 · 获赞 183 · 访问量 67万+

猜你喜欢

转载自blog.csdn.net/Tyro_java/article/details/104122721