Linux - Django + Nginx + uwsgi 部署项目 - 安装 uWSGI 服务器 -(4)

Django 项目生产环境配套教程链接

Linux - Django + Mysql + Nginx + uwsgi 部署项目 - 安装 nginx 服务器 - (1)

Linux - Django + Nginx + uWSGI 部署项目 - 安装 Python3.x -(2)

Linux - Django + Nginx + uwsgi 部署项目 - rpm 包安装 Mysql 5.x 服务器 - 删除 Mysql 服务器 - 解决创建新数据库的utf8编码问题(3)


一、安装 uWSGI 服务器及项目间的联动文件

安装方法有两种,这里就不阐述麻烦的方法,看此文最后的 uWSGI 服务器安装参考链接。

最简单的方法在于,直接用 pip 安装,当然前提是安装好了 python 解释器。

pip install uwsgi

当然笔者这里是安装完了,就自动是全局配置,所以就可以在 Shell 终端使用 uwsgi 命令

效果如下:
在这里插入图片描述
当然要使用 uWSGI 服务器,还得配置好 django 项目根目录下的 uwsgi.ini 文件,该文件是 uWSGI 服务器的运行对象配置文件,我们可以在里面配置好 Django 项目的工作目录和与 nginx 服务器通信的 方式和 联络的 ip 和端口等等。

当然并非一定要在 django 根目录下,创建 uwsgi.ini 文件,只不过为了项目的整体性考虑,一般与项目有关联的文件自然最好是放在项目的根目录下,方便修改,这里利用 软连接就可以了,前面提到的 nginx.conf 也一样,在项目根目录下创建项目的 项目名.conf 文件并软连接到 nginx 服务器的conf/ 目录下。

1. 配置项目根目录下 uwsgi.ini 文件

在 Django 项目根目录下创建 uwsgi.ini 文件,并输入如下内容:(仅供参考用)

[uwsgi]
uid=Myuser  # 当前我的用户名
gid=work    # 当前我的用户名所属的用户组

project=MyDjangoProject  # 项目名
base=/home/XXX/MyDjangoProject # 项目根目录
#module=%(project).wsgi:application # wsgi文件位置
wsgi-file=/home/XXX/MyDjangoProject/MyDjangoProject/wsgi.py
 
#home = %(base)/Env/%(project)  # 设置项目虚拟环境,Docker部署时不需要
#chdir=%(base)/%(project)  # 设置工作目录
#module=%(project).wsgi # wsgi文件位置

#http=0.0.0.0:9566 
socket=/home/XXX/MyDjangoProject/MyDjangoProject.sock
pidfile=uwsgi.pid
processes=4
threads=2
# socket权限设置
chmod-socket=664
# 服务停止时,自动移除unix socket和pid文件
vacuum=True

master=True

# 设置自中断时间
harakiri=300

# 设置缓冲
post-buffering=6553600
# 超时
http-timeout=600

注意:uWSGI 服务器和 Nginx 服务器之间有3种通信方式, unix socketTCP sockethttpNginx 服务器的配置必须与 uwsgi.ini 文件的配置保持一致,这样 Nginx 和 uWSGI 服务器才能架起连通的桥梁。

  1. 使用 unix socket 的,必然使用了 后缀名为 .sock 文件
  2. 使用 内部ip:端口 的,是 TCP socket ,如 0.0.0.0:9999 这是使用 TCP socket
  3. 使用 http 的,自然是使用 http= 而不是 socket= ,注意这里的 httpsocket 只能存在一个,用了 socket ,就不能用 http 了,看到上面的 uwsgi.ini 的配置 http 配置,被我注释掉了。

超链接:如何理解sock文件

sock 文件目前尚有问题,即unix socket 连接,先不做介绍!!!
先采用 TCP socketnginx 服务器与 uWSGI 服务器做对接

不过先可以给出创建 sock 文件的命令:

python -c "import socket ; sock = socket.socket(socket.AF_UNIX); sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1);sock.bind('/home/work/www/outsource1.0')"

2. 运行和关闭 uWSGI 服务器的命令

先 cd 到 Django 项目根目录下,然后在 Shell 终端运行如下命令:(启动 uWSGI 服务器,开始监听端口,uwsgi.ini是已经在 Django 项目根目录下存在的,所以在项目根目录下,启动该文件)

uwsgi --ini  uwsgi.ini

关闭 uWSGI 监听服务

uwsgi --stop uwsgi.pid

推荐使用快捷键关闭 uWSGI 服务器

Ctrl + c

uWSGI 安装参考链接

uWSGI的安装及配置详解

Python uWSGI 安装配置

此项目报错解决方法链接

Linux 下部署Django项目你可能会遇到的问题!

uwsgi出现No such file or directory [core/uwsgi.c line xxxx]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统上部署Django + nginx + uWSGI的步骤如下: 1. 安装必要的软件 在Linux系统上安装必要的软件包,包括Python、pip、nginxuWSGI等。 2. 创建Django项目 使用Django创建一个新项目或使用现有的Django项目。 3. 配置uWSGIDjango项目的根目录下创建一个uwsgi.ini文件,用于配置uWSGI。示例配置如下: ``` [uwsgi] # 指定运行模式为WSGI http = :8000 # 指定Django应用的wsgi模块 wsgi-file = myproject.wsgi # 指定进程数 processes = 4 # 指定线程数 threads = 2 # 指定静态文件路径 static-map = /static=/path/to/static # 指定日志路径 logto = /path/to/logfile ``` 其中,http参数指定了监听的端口号,wsgi-file参数指定了Django应用的wsgi模块,processes参数指定了进程数,threads参数指定了线程数,static-map参数指定了静态文件的路径,logto参数指定了日志文件的路径。 4. 配置nginxnginx的配置文件中添加以下内容: ``` server { listen 80; server_name example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { uwsgi_pass 127.0.0.1:8000; include uwsgi_params; } location /static { alias /path/to/static; } } ``` 其中,server_name指定了域名,access_log和error_log指定了日志文件的路径,uwsgi_pass指定了uWSGI的地址和端口号,include指定了uWSGI的参数。 5. 启动uWSGI服务 使用以下命令启动uWSGI服务: ``` uwsgi --ini uwsgi.ini ``` 6. 启动nginx服务 使用以下命令启动nginx服务: ``` sudo service nginx start ``` 这样就完成了Django + nginx + uWSGI部署。可以通过访问该网站的域名来验证是否部署成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值