如何将 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;
目前使用 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;