python项目部署nginx_Nginx Python(Django)项目部署

2023-11-20

CentOS 7 系统默认安装 Python 2.7 版本,本节搭建的是基于 Python3 的 Django 网站,所以需要升级到 Python3 版本。

1、安装 Python 及 Django

配置样例如下:

yum install -y epel-release # 安装EPEL扩展源

yum install -y python36 python36-pip python36-devel \

sqlite-devel supervisor # 安装Python3.6及其工具组件

ln -s /usr/bin/pip3 /usr/bin/pip # 设置pip3为默认pip

pip install --upgrade pip # 升级pip版本

echo "alias python='/usr/bin/python3.6'" >/etc/profile.d/python.sh

# 添加Python 3.6为系统执行的默认Python

echo "alias pip='/usr/local/bin/pip'" >>/etc/profile.d/python.sh

# 添加pip为系统执行的默认pip

source /etc/profile # 使系统配置生效

pip install django==2.0 uwsgi -i https://pypi.tuna.tsinghua.edu.cn/simple

# 安装Django和uWSGI

2、创建测试 Django 项目 demonginx 及项目应用 Nginx

配置样例如下:

cd /opt/nginx-web/pythonweb

django-admin.py startproject demonginx

cd demonginx

sed -i "s/ALLOWED_HOSTS = \[.*/ALLOWED_HOSTS = \['\*', \]/g" demonginx/settings.py

# 创建项目应用Nginx及测试页面

django-admin.py startapp nginx

cat >>nginx/views.py<

from django.http import HttpResponse

def index(request):

return HttpResponse("

Hello Nginx for Django!

")

EOF

sed -i "/\]/i\ path('',nginx_views.index,name=\"index\")," demonginx/urls.py

3、创建默认 admin 管理后台账号

配置样例如下:

python manage.py migrate

python manage.py createsuperuser --username admin --email admin@example.com

启动测试Django项目测试Python网站的有效性,测试成功后关闭该进程。

python manage.py runserver 0.0.0.0:9080

4、配置 uWSGI 服务器

配置样例如下:

cat>/opt/nginx-web/pythonweb/demonginx/nginx_uwsgi.ini<

[uwsgi]

socket = :9080

chdir = /opt/nginx-web/pythonweb/demonginx # 设置Python文件目录

module = demonginx.wsgi # demonginx项目的wsgi.py位置

master = true # 主进程模式

processes = 2 # 开启两个工作进程

vacuum = true # 退出时自动删除UNIX socket和PID文件

max-requests = 1000 # 每个工作进程设置请求数为1000

limit-as = 512 # 每个uWSGI工作进程的虚拟内存为512MB

buffer-size = 32768 # uWSGI接收数据包的缓存区大小为32KB

pidfile = /var/run/uwsgi9080.pid # 进程pid文件

daemonize = /opt/nginx-web/pythonweb/demonginx/uwsgi9080.log

# 使进程在后台运行,并输出日志到uwsgi9080.log

EOF

5、配置 uWSGI 服务器守护进程 supervisord

配置样例如下:

## 启用supervisord Web管理

sed -i "s/^;\[inet_http/\[inet_http/g" /etc/supervisord.conf

sed -i "s/^;port/port/g" /etc/supervisord.conf

## 设置supervisord

cat>/etc/supervisord.d/demonginx.ini<

# 配置进程运行命令

[program:demonginx]

command=/usr/local/bin/uwsgi --ini /opt/nginx-web/pythonweb/demonginx/nginx_uwsgi.ini

directory=/opt/nginx-web/pythonweb/demonginx # 进程运行目录

startsecs=5 # 启动5秒后没有异常则退出表示进程正常启动,默认为1秒

autostart=true # 在supervisord启动的时候也自动启动

autorestart=true # 程序退出后自动重启

EOF

# 启动demonginx的uWSGI服务

systemctl restart supervisord

6、Nginx 配置

Nginx 配置样例如下:

## Python网站配置

server {

listen 8083;

server_name localhost

charset UTF-8;

client_max_body_size 75M;

location / {

include uwsgi_params; # 引入uWSGI默认参数配置

uwsgi_pass 127.0.0.1:9080; # uWSGI服务端口

uwsgi_read_timeout 2;

}

}

## supervisord Web管理配置

server {

listen 9083;

server_name localhost

charset UTF-8;

location / {

allow 192.168.2.0/24;

deny all;

proxy_pass 127.0.0.1:9001; # supervisord服务端口

}

}

7、启动 Nginx 服务

配置样例如下:

# 测试Nginx配置

nginx -t

# 重启Nginx服务

systemctl restart nginx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python项目部署nginx_Nginx Python(Django)项目部署 的相关文章

随机推荐

  • JDBC连接MySQL数据库

    开发工具与关键技术 IntelliJ IDEA java 撰写时间 2020年9月8日 一 JDBC简介 JDBC全称为 Java Data Base Connectivity java数据库连接 用Java语言操作数据库 可以为多种数据库
  • FPG—VGA显示器字符显示(附代码)

    目录 1 实操 1 1 字符取模 1 2 顶层模块 1 3 图像数据生成模块 1 3 1 模块框图 1 3 2 波形图绘制 1 3 3 代码编写 1 3 4 仿真验证 2 总结 本例程大部分与VGA显示驱动内容相同 只是显示部分改变了 故此
  • sublime text 3神奇的插件--snippet

    像之前用VS 做项目时 任意创建一个asp网页 都会自动出现一些基础的代码 毕竟是微软把大家养的太舒服 总感觉用sublime text时每次手敲一些重复代码时特别无辜 所以查阅了一下package control 终于发现了这一神器 创建
  • 斑马面试总结

    面试岗位 测试开发实习生 面试主要提问的是简历上的项目经历 测试相关的 给你一个视频软件 怎么测试 功能测试 黑盒测试 视频的封面正常 点击屏幕或播放键可以正常播放 视频时间倒计时显示正常 再次点击暂停 视频的声音 默认打开 无噪音 可以调
  • java连接sqlserver2005 tcp 有时超时,SQL Server 2005 出现到主机 的 TCP/IP 连接失败

    用jdbc连接SQL Server2005出现到主机 的 TCP IP 连接失败 java net ConnectException Connection refused connect 估计是因为sqlserver2005默认情况下是禁用
  • Elasticsearch 日志

    下载并安装 Filebeat 首次使用 Filebeat 请参阅入门指南 复制代码片段 curl L O https artifacts elastic co downloads beats filebeat filebeat 7 2 0
  • SpringBoot 整合slf4j 日志配置

    slf4j 即 Simple Logging Facade for Java 简单门面日志 它是对所有日志框架制定的一种规范 标准 接口 并不是一个框架的具体的实现 它只服务于各种各样的日志系统 slf4j提供了统一的记录日志的接口 对不同
  • OpenGL.ES在Android上的简单实践:14-全景(惯性滑动球体)

    OpenGL ES在Android上的简单实践 14 全景 惯性滑动球体 1 整理封装全景球 现在 我们的地球已经能正确的显示出来 我们来增加必要的交互 使得我们左右滑动屏幕的时候 地球能旋转起来 而且是像一个地球仪一样 手指离开屏幕后 能
  • 如何修改游戏服务器ip地址吗,怎么修改游戏服务器ip地址吗

    怎么修改游戏服务器ip地址吗 内容精选 换一换 AI视频分析服务作业的输出结果需要指定输出通道 请提前配置好输出通道DIS或者Webhook AI视频分析服务作业的结果输出类型选择为DIS时 在创建作业前 您需确保DIS通道已开通成功 开通
  • 分-布-式-缓-存-(转)

    在前面的一些文章中 从实战的角度 讲解了有关 memcached的应用 容灾 监控等等 但是缺乏对理论的讲解和原理性的剖析 本文将从理论的角度去介绍 让大家从宏观上对 分布式缓存 nosql 等技术有所了解 以便进一步学习和使用 在构建大规
  • tensorflow 激活函数relu6为什么是6

    普通relu y max 0 x 相当于无限多个bernoulli分布 即无限多个骰子 relu6 y min max 0 x 6 相当于有六个bernoulli分布 即6个硬币 同时抛出正面 这样鼓励网络学习到稀疏特征 网络里面每一个输出
  • Linux之rm命令

    rm 删除一个文件或者目录 删除文件可以直接使用rm命令 若删除目录则必须配合选项 r rm r 删除当前目录下的所有文件及目录 文件一旦删除 则无法恢复 命令参数 f 强制删除 即使不存在的文件也不会报错 i交互式删除 r列出全部目录和子
  • 全国热门带正文新闻查询API接口

    一 接口介绍 解决同一类新闻在不同平台上的内容获取问题 在归档主流新闻平台的内容数据基础上 对外提供统一的调用方式来完成实时 最新的相关新闻的获取 极大方便各类企业在自有软件中集成新闻内容的功能 支持200余个新闻大站 为保证数据的及时性
  • PID控制算法(PID控制原理与程序流程)

    PID控制算法 PID控制原理与程序流程 暗影玄极 博客园 cnblogs com
  • RFID系统组成及其功能

    RFID系统因应用不同其组成会有所不同 但基本原理都是相似的 下面我们来讨论一下射频识别的基本原理 既然是射频识别 则必然要由读写器和电子标签组成 当然 在应用中通常还包含上层的管理系统 电子标签和读写器都要装有天线 以便于通信交流 其中读
  • Scratch资料

    Scratch软件是免费的 免费的 免费的 任何需要花钱才能下载Scratch软件的全是骗子 1 什么是Scratch Scratch是麻省理工学院的 终身幼儿园团队 开发的一种图形化编程工具 是面向青少年的一款模块化 积木化 可视化的编程
  • 【RF-SSA-LSTM】随机森林-麻雀优化算法优化时间序列预测研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 RF特征选择 2 2 LSTM预测 2 3 SSA LSTM预测 2 4 MLP预测
  • JDK不同版本间的新特性-基础篇

    目录 一 JDK环境部署 1 1 JDK18与IDEA2022环境准备 二 JDK9 10新特性 2 1 JDK9新特性 私有接口方法 2 2 JDK9新特性 通过try块自动关闭资源 2 4 JDK10新特性 var动态类型推断 局部变量
  • LVGL V8应用——实现互斥

    按键互斥 void language setup lv obj t cont lv obj create page lv obj set size cont 320 160 lv obj t ch cb lv checkbox create
  • python项目部署nginx_Nginx Python(Django)项目部署

    CentOS 7 系统默认安装 Python 2 7 版本 本节搭建的是基于 Python3 的 Django 网站 所以需要升级到 Python3 版本 1 安装 Python 及 Django 配置样例如下 yum install y