windows rails+apache+ssl 配备
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
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