使用nginx、gunicorn、daphne(用于频道2)和supervisor部署django应用程序

使用nginx、gunicorn、daphne(用于频道2)和supervisor部署django应用程序,django,nginx,Django,Nginx,正如标题所示,我正试图使用上述技术堆栈部署django应用程序。服务器端使用django,前端使用angular 6。这是我有生以来第一次这样做,有些事情我还不太清楚,所以如果我说了一些奇怪的话,请纠正我 我正在使用Nginx提供静态服务。配置如下所示: serverside\u nginx\u static.conf server { listen [::]:80 ; root /home/user/serverside_deployment/static/;

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

  • 我正在使用Nginx提供静态服务。配置如下所示:
  • serverside\u nginx\u 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/;
          }
    
    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.1我还使用Nginx与gunicorn通信,gunicorn又与django应用程序本身通信。相应的配置如下所示:

    serverside\u nginx.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/;
          }
    
    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/;
          }
       }
    
  • 我正在使用supervisor启动gunicorn bash脚本 因此,此配置确实有效,或者准确地说,其他配置有效,但WebSocket无效。我得到了
    404notfound
    的消息,说无法找到已定义的频道。除非我弄错了,否则为了解决这个问题,我需要使用Daphne作为接口服务器部署django通道。 手册似乎有点过时,但给出了部署过程应该是什么样子的想法。然而,我的情况更复杂,我不知道如何将达芙妮部分与我已经拥有的部分联系起来。我只需要让WebSocket正常工作,我不认为我完全理解为什么它找不到开放的频道

    这是一个有趣的任务,但不幸的是,没有太多的时间来解决它,所以我将感谢任何帮助

    附言

    此时静电传感器的位置有点错误,但稍后会将其移动到正确的位置

    编辑:

    奇怪的是,在dev服务器上运行时,一切都正常

    编辑2:

    有什么想法吗