使用Nginx,Gunicorn,daphne(针对渠道2)和主管部署django应用

时间:2018-08-27 20:10:43

标签: django nginx

正如标题中所述,我正在尝试使用上述技术堆栈来部署django应用程序。我们在服务器端使用django,在前端使用angular 6。这是我一生中第一次这样做,有些事情对我来说还不太清楚,所以如果我说些奇怪的话,请纠正我。

  1. 我正在使用Nginx提供静态服务。配置如下:

serverside_nginx_static.conf

server { 
      listen [::]:80 ;
      root /home/user/serverside_deployment/static/; 
      index index.html index.htm index.nginx-debian.html;
      client_max_body_size 4G;
      access_log /home/user/serverside_deployment/logs/nginx-access.log;
      error_log /home/user/serverside_deployment/logs/nginx-error.log;
      location / {
          try_files $uri $uri/ /index.html;
          proxy_set_header Host $http_host;
          proxy_redirect off;
      } 
      error_page 500 502 503 504 /500.html;
      location = /500.html {
          root /home/user/serverside_deployment/static/;
      }

1.1我还使用Nginx与gunicorn通信,后者又与Django应用本身通信。适当的配置如下所示:

serverside_nginx.conf

upstream mtt_server {
     server unix:/home/user/serverside_deployment/serverside_env/run/gunicorn.sock fail_timeout=0;
  }

  server { 

      listen  8000; 
      server_name 192.168.10.98; 
      client_max_body_size 4G;  
      access_log /home/user/serverside_deployment/logs/nginx-access.log;
      error_log /home/user/serverside_deployment/logs/nginx-error.log;

      location / { 
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header Host $http_host; 
          proxy_redirect off;
          if (!-f $request_filename) {
              proxy_pass http://mtt_server;
              break;
          }
      }

      error_page 500 502 503 504 /500.html;
      location = /500.html {
          root /home/user/serverside_deployment/static/;
      }
   }
  1. 我正在使用主管启动gunicorn bash脚本。

因此,此配置可以正常工作,或者说REST可以正常工作,但websocket却不能。我收到404 Not Found的消息是找不到定义的频道。除非我为解决此问题而误解,否则我需要使用Daphne作为接口服务器部署django通道。 This手册似乎已过时,但给出了有关部署过程的外观的想法。但是我的情况更加复杂,我无法确定如何将达芙妮部件连接到我已经拥有的部件上。我只需要使网络套接字正常工作,我想我不完全理解为什么它找不到打开的通道。

这是一项有趣的任务,但不幸的是,没有太多的时间来解决它,所以我将不胜感激。

P.S。

此静态代码目前处于错误的位置,但稍后将其移至正确的位置。

编辑:

奇怪的是,在开发服务器上运行时,一切正常。

编辑2:

有什么想法吗?

0 个答案:

没有答案