我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python3+django+nginx

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python3+django+nginx

1 环境介绍和准备
Python3+django+nginx+uwsgi使用场景部署

当我们写完一套完整的网站功能,我们需要实时在生产环境上线,并需要容纳高并发的访问请求。所以我们需要部署以上来保证网站的服务质量。

1.1基本环境准备:
echo 'LANG="en_GB.utf8"' > /etc/sysconfig/i18n
LANG="en_GB.utf8"

1.2依赖环境:
(env) [root@reboot5 nginx]# python -V
Python 3.6.2
(env) [root@reboot5 nginx]# cat /etc/redhat-release
CentOS release 6.8 (Final)
(env) [root@reboot5 nginx]# pip list|grep Django
Django 1.11.4
(env) [root@reboot5 opsweb]# mysql -V
mysql Ver 14.14 Distrib 5.6.37
1.3修改yum源地址:
yum install wget
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

1.4 环境安装:
yum install wget openssl-devel -y # gcc编译要用
yum install gcc zlib-devel openssl-devel -y

2 安装python
yum -y install openssl-devel readline-devel unzip
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
tar -xzf Python-3.6.2.tgz
cd Python-3.6.2
sudo ./configure --prefix=/usr/local/python36
sudo make
sudo make install
2.1配置pip源
sudo tee /etc/pip.conf <<-'EOF'
[global]
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com
[list]
format=columns
EOF

2.2安装virtualenv虚拟环境
sudo /usr/local/python36/bin/pip3 install virtualenv

  1. 安装django
    3.1 初始化环境
    mkdir ~/reboot
    /usr/local/python36/bin/virtualenv ~/reboot/env
    3.2 安装django 1.11
    source /root/reboot/env/bin/activate
    pip install "django>=1.11"
    pip install ipython

4 mysql环境准备:

sudo rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
sudo yum install -y mysql mysql-server mysql-devel zlib-devel
source /home/djangoenv/pythonenv/bin/activate
#python依赖:
pip install pymysql

[mysqld]
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8

sudo service mysqld start
4.1 安全设置:
mysql_upgrade -uroot # 如果是升级需要执行(卸载原有mysql低版本也需要)
mysql_secure_installation # 命令行执行设置账号密码、限制远程连接等

4.2 创建基础数据库:
create database cmdb CHARACTER SET utf8; # 创建一个cmdb库
CREATE USER 'cmdb'@'%' IDENTIFIED BY 'nice'; # 创建一个cmdb用户,密码cmdb
GRANT ALL ON cmdb.* TO 'cmdb'@'%'; # 给cmdb用户所有cmdb库权限

4.3 mysql基本备份还原
导出:mysqldump -h127.0.0.1 -uroot -p123456 django > /backupfile.sql
还原:mysql -h127.0.0.1 -uroot -pruanchunxia2324 django < backupfile.sql

-----------------------------------uwsgi------------------------------------------------------
5 安装:uwsgi
source /root/reboot/env/bin/activate
pip install uwsgi --no-cache-dir

5.1 uwsgi安装完毕查询版本
(env) [root@reboot5 /]# pip list|grep uWSGI
uWSGI 2.0.15

5.2 将配置文件写到项目目录下
(env) [root@reboot5 nginx]# cd /root/reboot/opsweb
(env) [root@reboot5 opsweb]# vim uwsgi.ini

[uwsgi]

chdir = /root/reboot/opsweb

module=opsweb.wsgi

workers=2
pidfile=/var/log/uwsgi/uwsgi.pid

http=10.10.40.112:8001

static=/root/reboot/opsweb/static

uid=root
gid=root

master=true

vacuum=true

thunder-lock=true

enable-threads=true

harakiri=30

post-buffering=4096

daemonize=/var/log/uwsgi/opsweb.log

socket=/var/log/uwsgi/uwsgi.sock

5.3 uwsgi启动命令:
sudo uwsgi --ini uwsgi.ini
uwsgi --reload /var/log/uwsgi/uwsgi.pid
uwsgi --start /var/log/uwsgi/uwsgi.pid
uwsgi --stop /var/log/uwsgi/uwsgi.pid
-----------------------------------nginx------------------------------------------------------
6 安装nginx:
yum install nginx -y

  server {
      listen       80;
      server_name  10.10.40.112;
      location /static {
          alias /root/reboot/opsweb/static;
      }
      location / {
          include     /etc/nginx/uwsgi_params; # the uwsgi_params file you installed
          uwsgi_pass unix:/var/log/uwsgi/uwsgi.sock;
      }
  }

7 django配置
7.1 django配置修改:

django可以在自己的templates下面放静态资源 那个命令可以吧所有静态资源收集起来

STATIC_ROOT = os.path.join(BASE_DIR, "static/")

#然后到项目目录下执行:
python manage.py collectstatic

DEBUG = False ALLOWED_HOSTS = ['*']

  1. 故障排错
    8.1 故障发现
    Python3+django+nginx+uwsgi使用场景部署
    发现无法找到静态文件
    8.2 通过查看nginx错误日志,定位错误
    定位问题为无法访问/static目录下文件
    Python3+django+nginx+uwsgi使用场景部署
    8.3尝试将配置目录授予权限
    Python3+django+nginx+uwsgi使用场景部署
    发现目录权限都已生效
    Python3+django+nginx+uwsgi使用场景部署
    并且重启nginx服务,发现问题依然存在。
    Python3+django+nginx+uwsgi使用场景部署
    通过检查nginx服务发现,nginx线程为nginx用户启动
    Python3+django+nginx+uwsgi使用场景部署
    所以

此处需要对nginx配置文件重新加载
/etc/init.d/nginx reload

8.4 最终代理效果
注:没做代理前如访问时,IP后面需要跟端口,代理成功后只需输入代理的ip即可访问后端网站,从而提高安全性和并发访问量。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python3+django+nginx

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python3+django+nginx

1 环境介绍和准备Python3+django+nginx+uwsgi使用场景部署当我们写完一套完整的网站功能,我们需要实时在生产环境上线,并需要容纳高并发的访问请求。所以我们需要部署以上来保证网站的服务质量。1.1基本环境准备:ech
2023-01-31

Python3 flask nginx

配置项目的时候一般使用虚拟环境,是各个项目的环境独立起来,更多方便管理。至于如何使用搜索即可,并不难1、安装python3yum -y install zlib-devel bzip2-devel openssl-devel ncurses
2023-01-30

django-python3-mysql

pip install pymysql使用python3和Django搭建自己的服务器的时候使用的是sqlite数据库,一切顺利.可是等到布置生产环境的时候要换成MySQL,根据Django官网的文档也设置好了setting.DATABAS
2023-01-31

Nginx+uwsgi+Django (

Nginx+uwsgi+Django (Python web环境)nginx配置文件[root@DB02 rc3.d]# vi /application/nginx/conf/nginx.confuser  root;worker_proc
2023-01-31

Nginx+uWSGI+DJango+P

本文出自:http://www.mpyun.com/一、安装所需工具yum -y install gcc gcc-c++ rpm-build mysql* libtool-ltdl* libtool automake autoconf li
2023-01-31

python3 and django使用

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'python3中使用mysql 用的是P
2023-01-31

python3 Django 报错Run

我们在shell下运行Django的时候遇到这样的报错:C:\python\python3\lib\site-packages\django\db\backends\sqlite3\base.py:57: RuntimeWarning: S
2023-01-31

django+uwsgi+nginx部署

django+uwsgi+nginx部署 1.介绍:  在网上看了很多教程,但自己部署了很久都没有成功,这篇博文记录自己所踩过得坑。 2.环境:1 Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-130-generi
2023-01-30

nginx+uwsgi部署django项

1、django项目部署前需要生成admin的静态资源文件(1)生成admin的静态资源文件 # 关闭debug模型DEBUG = False# 允许所有域名访问ALLOWED_HOSTS = ['*']# 静态资源路径# STATIC_R
2023-01-31

django生产环境搭建(uWSGI+django+nginx+python+MySQL)

目录1、系统环境,必要知识2、安装python3.6.53、安装Django4、安装uWSGI5、安装nginx6、MySQL安装配置7、编写一个简单的博客系统1、系统环境,必要知识#cat /etc/redhat-release Cen
2022-05-18

nginx多个django怎么部署

要部署多个Django应用程序到Nginx,您可以按照以下步骤操作:安装和配置Nginx:首先,您需要安装Nginx并配置基本的服务器设置。您可以通过以下命令来安装Nginx:sudo apt-get updatesudo apt-ge
2023-10-23

nginx + uwsgi + django 优化和参数设置

最近用python写了一个web系统,用的框架是nginx + uwsgi + django + oracle。服务器用的是centos 7.web API的吞吐量要求是200/s。使用postman对单次web API调用进行测试,时间约
2023-06-02

Django + Uwsgi + Nginx 的生产环境部署

使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了。比如静态文件处理,安全,效率等等,本篇文章总结归纳了一下基于uwsgi+Nginx下dj
2023-01-30

如何使用Python3+mysql8.0搭建Django框架

小编给大家分享一下如何使用Python3+mysql8.0搭建Django框架,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、安装python基础环境:cent
2023-06-15

ubuntu Django + Uwsgi + Nginx 的生产环境部署

使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了。比如静态文件处理,安全,效率等等,本篇文章总结归纳了一下基于uwsgi+Nginx下dj
2023-01-31

Django+Nginx+uWSGI定时任务怎么实现

今天小编给大家分享一下Django+Nginx+uWSGI定时任务怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。摘要
2023-06-28

Nginx+uwsgi+Django部署代码怎么编写

Nginx+uwsgi+Django部署代码怎么编写,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Nginx+uwsgi+Django部署代码安装uwsgi1.
2023-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录