在 docker 设置中,对于不同的 Rails 环境,我们在和config.hosts中的指令方面遇到了不同的行为。development.rbproduction.rb
我们在同一台服务器上的同一个应用程序有两个 docker 镜像:“staging”和“Production”。它们同时在不同的容器和不同的端口上运行。
两个镜像都使用内部端口 3000 并向 docker 主机公开不同的端口(3002 和 3004)。
另一个虚拟机上的 apache 通过以下设置(在两个不同的虚拟主机中)将请求代理到容器:
<IfModule mod_proxy.c>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://192.168.99.102:3002/
ProxyPassReverse / http://192.168.99.102:3002/
ProxyPreserveHost Off
RequestHeader Set X-Forwarded-Ssl "On"
RequestHeader Set X-Forwarded-Port "443"
RequestHeader Set X-Forwarded-Host "dev.sitexxx.com"
RequestHeader set X_FORWARDED_PROTO "https"
</IfModule>
Run Code Online (Sandbox Code Playgroud)
对于开发环境和
<IfModule mod_proxy.c>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://192.168.99.102:3004/
ProxyPassReverse / http://192.168.99.102:3004/ …Run Code Online (Sandbox Code Playgroud)