如何将 Rails 网站上的 Ruby 从 http 1 更新为 http 2

How to update a Ruby on Rails website form http 1 to http 2

目前使用 Rails 5.2 和 Ruby 2.3 使用服务器:Nginx with passenger

请告知将网站从 HTTP 版本 1 更新到 HTTP 2 所需的更改。

虚拟主机 :

 server {
    listen 80;
    listen [::]:80 ipv6only=on;

server_name ec2-34-xxx-xx-xx.us-west-2.compute.amazonaws.com;

# Tell Nginx and Passenger where your app's 'public' directory is
root /home/ec2-xxxx/apps/xxxxxxxxxx/public;

# Turn on Passenger
rails_env    production;
passenger_enabled on;
passenger_ruby /home/ec2-xxx/.rvm/gems/ruby-2.3.8@5.0.2/wrappers/ruby;

    # redirect server error pages to the static page /50x.html
    error_page   500 502 503 504  /50x.html;

    location = /50x.html {
        root   html;
    }
location ~ /.well-known {
            allow all;
    }

}

提前致谢

您需要配置 Web 服务器以使用 HTTP/2,例如 tomcat / apache,并且客户端应用程序需要使用正确的 httpclient / 适配器,它使用 HTTP/2。

假设您使用的是相对较新的 Nginx 版本,您可以在 Nginx 配置中启用 HTTP/2。

不过都browsers only support HTTP/2 over HTTPS。由于您只在端口 80 上侦听,我假设您只设置了 HTTP,因此您需要做的第一件事是在您的网站上设置 HTTPS。

在那之后,你只需要下面的配置(再次假设在最新版本的 Nginx 上),在端口 443 上使用协议 http2 进行监听:

listen 443 ssl http2; 
listen [::]:443 ssl http2 ipv6only=on;