我有一个使用以下堆栈运行的rails 3应用程序:
ubuntu lucid lynx,apache2,亚马逊EC2上的乘客
通过http访问时,页面加载,网站完全没有问题。
然后我在网络服务器上安装了有效的SSL证书。当我尝试通过https访问相同的URL时,看起来乘客没有被激活。相反,在浏览器中,渲染rails应用程序的文件夹结构。
我需要对Apache和/或Passenger进行哪些配置更改或修改,以便https URL返回与相应http url相同的内容?
答案 0 :(得分:0)
你需要这样的东西:
<VirtualHost *:80>
ServerName orders.xxx.com
DocumentRoot "/var/www/html/ps-main/current/public"
CustomLog /var/log/apache2/orders common
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://orders.xxx.com%{REQUEST_URI}
NameVirtualHost *:443
RailsEnv production
<Directory /var/www/html/ps-main>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
CustomLog /var/log/apache2/orders common
ServerAdmin webmaster@xxx.com.com
ServerName orders.xxx.com
SSLCertificateFile /etc/ssl/cert.crt
SSLCertificateKeyFile /etc/ssl/server.key
SSLCertificateChainFile /etc/ssl/intermediate.pem
# SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
DocumentRoot /var/www/html/ps-main/current/public
<Directory /var/www/html/ps-main/current/public>
Options -MultiViews
AllowOverride all
</Directory>
</VirtualHost>
这会将所有http流量重定向到https。如果这不是您所需要的,请删除重定向。