season22 发表于 2017-1-1 11:52:52

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
这里面需要配置类似如下:
<VirtualHost *:8080>   
    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/
</VirtualHost>


在conf/extra/httpd-ssl.conf
在配置文件中的“<VirtualHost _default_:443>”里面添加如下类似配置:
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
页: [1]
查看完整版本: windows rails+apache+ssl 配置