nginx + uwsgi 部署Django项目

mac2022-06-30  8

nginx + uwsgi 部署Django项目

前提条件:

有一个能正常运行的django项目已安装nginx已安装uwsgi

我的django项目名称为:hello,所在目录是:/media/p1/proj/py/hello/

通过uwsgi启动django项目

切换工作目录到hello项目所在目录

# cd /media/p1/proj/py/hello/

启动uwsgi

# uwsgi --http 127.0.0.1:8080 --file hello/wsgi.py --static-map=/static=static

# uwsgi --http :8080 --file hello/wsgi.py --static-map=/static=static

此时可以通过访问 http://127.0.0.1:8080/ 看看是否成功。

配置uwsgi

这一步可以避免每一次启动uwsgi都要指定那么多选项。 我的配置文件创建于:/etc/uwsgi/uwsgi.ini

# uwsig使用配置文件启动 [uwsgi] # 项目目录 chdir=/media/p1/proj/py/hello/ # 指定项目的application module=hello.wsgi:application # 指定sock的文件路径 socket=/media/p1/proj/py/script/uwsgi.sock # 进程个数 workers=1 pidfile=/media/p1/proj/py/script/uwsgi.pid # 指定IP端口 http=127.0.0.1:9090 # 指定静态文件 static-map=/static=/media/p1/proj/py/hello/static # 启动uwsgi的用户名和用户组 uid=root gid=root # 启用主进程 #master=true # 自动移除unix Socket和pid文件当服务停止的时候 vacuum=true # 序列化接受的内容,如果可能的话 # thunder-lock=true # 启用线程 # enable-threads=true # 设置自中断时间 #harakiri=30 # 设置缓冲 #post-buffering=4096 # 设置日志目录 daemonize=/var/log/uwsgi/uwsgi.log

nginx配置

server { listen 80; server_name a.test.haoxueba.net; location / { include uwsgi_params; #uwsgi_pass 127.0.0.1:9090; uwsgi_pass unix:/media/p1/proj/py/script/uwsgi.sock; #uwsgi_param UWSGI_PYHOME test.py; uwsgi_param UWSGI_SCRIPT hello.wsgi; #uwsgi_param UWSGI_CHDIR; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { } }

试一试

启动uwsgi

uwsgi --ini /etc/uwsgi/uwsgi.ini

和刚开始启动的方式不同,我们现在指定了配置文件,就不需要再每次设置那么多选项了。

更新nginx配置:nginx -s reload或启动nginx:nginx

在浏览器地址栏输入:http://a.test.haoxueba.net 看看我们期待的结果会不会出现?

注意:我当初做到这一步,并没有成功,检查发现uwsgi.sock文件没有创建,原来是权限问题,我将其目录开放了写权限,就OK了。 设置目录可写:chmod +w /media/p1/proj/py/script

转载于:https://www.cnblogs.com/YFree/p/7674939.html

最新回复(0)