正如标题中所述,我正在尝试使用上述技术堆栈来部署django应用程序。我们在服务器端使用django,在前端使用angular 6。这是我一生中第一次这样做,有些事情对我来说还不太清楚,所以如果我说些奇怪的话,请纠正我。
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/;
}
}
因此,此配置可以正常工作,或者说REST可以正常工作,但websocket却不能。我收到404 Not Found
的消息是找不到定义的频道。除非我为解决此问题而误解,否则我需要使用Daphne作为接口服务器部署django通道。
This手册似乎已过时,但给出了有关部署过程的外观的想法。但是我的情况更加复杂,我无法确定如何将达芙妮部件连接到我已经拥有的部件上。我只需要使网络套接字正常工作,我想我不完全理解为什么它找不到打开的通道。
这是一项有趣的任务,但不幸的是,没有太多的时间来解决它,所以我将不胜感激。
P.S。
此静态代码目前处于错误的位置,但稍后将其移至正确的位置。
编辑:
奇怪的是,在开发服务器上运行时,一切正常。
编辑2:
有什么想法吗?