List of the Experimental Features
Introduction
Starting with RR v2023.3.4
, we introduced a new capability called Experimental Features. This allows you to try out features that are not yet ready for production use.
How to enable experimental features
To enable experimental features, run RR with the -e
(--enable-experimental
) flag. For example:
./rr serve -e
Or:
./rr serve --enable-experimental
List of experimental features
In v2023.3.5
, we added experimental support for loading envfiles
in the .rr.yaml
configuration file. .env
file should be in the same directory as the .rr.yaml
file.
Sample .rr.yaml
file:
version: "3"
envfile: .env
Support for the HTTP/3 server: [>=2023.3.8]
[>=2023.3.8]
In v2023.3.8
, we added experimental support for an HTTP/3 server. It can work with the ACME provider to generate certificates for the HTTP/3 server automatically.
Sample .rr.yaml
file:
version: "3"
server:
command: "php worker.php"
relay: pipes
http:
address: 127.0.0.1:15389
pool:
num_workers: 2
http3:
address: 127.0.0.1:34555
key: "localhost+2-key.pem"
cert: "localhost+2.pem"
Or if you use an ACME provider:
version: "3"
server:
command: "php worker.php"
relay: pipes
http:
address: 127.0.0.1:15389
pool:
num_workers: 2
http3:
address: 127.0.0.1:34555
key: "localhost+2-key.pem"
cert: "localhost+2.pem"
ssl:
acme:
certs_dir: rr_le_certs
email: you-email-here@email
alt_http_port: 80
alt_tlsalpn_port: 443
challenge_type: http-01
use_production_endpoint: false
domains:
- your-cool-domains.here
You can also generate test certificates manually and use them in the configuration file. To do that, use mkcert or certbot:
mkcert -install && mkcert -client localhost 127.0.0.1 ::1 && mkcert localhost 127.0.0.1 ::1
This command generates the client and server certificates for the localhost
domain. You can use them in the configuration file:
version: "3"
server:
command: "php worker.php"
relay: pipes
http:
address: 127.0.0.1:15389
pool:
num_workers: 2
http3:
address: 127.0.0.1:34555
key: "localhost+2-key.pem" # <- generated by mkcert: "localhost+2-key.pem"
cert: "localhost+2.pem" # <- generated by mkcert: "localhost+2.pem"
You can use client certificates in your preferred HTTP/3 client. For example, use curl3 to test the HTTP/3 server:
curl3 --http3 -k --cert localhost+2.pem --key localhost+2-key.pem https://127.0.0.1:34555/
Last updated
Was this helpful?