Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Apache、Puma和Ubuntu安装Rails SSL_Ruby On Rails_Apache_Ubuntu_Ssl_Puma - Fatal编程技术网

Ruby on rails 使用Apache、Puma和Ubuntu安装Rails SSL

Ruby on rails 使用Apache、Puma和Ubuntu安装Rails SSL,ruby-on-rails,apache,ubuntu,ssl,puma,Ruby On Rails,Apache,Ubuntu,Ssl,Puma,我在设置Rails应用程序以成功使用SSL时遇到问题。堆栈使用apache、puma和ubuntu。我的应用程序正在端口3000上运行 没有SSL,我的应用程序启动并运行良好。现在,我的URL上唯一显示的是/var/www/myapp/public目录列表。我就是无法让我的Rails应用程序显示出来 应用程序正在成功地将所有http流量重定向到https 成功安装的任何人都可以共享其可用的站点配置文件,或建议对下面的我的站点进行更改吗?我有一种感觉,在某个地方我遗漏了一行。这是我第一次尝试启动并

我在设置Rails应用程序以成功使用SSL时遇到问题。堆栈使用apache、puma和ubuntu。我的应用程序正在端口3000上运行

没有SSL,我的应用程序启动并运行良好。现在,我的URL上唯一显示的是
/var/www/myapp/public
目录列表。我就是无法让我的Rails应用程序显示出来

应用程序正在成功地将所有
http
流量重定向到
https

成功安装的任何人都可以共享其可用的
站点
配置文件,或建议对下面的我的站点进行更改吗?我有一种感觉,在某个地方我遗漏了一行。这是我第一次尝试启动并运行SSL证书rails应用服务器

我不明白当通过端口443上的SSL查看站点时,在端口3000上运行的应用程序应该如何显示

以下是我的
站点可用设置:

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin admin@<MYAPP.COM>
                ServerName <MYAPP.COM>

                DocumentRoot /var/www/<MYAPP>/public

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLCertificateFile      /etc/ssl/certs/<MYAPP.crt>
                SSLCertificateKeyFile   /etc/ssl/private/<MYAPP.key>

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>
        </VirtualHost>
</IfModule>

服务器管理员@
服务器名
DocumentRoot/var/www//public
ErrorLog${APACHE_LOG_DIR}/error.LOG
CustomLog${APACHE\u LOG\u DIR}/access.LOG组合
SSLCertificateFile/etc/ssl/certs/
SSLCertificateKeyFile/etc/ssl/private/
发展+标准
发展+标准

在过去的5个小时里,我一直在用头撞谷歌。非常感谢您的帮助。

您需要将apache配置为反向代理

ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/

我不知道你是如何主持这个,但在过去,我的团队使用了AWS,我们把证书放在ELB上。这使得客户端和我们的ELB之间的通信被加密,然后内部的一切都使用HTTP,这样我们就不必在大量服务器上安装证书(我们有冗余),也不必担心Rails(或Apache)处理证书。