在 Ubuntu 14.x 搭建 Nginx Uwsgi Django 环境之(三):连接 nginx 和 uwsgi

1、编写django_wsgi.py文件,将其放在与文件manage.py同一个目录下。

注意: 编写文件时需要注意语句os.environ.setdefault。比如,如果你的项目为mydjangosite,则你的语句应该是 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mydjangosite.settings")
#!/usr/bin/env python
# coding:utf-8
import os
import sys

DJANGO_PATH = '/disk1/pythonVirtualEnv/python3.4.3/lib/python3.4/site-packages'
print("DJANGO_PATH", DJANGO_PATH)
sys.path.append(DJANGO_PATH)

import django
from django.core.handlers.wsgi import WSGIHandler
from imp import reload
reload(sys)
#sys.setdefaultencoding('utf8') no need for python3.x
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mydjangosite.settings")
django.setup()
application = WSGIHandler()
这一步踩了好多坑,网上好多这个文件都是python2.x版本的,到3.x还需要改,上面的这个文件就是基于3.x的文件
出现的错误找不到django模块,可以通过sys.path.append(DJANGO_PATH)将路径加入
sys.setdefaultencoding('utf8')这个语句在2.x才有,3.x是不需要的
django.setup()这个函数3.x才需要,而且必须在在os.environ.setdefault之后调用

2、连接django和uwsgi,实现简单的WEB服务器

我们假设你的Django项目的地址是/home/ubuntu/mydjangosite
然后,就可以执行以下命令:
uwsgi --http-socket :8003 --chdir /home/ubuntu/mydjangosite --module django_wsgi

功能通过浏览器就能访问服务器的8003端口了


3、配置uwsgi:在/home/ubuntu/mydjangosite创建文件 uwsgi.ini

这个配置文件是uwsgi单独对外提供http服务的配置文件,用这个配置文件的话nginx是无法和它连接成功的,因为nginx和uwsgi需要用非标准的uwsgi协议

[uwsgi]

http-socket =  :8011
chdir = /home/ubuntu/mydjangosite
module = django_wsgi
daemonize = django_wsgi.log

<processes>1</processes>

下面这个配置文件是和nginx连接时用的:

[uwsgi]
socket = /home/ubuntu/mydjangosite/uwsgi.sock
#socket = :8011
chdir = /home/ubuntu/mydjangosite
module = django_wsgi
daemonize = django_uwsgi.log
chmod-sokcet = 666
#wsgi-file = django_wsgi.py
#plugin = python
#process = 2
#threads = 2
#stats = 127.0.0.1:8011



4、配置nginx参数

upstream django {
    server unix:/home/ubuntu/mydjangosite/uwsgi.sock; # for a file socket
    # server 127.0.0.1:8011; # for a web port socket (we'll use this first)
}

# configuration of the server
server {
    # the port your site will be served on
    listen      801;

    # the domain name it will serve for
    server_name www.biseg.cc biseg.cc; # substitute your machine's IP address or FQDN
    charset     utf-8;

    # Django media
    location /media  {
        alias /home/ubuntu/mydjangosite/myjangosite/media;
    }

    location /static {
        alias /home/ubuntu/mydjangosite/myjangosite/static;
    }

    # Finally, send all non-media requests to the Django server.
    location / {
        uwsgi_pass  django;
        include     uwsgi_params;
    }
}


5、启动ngixn, sudo service nginx start

启动uwsgi, 切换到目录/home/ubuntu/mydjangosite uwsgi --ini uwsgi.ini

启动nginx, sudo service nginx start

这是通过浏览器访问 网站的801端口就能看到提示 “Congratulations on your first Django-powered page.”



配置基本都是按照下面这两个教程来的
https://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html
https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/uwsgi/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于在 OpenEuler 上部署 Django 应用程序,您可以使用 Nginx 作为反向代理服务器,并使用 uWSGI 作为 Django 应用程序的应用服务器。 下面是大致的步骤: 1. 首先,确保您已经在 OpenEuler 上安装了 NginxuWSGI。您可以使用适当的包管理器来安装它们,例如使用 `yum` 命令:`sudo yum install nginx uwsgi uwsgi-plugin-python3`。 2. 在 Django 项目的根目录中创建一个 uWSGI 配置文件,例如 `myapp_uwsgi.ini`,并配置以下内容: ``` [uwsgi] http-timeout = 86400 chdir = /path/to/your/django/project module = myproject.wsgi:application env = DJANGO_SETTINGS_MODULE=myproject.settings master = true processes = 4 threads = 2 socket = 127.0.0.1:8000 vacuum = true ``` 请确保将 `/path/to/your/django/project` 替换为您的 Django 项目的实际路径。 3. 创建一个 Nginx 配置文件,例如 `myapp_nginx.conf`,并配置以下内容: ``` server { listen 80; server_name your_domain_name; location / { uwsgi_pass 127.0.0.1:8000; include uwsgi_params; } location /static/ { alias /path/to/your/django/static/files; } location /media/ { alias /path/to/your/django/media/files; } } ``` 请将 `your_domain_name` 替换为您的域名,并将 `/path/to/your/django/static/files` 和 `/path/to/your/django/media/files` 替换为您的 Django 项目中静态文件和媒体文件的实际路径。 4. 将 uWSGIDjango 项目关联起来,运行以下命令启动 uWSGI 服务器: ``` uwsgi --ini /path/to/your/uwsgi/config/myapp_uwsgi.ini ``` 请将 `/path/to/your/uwsgi/config/myapp_uwsgi.ini` 替换为您的 uWSGI 配置文件的实际路径。 5. 将 Nginx 配置文件链接到 Nginx 的配置目录中: ``` sudo ln -s /path/to/your/nginx/config/myapp_nginx.conf /etc/nginx/conf.d/ ``` 请将 `/path/to/your/nginx/config/myapp_nginx.conf` 替换为您的 Nginx 配置文件的实际路径。 6. 重新加载 Nginx 配置: ``` sudo systemctl reload nginx ``` 这样,您的 Django 应用程序应该已经成功部署在 OpenEuler 上,并可以通过您的域名进行访问。 希望这些步骤对您有帮助!如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值