Sono in esecuzione rails 3.1 in modalità sviluppo su Ubuntu con sqlite. Il server rails è in esecuzione sulla porta 3000 e ho nginx impostato su proxy_pass porte 80 e 443 sulla porta 3000. quando inserisco config.force_ssl = true
nel mio Application.rb e riavvio il server delle rotaie, viene visualizzato un errore simile a:SSL con Rails 3.1: config.force_ssl = true non funziona in modalità sviluppo
Secure Connection Failed
An error occurred during a connection to localhost:3000.
SSL received a record that exceeded the maximum permissible length.
(Error code: ssl_error_rx_record_too_long)
The page you are trying to view can not be shown because the authenticity of the received data could not be verified.
Please contact the web site owners to inform them of this problem. Alternatively, use the command found in the help menu to report this broken site.
Quando si modifica di nuovo in config.force_ssl = false
e si riavvia il server di rotaie, ho ancora un errore, [2011-12-30 09:48:02] ERROR bad URI 9W\x0Fe���h=9��ݔ|�#��)�/6\x00\x00H\x00��'
. nella console di rotaie. Questo scompare e tutto torna alla normalità se svuoto anche la cache del browser. Ma come faccio a far funzionare force_ssl = true
?
Ecco parte della mia Application.rb:
module Regi
class Application < Rails::Application
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
config.generators do |g|
g.template_engine :haml
end
config.force_ssl = true
end
end
E qui è il mio/etc/nginx/sites-enabled/predefinite:
server {
#listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default ipv6only=on; ## listen for ipv6
root /usr/share/nginx/www;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location/{
# First attempt to serve request as file, then
# as directory, then fall back to index.html
proxy_pass http://localhost:3000;
try_files $uri $uri/ /index.html;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root /usr/share/nginx/www;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# HTTPS server
server {
listen 443;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
ssl on;
ssl_certificate /usr/local/conf/ssl_keys/server.crt;
ssl_certificate_key /usr/local/conf/ssl_keys/server.key;
location/{
proxy_pass http://localhost:3000;
proxy_set_header X-Real-IP $remote_addr;
# root html;
# index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}