除了文件路径中的“staging”和“production”之外,我在暂存服务器和生产服务器上的 rails 站点的配置完全相同。
它们都设置为将端口 80 上的所有请求重定向到 443 上的 SSL 版本。
这在准备阶段运行正常,但在生产中它只显示默认的 Apache 测试页面。Apache 似乎没有将请求转发给乘客。我的 rails 日志是空的。apache 日志显示所有请求,但没有错误。
有任何想法吗?
在httpd.conf的末尾:
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.19/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.19
PassengerRuby /usr/local/bin/ruby
Include /etc/httpd/conf/extra/httpd-vhosts.conf
虚拟主机配置文件(vhosts.conf):
NameVirtualHost *:80
<VirtualHost *:80>
ServerName goodtogotraining.com
ServerAlias www.goodtogotraining.com
Redirect permanent / https://www.goodtogotraining.com/
</VirtualHost>
<VirtualHost www.goodtogotraining.com:443>
ServerName goodtogotraining.com
ServerAlias www.goodtogotraining.com
DocumentRoot /home/goodtogo/production/current/public
PassengerMaxPoolSize 18
RailsEnv production
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
SSLCACertificateFile /etc/pki/tls/certs/ca.crt
<Directory /home/goodtogo/production/current/public>
Options -MultiViews
Allow from all
</Directory>
</VirtualHost>
答案1
您在 SSL 中使用了完全限定的域名<VirtualHost>
。
<VirtualHost www.goodtogotraining.com:443>
虚拟主机 IP 地址的完全限定域名(不推荐);
要解决该问题,请改用 IP 地址或 *:
<VirtualHost *:443>