Apache 反向代理解析 localhost

Apache 反向代理解析 localhost

我有一个运行着 dockerized nuget 服务的 Web 服务器。Web 服务器还安装了 apache2,用作反向代理,将请求重新发送到服务。我可以访问服务的 Web 界面,但是当我尝试推送软件包时,nuget 显然会将 localhost 接收为服务的 IP:

nuget.exe push -Source http://mynuget.server/v3/index.json .\mypackage.nupkg
Please provide credentials for: http://mynuget.server/v3/index.json
UserName: username
Password: ************
Pushing mypackage.nupkg to 'http://127.0.0.1:555/api/v2/package'...
PUT http://127.0.0.1:555/api/v2/package/

我的 apache 配置为反向代理如下:

<VirtualHost 192.168.1.50:80>
  ServerName mynuget.server

  <Location />
    Order deny,allow
    AuthType basic
    AuthName "Restricted content"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
  </Location>

  ProxyPass / http://127.0.0.1:555/
  ProxyPassReverse / http://127.0.0.1:555/

</VirtualHost>

当然,mynuget.server是解析为有效 IP 地址的有效域名

我觉得我忘了做某件事,但我不知道该做什么。如能得到任何帮助我将不胜感激。

答案1

这是一个愚蠢的错误。我忘记了这个ProxyPreserveHost选项。设置为On它将用主机地址替换所有响应。

相关内容