iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux系统怎样部署Django项目
  • 280
分享到

Linux系统怎样部署Django项目

2023-06-28 13:06:23 280人浏览 安东尼
摘要

这期内容当中小编将会给大家带来有关linux系统怎样部署Django项目,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Linux系统中部署DjanGo项目安装Django、Nginx和uWSGI1.确定已

这期内容当中小编将会给大家带来有关linux系统怎样部署Django项目,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Linux系统中部署DjanGo项目

安装Django、Nginx和uWSGI

1.确定已经安装了2.7版本的python; 2.安装Python-devel yum install python-devel 3.安装uwsgi pip install uwsgi

测试uwsgi是否能正常工作

1.新建一个index.py;

 # index.py def application(env, start_response):     start_response('200 OK', [('Content-Type','text/html')])     return "Hello World"1234

2.uwsgi –Http :8000 –wsgi-file index.py 浏览器访问8000端口看是否有hello world输出 注意:确保8000端口能被外网访问

测试Django能否正常工作

$ cd /var/www/ $ django-admin startproject mysite $ cd mysite $ python manage.py runserver 0.0.0.0:8000 浏览器访问8000端口看是否有hello world输出

测试uwsgi是否能和django集成

 uwsgi --http :8000 --chdir=/var/www/mysite --module mysite.wsgi` or `uwsgi --http :8008 --chdir /var/www/mysite --wsgi-file weixin/wsgi.py --master --processes 4 --threads 2 --stats 127.0.0.1:9192

在浏览器中访问8000端口,看能否正常访问django网站。

参数说明:

 # http : 协议类型和端口号 # processes : 开启的进程数量 # workers : 开启的进程数量,等同于processes(官网的说法是spawn the specified number ofworkers / processes) # chdir : 指定运行目录(chdir to specified directory before apps loading) # wsgi-file : 载入wsgi-file(load .wsgi file) # stats : 在指定的地址上,开启状态服务(enable the stats server on the specified address) # threads : 运行线程。由于GIL的存在,我觉得这个真心没啥用。(run each worker in prethreaded mode with the specified number of threads) # master : 允许主进程存在(enable master process) # daemonize : 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器(daemonize uWSGI)。实际上最常 用的,还是把运行记录输出到一个本地文件上。 # daemonize : 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器(daemonize uWSGI)。实际上最常 用的,还是把运行记录输出到一个本地文件上。 # vacuum : 当服务器退出的时候自动清理环境,删除unix Socket文件和pid文件(try to remove all of the generated file/sockets)12345678910111213

配置Nginx,使Nginx能为Django提供服务

在/etc/nginx/conf.d/下创建一个针对mysite项目的配置文件,详细如下:

 # /etc/nginx/conf.d/mysite_nginx.conf # the upstream component nginx needs to connect to upstream django {     server 127.0.0.1:8000; # for a WEB port socket }  # configuration of the server server {     # the port your site will be served on     listen      80;     # the domain name it will serve for     server_name .example.com; # substitute your Machine's IP address or FQDN     charset     utf-8;      # max upload size     client_max_body_size 75M;   # adjust to taste      # Django 的static和 media目录     # 如果没有static或media目录,你需要先创建     location /media  {         alias /var/www/mysite/media;     }        location /static {         alias /var/www/mysite/static;     }      # 将所有非静态文件的请求转给django server处理,这里的django server用的是uwsgi。     location / {         uwsgi_pass  django;         include  /var/www/mysite/uwsgi_params;     } } #你可以从/etc/nginx/uwsgi_params复制一个拷贝到/var/www/mysite/uwsgi_params。 $ cp /etc/nginx/uwsgi_params /var/www/mysite/1234567891011121314151617181920212223242526272829303132333435

需要补充说明的是,在/etc/nginx/nginx.conf文件中,在最后一行的配置是include /etc/nginx/conf.d/*.conf,也就是说,/etc/nginx/conf.d/mysite_nginx.conf是会被包含在/etc/nginx/nginx.conf中的。

重启nginx服务器,验证访问结果

/etc/init.d/nginx restart 通过浏览器访问80端口,你发现了什么?502 Bad Gateway?是不是?想一想,这是为什么呢?原因是你访问80端口时,请求的资源不是static,也不是media,这个时候Nginx就把请求转给upstream django,upstream的网关配置的127.0.0.1:8000,而127.0.0.1:8000是要靠uwsgi启动的,所以报了一个502 Bad Gateway。你,明白了吗?

注:Centos 7启动服务的命令是systemctl restart nginx.service

启动uwsgi,再次验证结果

执行下面一个命令,启动uwsgi。 uwsgi --socket :8000 --chdir=/var/www/mysite --module mysite.wsgi 重启Nginx服务/etc/init.d/nginx restart,再次通过浏览器访问80端口试试看。是不是成功了?

注:CentOS 7启动服务的命令是systemctl restart nginx.service

如何使uwsgi以配置文件运行?Configuring uWSGI to run with a .ini file

创建一个mysite_uwsgi.ini文件,内容如下:

 [uwsgi] socket=:8000 chdir = /var/www/mysite #wsgi-file = mysite/wsgi.py module=mysite.wsgi:application processes = 10 threads = 2 #django执行命令uwsgi --ini mysite_uwsgi.ini即可运行如何以Emperor模式运行?什么是Emperor模式?,官网说的很清楚,如下:uWSGI can run in ‘emperor’ mode. In this mode it keeps an eye on a directory of uWSGI config files, and will spawn instances (‘vassals’) for each one it finds.Whenever a config file is amended, the emperor will automatically restart the vassal.按下面的步骤操作,即可以Emperor模式运行uwsgi: \1. create a directory for the vassals sudo mkdir /etc/uwsgi sudo mkdir /etc/uwsgi/vassals \2. symlink from the default config directory to your config file sudo ln -s /path/to/your/mysite/mysite_uwsgi.ini /etc/uwsgi/vassals/ \3. run the emperor uwsgi --emperor /etc/uwsgi/vassals --uid nginx --gid nginx如何创建uwsgi服务?在Linux中,一个服务其实就是一个shell脚本。在CenOS6中,服务脚本一般都在/etc/init.d/目录下。 首先我们在/etc/initd/目录下创建一个uwsgi文件,文件内容如下: #!/bin/sh # ### BEGIN INIT INFO # Provides: uwsgi # Required-Start: $syslog $remote_fs # Should-Start: $time ypbind smtp # Required-Stop: $syslog $remote_fs # Should-Stop: ypbind smtp # Default-Start: 3 5 # Default-Stop: 0 1 2 6 ### END INIT INFO # Source function library. . /etc/rc.d/init.d/functions # Check for missing binaries (stale symlinks should not happen) UWSGI_BIN="/usr/local/bin/uwsgi" UWSGI_EMPEROR_MODE=true UWSGI_VASSALS="/etc/uwsgi/vassals/" UWSGI_OPTIONS="--uid nginx  --gid nginx  --logto /var/log/uwsgi/uwsgi.log" lockfile=/var/lock/subsys/uwsgi UWSGI_OPTIONS="$UWSGI_OPTIONS --autoload" if [ "$UWSGI_EMPEROR_MODE" = "true" ] ; then     UWSGI_OPTIONS="$UWSGI_OPTIONS --emperor $UWSGI_VASSALS" fi case "$1" in     start)     echo "Starting uWSGI ... "     daemon $UWSGI_BIN $UWSGI_OPTIONS &     ;;     stop)     echo "Shutting down uWSGI ... "     killproc $UWSGI_BIN     ;;     restart)     $0 stop     $0 start     ;;     status)     echo -n "Checking for service uWSGI "     status $UWSGI_BIN     ;;     *)     echo "Usage: $0 {start|stop|status|restart}"     exit 1     ;; esac exit 012345678910111213141516171819202122232425262728293031323334353637383940414243444546然后,我们可以使用此脚本来管理uwsgi,如下:/etc/init.d/uwsgi start /etc/init.d/uwsgi stop /etc/init.d/uwsgi restart /etc/init.d/uwsgi status需要注意的是,日志文件夹的所属权应该归配置文件中指定的用户nginx $ chown nginx.nginx /var/log/uwsgi -R如何设置开机起动uwsgi?把启动uwsgi的命令添加到“/etc/rc.local”文件中即可。多站点部署问题 #Simple HTTP server server {     listen   80;     root /usr/share/nginx/www;     server_name host1.example.com; }  #Django server server {     listen   80;     server_name host2.example.com;      #...upstream config... }

上述就是小编为大家分享的Linux系统怎样部署Django项目了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网操作系统频道。

--结束END--

本文标题: Linux系统怎样部署Django项目

本文链接: https://www.lsjlt.com/news/319817.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Linux系统怎样部署Django项目
    这期内容当中小编将会给大家带来有关Linux系统怎样部署Django项目,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Linux系统中部署Django项目安装Django、Nginx和uWSGI1.确定已...
    99+
    2023-06-28
  • Linux系统怎么部署web项目
    小编给大家分享一下Linux系统怎么部署web项目,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux系统部署web项目具体方法要部署普通的web项目,首先是...
    99+
    2023-06-28
  • Linux下如何部署Django项目
    本篇文章给大家分享的是有关Linux下如何部署Django项目,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Django是由python编写得开放源代码的Web应用框架,Dja...
    99+
    2023-06-28
  • windows系统IIS部署Django项目的实践
    目录一、PythonWSGI部署原理二、准备部署环境三、安装和配置IIS 四、开放端口 五、本地部署 六、问题采用IIS服务器部署相比django提供的...
    99+
    2022-11-13
  • docker怎么部署django项目
    要部署Django项目,可以使用Docker进行容器化部署。以下是一些基本的步骤:1. 首先,确保已经在本地安装了Docker和Do...
    99+
    2023-10-09
    django docker
  • Linux系统如何部署php项目
    这篇文章主要介绍了Linux系统如何部署php项目,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。MySql  1.mysql和apache最好是首先进行安装的,因为在配置ph...
    99+
    2023-06-28
  • 怎么将php项目部署到linux系统上
    在现代化的软件开发过程中,项目部署已经成为了不可或缺的一个环节。其中,将 PHP 项目部署到 Linux 操作系统上是相对比较普遍的一种方式。本文将着重介绍如何将一个 PHP 项目部署到 Linux 操作系统上的步骤和注意事项。第一步:安装...
    99+
    2023-05-14
    php linux
  • Linux下如何快速部署Django项目
    这篇文章主要为大家展示了“Linux下如何快速部署Django项目”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何快速部署Django项目”这篇文章吧。Django 是一个由 Py...
    99+
    2023-06-27
  • 怎样远程部署php项目
    今天就跟大家聊聊有关怎样远程部署php项目,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑怎么远程部署php项目?...
    99+
    2023-06-29
  • Linux怎么部署tomcat项目
    这篇文章主要介绍“Linux怎么部署tomcat项目”,在日常操作中,相信很多人在Linux怎么部署tomcat项目问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux怎么部署tomcat项目”的疑惑有所...
    99+
    2023-06-28
  • linux怎么部署golang项目
    要在Linux上部署Golang项目,你可以按照以下步骤进行: 安装Golang:首先,你需要在Linux上安装Golang。你...
    99+
    2023-10-27
    linux golang
  • Linux系统下部署项目的设置方法
    一、修改防火墙设置,开放对应的端口 修改linux系统防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,如果要开放哪个端口,在里面添加一条  -A RH-Firewall-1-INP...
    99+
    2022-06-04
    linux 部署项目 linux项目部署
  • 如何将php项目部署到linux系统上
    本篇内容介绍了“如何将php项目部署到linux系统上”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一步:安装必要的软件在部署 PHP 项...
    99+
    2023-07-05
  • Linux下怎么部署vue项目
    本文小编为大家详细介绍“Linux下怎么部署vue项目”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux下怎么部署vue项目”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.部署Nginx请参考Linux...
    99+
    2023-06-28
  • linux怎么部署.net Core项目
    这篇“linux怎么部署.net Core项目”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇...
    99+
    2022-10-19
  • Linux下怎么部署java项目
    本篇内容主要讲解“Linux下怎么部署java项目”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下怎么部署java项目”吧!1、准备VMware2、安装Linux系统(本人安装的是Fe...
    99+
    2023-06-27
  • 手把手教你在Linux系统进行项目部署
    手把手教你在Linux系统进行项目部署 百度网盘:https://pan.baidu.com/s/11wMIXT68GX7banf3Gaflrw (提取码:lzt1) GitHub:https://g...
    99+
    2023-09-04
    linux 服务器 运维
  • Linux怎么部署项目并运行
    要部署和运行项目在Linux上,您可以按照以下步骤进行操作: 首先,确保您的Linux系统上已经安装了必要的软件和工具,如Git...
    99+
    2023-10-23
    linux
  • linux怎么部署微服务项目
    要在Linux上部署微服务项目,你可以按照以下步骤进行操作: 安装必要的软件:在Linux上部署微服务项目,你需要安装Docke...
    99+
    2023-10-27
    linux 微服务
  • java项目怎么部署到linux上
    要将Java项目部署到Linux上,可以按照以下步骤进行操作: 在Linux服务器上安装Java环境。可以从Oracle官方网站下...
    99+
    2023-10-27
    linux java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作