centos7部署websocket

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

django项目中间使用websocket进行通讯想部署到服务器上按照之前部署项目的思路进行部署但是失败了。解决了一下在此记录。

主项目下有一子app一模版文件一静态文件。项目中主要用到dwebsocket

了解之后进行部署

修改settings.py文件

#在文件中加入以下变量
WEBSOCKET_FACTORY_CLASS = 'dwebsocket.backends.uwsgi.factory.uWsgiWebSocketFactory'

定义Uwsgi文件

装载uwsgi

#安装依赖
yum install python36-devel

#安装
pip3 install uwsgi

#设置软连接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

#进入项目目录启动服务
uwsgi --http :8000 --module Httpdweb.wsgi

效果和 python3 manage.py runserver 0.0.0.0:8000一样

#热启动
uwsgi --http :8000 --module Httpdweb.wsgi --py-autoreload=1

#创建 Httpdweb_uwsgi.ini
[uwsgi]

chdir           = /home/aaa/dweb/Httpdweb
module          = Httpdweb.wsgi
master          = true
processes       = 3
socket          = 0.0.0.0:8000
vacuum          = true
pythonpath      = /usr/bin/python3
pidfile = /home/aaa/dweb/Httpdweb/Httpdweb.pid
daemonize  = /home/aaa/dweb/Httpdweb/uwsgi.log
async = 30
ugreen = ''
http-timeout = 300
#用uwsgi启动项目
uwsgi --ini Httpdweb_uwsgi.ini
#后台自启动
uwsgi -d --ini Httpdweb_uwsgi.ini

启动之后没毛病

部署nginx

按照之前的惯例需要用到nginx之前直接在location中定义项目地址增加一系列配置就行了但是初步部署却不是那么回事于是乎有了以下的配置

#vim nginx.conf
server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        access_log      /root/myweb_access.log;
        error_log       /root/myweb_error.log;
        client_max_body_size 300M;  # 设置nginx最大请求主体
  			#http请求
        location / {
          uwsgi_read_timeout 600;
          include uwsgi_params;
          uwsgi_pass 127.0.0.1:8000;
          uwsgi_param UWSGI_SCRIPT Httpdweb.wsgi;
          uwsgi_param UWSGI_CHDIR  /home/aaa/dweb/Httpdweb;
        }
  			#websocket请求
        location /ws/ {
          include uwsgi_params;
          uwsgi_pass 127.0.0.1:8000;
          proxy_redirect off;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
        }
        location /static/ {
          root /home/aaa/dweb/Httpdweb;
        }
}

之前部署因为没有websocket的请求所以只需要配置http的设置现在因为需要websocket请求所以需要添加一项socket长连接配置

cd usr/local/nginx/sbin
./nginx

开起nginx请求主页没问题 一切ok

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: centos