我有一个运行着 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
它将用主机地址替换所有响应。