deepin-nginx-uwsgi-django


前言

nginx

# nginx安装
sudo apt-get install nginx
# 查看版本
nginx -v
# 启动
service nginx start
# 停止
service nginx stop
# 重启
service nginx restart
# 重新加载
service nginx reload
# 查看状态
service nginx status

启动之后打开127.0.0.1:80就可以看到nginx的Welcome to nginx!

启动和关闭服务的时候需要管理员密码

uwsgi

# 安装
pip3 install uwsgi
# test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    # 传输二进制数据
    return [b'Hello World!']
# 启动
uwsgi --http :9090 --wsgi-file test.py

启动之后打开127.0.0.1:9090就可以看到返回的Hello World!

django

# 安装pip3
sudo apt install python3-pip
# 安装django
pip3 install django
# 创建django项目
django-admin.py startproject mysite_xxx
# 启动django项目并在本地运行
python3 manage.py runserver

启动之后打开127.0.0.1:8000就可以看到django的Hello World!

如果希望页面是中文的话,可以在settings.py文件中更改语言LANGUAGE_CODE = 'zh-hans'和时区TIME_ZONE = 'Asia/Shanghai'

如果希望提供对外服务的话,可以在settings.py文件中更改IP地址ALLOWED_HOSTS = ['本机对外的IP地址'],然后再执行python3 manage.py runserver 0.0.0.0:8000

uwsgi+django

方法一

在django项目的manage.py文件的同级目录创建django_wsgi.py文件。

# django_wsgi.py
import os

# 注意mysite是项目名字,如果有其他项目应做对应更改或添加
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
# 连接uwsgi和django并实现简单的web服务器
uwsgi --http :9090 --wsgi-file django_wsgi.py

启动之后打开127.0.0.1:9090就可以看到Django的Hello World!

如果希望提供对外服务的话,需要在settings.py文件中更改IP地址ALLOWED_HOSTS = ['本机对外的IP地址'],然后再执行uwsgi --http 0.0.0.0:9090 --wsgi-file django_wsgi.py

方法二

在django项目的manage.py文件的同级目录创建uwsgi.ini文件。

# 配置uwsgi
[uwsgi]
# 指定服务器部署IP地址和端口
http=127.0.0.1:9090
# 配置项目在当前服务器中的绝对路径
chdir=/home/yun/Documents/HelloCode/mysite
# 相对路径指定当前项目中wsgi.py
wsgi-file=mysite/wsgi.py
# 设置启动的进程数量
processes=4
# 设置每个进程启动的线程数量
threads=2
# 设置主进程
master=True
# 指定保存主进程编号的文件
pidfile=uwsgi.pid
# 指定守护进程的日志存储
daemonize=uwsgi.log
# 启动
uwsgi --ini uwsgi.ini
# 停止
uwsgi --stop uwsgi.pid
# 重新加载
uwsgi --reload uwsgi.pid

如果希望提供对外服务的话,可以在settings.py文件中更改IP地址ALLOWED_HOSTS = ['本机对外的IP地址'],然后在uwsgi.ini文件中更改http=0.0.0.0:9090,最后再执行uwsgi --ini uwsgi.ini

nginx+uwsgi+django

配置nginx

# 在http大括号里面添加
    ##
    # Server Configs
    ##

    server{
        listen 80;
        server_name 127.0.0.1;
        # 静态文件配置
        location /static {
            alias /home/yun/Documents/HelloCode/mysite/static;
        }
        # 反向代理配置
        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:9090;
        }
    }

配置uwsgi

在django项目的manage.py文件的同级目录创建uwsgi.ini文件。

# 配置uwsgi
[uwsgi]
# 配置和nginx之间的连接地址
socket=127.0.0.1:9090
# 配置项目在当前服务器中的绝对路径
chdir=/home/yun/Documents/HelloCode/mysite
# 相对路径指定当前项目中wsgi.py
wsgi-file=mysite/wsgi.py
# 设置启动的进程数量
processes=4
# 设置每个进程启动的线程数量
threads=2
# 设置主进程
master=True
# 指定保存主进程编号的文件
pidfile=uwsgi.pid
# 指定守护进程的日志存储
daemonize=uwsgi.log

启动测试

# 启动nginx
service nginx start
# 启动uwsgi
uwsgi --ini uwsgi.ini

启动之后打开127.0.0.1:80就可以看到django的Hello World!

如果希望提供对外服务的话,可以在django的settings.py文件中更改IP地址ALLOWED_HOSTS = ['本机对外的IP地址'],然后在nginx的nginx.conf文件中更改server_name 本机对外的IP地址;,最后再重新加载nginx和uwsgi

posted @ 2020-12-11 10:24  野火冫吹又生  阅读(176)  评论(0编辑  收藏  举报