解析 HTTP 404 响应正文的反向代理错误背后的 Gitlab 注册表:JSON 输入的意外结束:“”
Posted
技术标签:
【中文标题】解析 HTTP 404 响应正文的反向代理错误背后的 Gitlab 注册表:JSON 输入的意外结束:“”【英文标题】:Gitlab registry behind reverse proxy error parsing HTTP 404 response body: unexpected end of JSON input: "" 【发布时间】:2021-05-28 14:50:24 【问题描述】:我正在尝试在 nginx 反向代理(win10)后面设置一个家庭 GitLab + GitLab 容器注册表(VM ubuntu 综合安装): 我从这里获取了 Nginx 配置:https://gitlab.com/gitlab-org/gitlab-recipes/-/tree/master/web-server/nginx
server
listen 443 ssl;
listen 5050 ssl;
#listen [::]:443 ipv6only=on ssl;
server_name my-gitlab.org; ## Replace this with something like gitlab.example.com
server_tokens off; ## Don't show the nginx version number, a security best practice
root /opt/gitlab/embedded/service/gitlab-rails/public;
ssl_certificate /nginx-1.18.0/my-gitlab.crt;
ssl_certificate_key /nginx-1.18.0/my-gitlab.key;
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
location /
client_max_body_size 0;
gzip off;
proxy_cache off;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass https://my-gitlab-IP;
在 433 上打开 GitLab 可以在 5050 上登录 Docker,但是当我尝试从容器注册表推送或拉取时: 来自守护程序的错误响应:解析 HTTP 404 响应正文时出错:JSON 输入意外结束:“”
尝试了许多更改 GitLab.rb 文件的建议,但是如果没有 Nginx-revseproxing 它就无法工作 Docker 推/拉工作,所以我很确定这是我的 Nginx 配置中缺少的东西,但不确定是什么.
谁能帮忙?
【问题讨论】:
【参考方案1】:看来我需要一个单独的服务器块用于注册表
server
listen 5005 ssl;
server_name my-ip:5005;
ssl_certificate /nginx-1.18.0/my-ip.crt;
ssl_certificate_key /nginx-1.18.0/my-ip.key;
location /
client_max_body_size 0;
proxy_pass https://my-ip:5005;
恢复为默认 GitLab 注册表端口
【讨论】:
以上是关于解析 HTTP 404 响应正文的反向代理错误背后的 Gitlab 注册表:JSON 输入的意外结束:“”的主要内容,如果未能解决你的问题,请参考以下文章
在反向代理的背后,Spring Security登录重定向到错误的端口
csharp WebApi ActionFilter与Service Fabric反向代理或ServiceFabric.AutoRest结合使用,以指示RESTfull 404响应。