centos7_nginx部署django聊天室

简介: centos7_nginx部署django聊天室

演示地址

http://yongma16.xyz/#/onlinewebsocket
image.png

asgi配置环境变量

需要添加

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myblogsite.settings')
from django.core.asgi import get_asgi_application
# import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myblogsite.settings')
django_asgi_app = get_asgi_application()
from channels.auth import AuthMiddlewareStack

from channels.routing import ProtocolTypeRouter,URLRouter#channels的路由
import webchat.routing

# django.setup()
application=ProtocolTypeRouter(
    {
        "http":get_asgi_application(),
        #添加http协议
        "websocket": AuthMiddlewareStack(
            URLRouter(
                webchat.routing.websocket_urlpatterns
                #聊天app
            )
        ),
        #路由配置
    }
)

daphne运行asgi

指定所有ip可以访问,开放8001端口

daphne -b 0.0.0.0 -p 8001 myproject.asgi:application

install supervisor

安装supervisor

yum install -y supervisor

生成配置文件

echo_supervisord_conf > /etc/supervisord.conf

编辑配置文件
[include]
files = supervisord.d/*.ini
表示配置文件读取supervisord.d目录下所有后缀为.ini的文件。
创建配置目录,并创建配置文件
mkdir /etc/supervisord.d/
vi /etc/supervisord.d/asgi.ini
编辑

[fcgi-program:asgi]
# TCP socket used by Nginx backend upstream
socket=tcp://localhost:8001

# Directory where your site's project files are located django项目路径
directory=/data/wwwroot/myblog_project/myblogsite

# Each process needs to have a separate socket file, so we use process_num
# Make sure to update "mysite.asgi" to match your project name 虚拟环境 相对路径下的asgi
command=/data/pyweb/bin/daphne -u /run/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers myblogsite.asgi:application

# Number of processes to startup, roughly the number of CPUs you have
numprocs=4

# Give each process a unique name so they can be told apart
process_name=asgi%(process_num)d

# Automatically start and recover processes
autostart=true
autorestart=true

# Choose where you want your log to go
stdout_logfile=/data/asgilog/asgi.log
redirect_stderr=true

创建文件夹生成daphe的sock文件

$ sudo mkdir /run/daphne/

赋予权限

$ chmod +x /run/daphe

运行

$ supervisord -c /etc/supervisord.conf

ok! 没问题
image.png

查看日志
image.png

nginx转发websokcet

map

map $http_upgrade $connection_upgrade{
    default upgrade;
    '' close;
    }

处理websocket的请求,发送的请求是:ws://yongma16.xyz/ws/webchat/DjangoVue/
代理配置

location /ws/{
        proxy_pass http://127.0.0.1:8001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
}

发送请求成功!
image.png

image.png

部署成功!
image.png

redismanager查看连接成功!
image.png

目录
相关文章
|
7月前
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
280 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
2月前
|
存储 前端开发 应用服务中间件
Django 实战:静态文件与媒体文件从开发配置到生产部署
Django项目中,静态文件(Static Files)和媒体文件(Media Files)是两类不同用途的文件。本文详细介绍了它们的区别、配置方法以及在开发与生产环境中的处理方式,并结合用户头像上传功能进行实战演示,最后讲解了如何通过Nginx或OpenResty部署静态与媒体文件服务。
113 1
|
4月前
|
Linux 应用服务中间件 nginx
在CentOS上部署Minikube教程
至此,您已成功在CentOS上部署并使用Minikube。您可以自由探索Kubernetes的世界,熟练配置和管理Kubernetes集群。
423 20
|
4月前
|
应用服务中间件 Linux 网络安全
技术指南:如何把docsify项目部署到基于CentOS系统的Nginx中。
总结 与其他部署方法相比,将docsify项目部署到基于CentOS系统的Nginx中比较简单。以上步骤应当帮助你在不花费太多时间的情况下,将你的项目顺利部署到Nginx中。迈出第一步,开始部署你的docsify项目吧!
191 14
|
10月前
|
Oracle 关系型数据库 MySQL
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
|
11月前
|
中间件 应用服务中间件 nginx
Nginx+uWSGI+Django原理
Nginx+uWSGI+Django原理
|
11月前
|
前端开发 JavaScript 应用服务中间件
使用nginx部署网站
使用nginx部署网站
|
11月前
|
JavaScript 应用服务中间件 nginx
nginx部署vue项目
本文介绍了将Vue项目部署到Nginx的步骤,包括构建Vue项目、上传dist文件夹到服务器、安装Nginx、配置Nginx代理静态文件以及重启Nginx,确保了Vue应用可以通过域名或IP地址访问。
604 1
|
11月前
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
3275 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
11月前
|
Kubernetes 应用服务中间件 nginx
k8s基础使用--使用k8s部署nginx服务
本文介绍了Kubernetes中核心概念Deployment、Pod与Service的基本原理及应用。Pod作为最小调度单元,用于管理容器及其共享资源;Deployment则负责控制Pod副本数量,确保其符合预期状态;Service通过标签选择器实现Pod服务的负载均衡与暴露。此外,还提供了具体操作步骤,如通过`kubectl`命令创建Deployment和Service,以及如何验证其功能。实验环境包括一台master节点和两台worker节点,均已部署k8s-1.27。
910 1