ant design pro 、django的k8s镜像部署(前端打包nginx镜像、后端uwsgi-socket启动)
前言:在将前后端的项目做出初版后,初步在虚拟机(centos7)中以本地部署和docker-compose部署两种方式都试验成功后,准备将项目部署到k8s集群中;但是因为技术知识有限(主要是nginx不熟悉),项目迟迟停顿在nginx不能转发动态请求到后端阶段,参考了ant design pro官方的nginx部署和一篇比较全的部署文档,我的问题依旧没有变化。现在将问题全部抛出,因为项目并未开放公网,因此关于k8s的ip端口等放出并无大碍。
求大佬给出指点! 关于接口规范,配置规范都可以!
后端配置
uwsgi.ini
#[uwsgi]
#http=:3033
#static-map=/static=static
#master=true
#file=/opt/husky-back/husky/husky/wsgi.py
#module=husky.wsgi
#buffer-size=65536
[uwsgi]
socket=:3033
#http-socket=127.0.0.1:3033
#http=127.0.0.1:3033
processes=%(%k*2)
threads=%(%k*20)
enable-threads=true
lazy-apps=true
#uid=1000
#gid=1000
chmod-socket=660
master=true
chdir=/opt/husky-back/husky
module=husky.wsgi
buffer-size=65536
后端路由
后端k8s访问方式
前端配置
husky.conf
upstream husky {
server husky-web.pdm-platform.svc.cluster.local:3033;
}
server {
listen 80;
server_name localhost;
# gzip config
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
root /usr/share/nginx/html;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
uwsgi_pass husky; # 连接远程uWSGI服务器的socket
include /etc/nginx/uwsgi_params;
#uwsgi_connect_timeout 200;
}
# 静态文件
location /static {
root /usr/share/nginx/html;
}
}
Dockerfile
# nginx镜像compose/nginx/Dockerfile
FROM nginx:latest
WORKDIR /etc/nginx/conf.d/
RUN mv default.conf ./default.conf.bak
COPY husky.conf ./
RUN mkdir -p /usr/share/html
COPY ./dist/ /usr/share/nginx/html/
CMD ["nginx","-g","daemon off;"]
目录内容
前端nginx镜像访问方式
报错
进展
在nginx镜像 curl husky-web.pdm-platform.svc.cluster.local:3033 求情后端的ip:port,当后端 uwsgi协议修改为http协议的时候,可以请求到接口; 但是为了更快的处理,尽量改成uwsgi协议传输请求
目前判断为nginx无法正确转发动态请求到后端,假设有一天我更熟悉了nginx配置,说不定就突然醒悟了。
真实太困扰了,咨询了无数人,都没有解决。
来源:oschina
链接:https://my.oschina.net/randolphcyg/blog/4808901