windows rails+apache+ssl 配置

阅读更多
apache 中ssl配置详见:
http://apps.hi.baidu.com/share/detail/9247188

rails项目实现url加密
下载插件ssl_requirement到 vendor 
ruby script/plugin install ssl_requirement
详见:
http://rails-everyday.group.iteye.com/group/wiki/1155


配置Virtual Host指向你的rails的mongrel的服务器

需要在两个地方配置:
 在httpd.conf
这里面需要配置类似如下:
  
    ServerName www.myapp.comm    
DocumentRoot "D:/sunny/instantrails/rails_apps/cookbook/public"  
ProxyPreserveHost On
    ProxyPass / http://192.168.1.108:3000/
    ProxyPassReverse / http://192.168.1.108:3000/



 在conf/extra/httpd-ssl.conf
在配置文件中的“”里面添加如下类似配置:
DocumentRoot "D:/sunny/instantrails/rails_apps/cookbook/public"    
ProxyPreserveHost On
ProxyPass / http://192.168.1.108:3000/
ProxyPassReverse / http://192.168.1.108:3000/

备注:
1. 上面的端口和你的Apache的默认端口相同
2. 由于使用了Proxy,需要通过反注释相关行而启动Proxy Module,就是下面的一行:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so



可能的问题:
 我碰到的第一个问题是,凡是使用ssl的action都不能正常访问,action会无限制的重定向到自身,这个问题可以通过以下两个改动解决问题:
1) 在httpd.conf中反注释掉这一行:
LoadModule headers_module modules/mod_headers.so
2) 在httpd-ssl.conf中的virtual host里面添加下面这一行:
RequestHeader set X_FORWARDED_PROTO 'https'

 我碰到的另一个问题是,我使用的服务器80端口被封住了,所以ssl_requirement的默认功能不能用了,我把apache默认跑在了8080端口上,并通过修改ssl_requirement.rb下面的代码来解决问题:
redirect_to "http://" + request.host + ":8080" + request.request_uri

你可能感兴趣的:(windows rails+apache+ssl 配置)