0
点赞
收藏
分享

微信扫一扫

nginx代理无法访问nexus问题

Aliven888 2022-04-13 阅读 91
nginx

文章目录

一、问题现象

  • 通过域名访问nexus主页,主页html可以正常加载,但是静态资源加载超时,原因是静态资源的请求地址是内网ip。
  • 通过ip+端口或域名+端口的方式访问是正常的。

nginx和nexus的配置方式

  • nexus通过docker启动,使用默认8081端口以及默认host。
  • nginx监听域名,通过服务器内网ip转发到8081端口,配置如下:
server{
        listen 80;
        server_name nexus.xxx.cn;
        location / {
                proxy_pass http://192.168.0.182:8081;
        }
}

二、原因分析

nexus在接受请求时,会绑定请求者的host,作为后续资源加载的请求地址。
我在nginx中配置的是内网ip的转发,对nexus来说这个host就是内网ip。
后面添加了Host这个请求头之后,相当于告诉nexus此次请求的host是nexus.xxx.cn这个域名。

三、解决方式

在nginx转发是添加Host请求头,配置如下:

server{
        listen 80;
        server_name nexus.xxx.cn;
        location / {
                proxy_set_header Host $host;
                proxy_pass http://192.168.0.182:8081;
        }
}
举报

相关推荐

0 条评论