deepin-nginx-uwsgi-django
前言
- 操作系统deepin20
- 时间2020年12月
- Nginx版本:nginx/1.14.2
- uWSGI版本:2.0.19.1
- Django版本:3.1.4
- Python版本:3.7.3
- 参考网址1
- 参考网址2
- 参考网址3
- 参考网址4
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