内容目录
合作方部署项目是在一个外网k8s上,根据服务生成访问地址 比如服务gmt 生成类似地址 ku0.cc/gmt 这样去访问,然后gmt服务里面的一些子服务code auth等 nginx里面的请求再反代.
反人类的是合作方k8s是通过网页平台化部署的,没有权限终端进入容器调试
所以没办法,只能本地布一个nginx /gmt 反代本地容器
然后出现问题了
NGINX配置
server {
listen 20191 ;
listen 20190 ssl;
server_name ku0.cc;
ssl_certificate ku0.cc.pem;
ssl_certificate_key ku0.cc.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /gmt {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_pass https://docker.ku0.cc;
}
}
结果请求https://ku0.cc:20190/gmt 是反代请求https://docker.ku0.cc/gmt
所以我加了个/
proxy_pass https://docker.ku0.cc/;
然后
请求https://ku0.cc:20190/gmt 是反代请求https://docker.ku0.cc/
一级请求没问题
但是请求/gmt/code 会变成请求https://docker.ku0.cc/gmt//code
两个// 结果404了
最后使用重写配置解决 记录一下
server {
listen 20191 ;
listen 20190 ssl;
server_name ku0.cc;
ssl_certificate ku0.cc.pem;
ssl_certificate_key ku0.cc.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /gmt {
rewrite ^/gmt(.*)$ $1 break;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_pass https://docker.ku0.cc;
}
}
近期评论