Django uWSGI+Nginx配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django uWSGI+Nginx配置相关的知识,希望对你有一定的参考价值。

一、Django配置

1. 创建一个新项目

django-admin.py startproject mysite

2. 创建一个应用

python3 startapp app01

3. 编辑urls.py文件,创建一个index页面路由

urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    url(r‘^index/‘, views.index),
]

4. 编辑views.py文件,创建视图函数

def index(request):
    return render(request, "index.html")

5. 在项目目录下创建templates目录,以及index.html文件

<html>
	<head>
		<meta charset="UTF-8">
		<title>index</title>
	</head>
	<body>
		<h2>uWSGI页面</h2>
		<img src="/static/02.jpg"/>
	</body>
</html>

6. 在项目目录下创建static目录,将02.jpg文件放进去。

由于我们这次使用uWSGI和nginx,所以不用在setting.py文件配置静态文件路径。


二、安装配置uWSGI

1. 安装uWSGI

pip install uwsgi

2. 测试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

访问”http://127.0.0.1:9090“,如果出现"Hello World"则表示uWSGI安装成功

3. 在Django项目目录mysite/app01目录下创建一个uwsgi.ini文件

[uwsgi]

# 配置服务器IP地址和端口
http = 127.0.0.1:3309

# 配置项目目录
chdir = /script/PycharmProjects/mysite

# 配置入口模块
wsgi-file = mysite/wsgi.py

# 开启master
master = True

# 设置worker进程数量
processes = 2

# 服务器进程开启的线程数量
threads = 4

# 退出清空环境变量
vacuum = True

# 进程pid
pidfile = uwsgi.pid

# 配置静态文件目录
check-static = /script/PycharmProjects/mysite

4. 启动uWSGI服务器提供静态页面和动态页面访问

uwsgi --ini uwsgi.ini

5. 访问"http://127.0.0.1:3309/index/",如果出现文件以及图片则表示设置成功

6. 修改uwsgi.ini文件,动态文件留给uWSGI处理,静态文件给Nginx处理

[uwsgi]

# 配置服务器IP地址和端口
#http = 127.0.0.1:3309
socket = 127.0.0.1:3309

# 配置项目目录
chdir = /script/PycharmProjects/mysite

# 配置入口模块
wsgi-file = mysite/wsgi.py

# 开启master
master = True

# 设置worker进程数量
processes = 2

# 服务器进程开启的线程数量
threads = 4

# 退出是清空环境变量
vacuum = True

# 进程pid
pidfile = uwsgi.pid

# 配置静态文件目录
#check-static = /script/PycharmProjects/mysite


三、安装配置Nginx

1. 安装Nginx

tar -zxvf nginx-1.10.2.tar.gz
cd nginx-1.10.2
./configure

2. 环境检查缺失pcre包,安装libpcre3和libpcre3-dev

sudo apt-get install libpcre3 libpcre3-dev

3. 环境检查缺失zlib包,从http://www.zlib.net下载最新软件包并安装

tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./zlib-1.2.11
make
sudo make install

4. 配置使用openssl,从https://www.openssl.org/source/下载最新软件包,并解压

tar -zxvf openssl-1.0.2l.tar.gz

5. 重新运行Nginx configure文件

./configure --with-openssl=/Download/openssl-1.0.2l --with-http_ssl_module

6. 检查无误,编译安装

make
sudo make install

7. 配置Nginx,动态文件转给uWSGI处理,静态文件自己处理

默认配置文件路径:/usr/local/nginx/conf/nginx.conf

location / {
	include uwsgi_params;
	uwsgi_pass 127.0.0.1:3309;
}	

location /static {
	alias /script/PycharmProjects/mysite/static;
}

8. Nginx启停命令

cd /usr/local/nginx/sbin
sudo ./nginx  # 启动
sudo ./nginx -s stop  # 停止
sudo ./nginx -s reload  # 重新加载配置文件

9. 现在我们把uWSGI和Nginx一起启动,并访问http://127.0.0.1/index/,如果出现文字和图片说明我们已经配置成功了!



本文出自 “戴柏阳的博客” 博客,请务必保留此出处http://daibaiyang119.blog.51cto.com/3145591/1972398

以上是关于Django uWSGI+Nginx配置的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 uwsgi + nginx + Django + websocket?

nginx+django+uwsgi部署配置

Django + uWSGI + Nginx + SSL - 工作配置请求(强调 SSL)

Django Nginx+uwsgi 安装配置

Python-Django Nginx+uwsgi 安装配置

nginx+uwsgi+django