summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeo2021-04-30 17:20:54 +0800
committerLeo2021-04-30 17:20:54 +0800
commit805d808e3770982ce4f1935e009f490d20bee6f7 (patch)
tree4fa5a23a201fea3b709ae10126c08dab978cdcfd
parent9360925602e1c115fb71ebc31c6c8029fbdb1dfa (diff)
downloadaur-805d808e3770982ce4f1935e009f490d20bee6f7.tar.gz
New upstream version 2.1.1
-rw-r--r--.SRCINFO12
-rw-r--r--.rr.yaml.sample-full654
-rw-r--r--.rr.yaml.sample-minimal10
-rw-r--r--PKGBUILD10
4 files changed, 474 insertions, 212 deletions
diff --git a/.SRCINFO b/.SRCINFO
index eb69963820f4..37df1472743c 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,18 +1,18 @@
pkgbase = roadrunner
pkgdesc = High-performance PHP application server, load-balancer and process manager written in Golang
- pkgver = 2.0.4
- pkgrel = 4
+ pkgver = 2.1.1
+ pkgrel = 1
url = https://roadrunner.dev/
arch = x86_64
license = MIT
makedepends = go>=1.16
options = !buildflags
- source = roadrunner-binary-2.0.4.tar.gz::https://github.com/spiral/roadrunner-binary/archive/v2.0.4.tar.gz
- source = roadrunner-2.0.4.tar.gz::https://github.com/spiral/roadrunner/archive/v2.0.4.tar.gz
+ source = roadrunner-binary-2.1.1.tar.gz::https://github.com/spiral/roadrunner-binary/archive/v2.1.1.tar.gz
+ source = roadrunner-2.1.1.tar.gz::https://github.com/spiral/roadrunner/archive/v2.1.1.tar.gz
source = .rr.yaml.sample-full
source = .rr.yaml.sample-minimal
- sha256sums = 2625a698a7a6f2ada05ca1333066923eca1cf1503ceb1e045138adb2d12561cf
- sha256sums = 14ab387b378fd7909f5dc6e8be22442ca14fb5353ae1ef55ab70dea0381a5fd3
+ sha256sums = 7ffdff13d854e41ff48a1a64b037d98138fae5b0c8705c952f8f433e6eb80d77
+ sha256sums = 8d2dd324ea27bffb30f86a0192ae50ff2bd1150836d6bd4689486b8cd9b64f06
sha256sums = SKIP
sha256sums = SKIP
diff --git a/.rr.yaml.sample-full b/.rr.yaml.sample-full
index b716800e9218..82c983874cfa 100644
--- a/.rr.yaml.sample-full
+++ b/.rr.yaml.sample-full
@@ -1,209 +1,467 @@
rpc:
- listen: tcp://127.0.0.1:6001
+ # TCP address:port for listening.
+ #
+ # Default: "tcp://127.0.0.1:6001"
+ listen: tcp://127.0.0.1:6001
+# Application server settings (docs: https://roadrunner.dev/docs/php-worker)
server:
- command: "php tests/psr-worker-bench.php"
- # optional
- user: ""
- # optional
- group: ""
- env:
- - SOME_KEY: "SOME_VALUE"
- - SOME_KEY2: "SOME_VALUE2"
- relay: "pipes"
- relay_timeout: 20s
-
-
-# optional for development
+ # Worker starting command, with any required arguments.
+ #
+ # This option is required.
+ command: "php psr-worker.php"
+
+ # User name (not UID) for the worker processes. An empty value means to use the RR process user.
+ #
+ # Default: ""
+ user: ""
+
+ # Group name (not GID) for the worker processes. An empty value means to use the RR process user.
+ #
+ # Default: ""
+ group: ""
+
+ # Environment variables for the worker processes.
+ #
+ # Default: <empty map>
+ env:
+ - SOME_KEY: "SOME_VALUE"
+ - SOME_KEY2: "SOME_VALUE2"
+
+ # Worker relay can be: "pipes", TCP (eg.: tcp://127.0.0.1:6001), or socket (eg.: unix:///var/run/rr.sock).
+ #
+ # Default: "pipes"
+ relay: pipes
+
+ # Timeout for relay connection establishing (only for socket and TCP port relay).
+ #
+ # Default: 60s
+ relay_timeout: 60s
+
+# Logging settings (docs: https://roadrunner.dev/docs/beep-beep-logging)
logs:
- # default
- mode: development
- level: debug
- encoding: console
- output: stderr
- err_output: stderr
- channels:
- http:
- mode: development
- level: panic
- encoding: console
- output: stdout
- server:
- mode: production
- level: info
- encoding: console
- output: stderr
- rpc:
- mode: production
- level: debug
- encoding: console
- output: stderr
-
-# Workflow and activity mesh service
+ # Logging mode can be "development" or "production". Do not forget to change this value for production environment.
+ #
+ # Development mode (which makes DPanicLevel logs panic), uses a console encoder, writes to standard error, and
+ # disables sampling. Stacktraces are automatically included on logs of WarnLevel and above.
+ #
+ # Default: "development"
+ mode: development
+
+ # Logging level can be "panic", "error", "warning", "info", "debug".
+ #
+ # Default: "debug"
+ level: debug
+
+ # Encoding format can be "console" or "json" (last is preferred for production usage).
+ #
+ # Default: "console"
+ encoding: console
+
+ # Output can be file (eg.: "/var/log/rr_errors.log"), "stderr" or "stdout".
+ #
+ # Default: "stderr"
+ output: stderr
+
+ # Errors only output can be file (eg.: "/var/log/rr_errors.log"), "stderr" or "stdout".
+ #
+ # Default: "stderr"
+ err_output: stderr
+
+ # You can configure each plugin log messages individually (key is plugin name, and value is logging options in same
+ # format as above).
+ #
+ # Default: <empty map>
+ channels:
+ http:
+ mode: development
+ level: panic
+ encoding: console
+ output: stdout
+ err_output: stderr
+ server:
+ mode: production
+ level: info
+ encoding: json
+ output: stdout
+ err_output: stdout
+ rpc:
+ mode: production
+ level: debug
+ encoding: console
+ output: stderr
+ err_output: stdout
+
+# Workflow and activity mesh service.
+#
+# Drop this section for temporal feature disabling.
temporal:
- address: localhost:7233
- activities:
- num_workers: 4
- codec: proto
- debug_level: 2
+ # Address of temporal server.
+ #
+ # Default: "127.0.0.1:7233"
+ address: 127.0.0.1:7233
+
+ # Activities pool settings.
+ activities:
+ # How many worker processes will be started. Zero (or nothing) means the number of logical CPUs.
+ #
+ # Default: 0
+ num_workers: 0
+
+ # Maximal count of worker executions. Zero (or nothing) means no limit.
+ #
+ # Default: 0
+ max_jobs: 64
+
+ # Timeout for worker allocation. Zero means no limit.
+ #
+ # Default: 60s
+ allocate_timeout: 60s
+
+ # Timeout for worker destroying before process killing. Zero means no limit.
+ #
+ # Default: 60s
+ destroy_timeout: 60s
+
+ # Supervisor is used to control http workers (previous name was "limit", docs:
+ # https://roadrunner.dev/docs/php-limit). "Soft" limits will not interrupt current request processing. "Hard"
+ # limit on the contrary - interrupts the execution of the request.
+ supervisor:
+ # How often to check the state of the workers.
+ #
+ # Default: 1s
+ watch_tick: 1s
+ # Maximum time worker is allowed to live (soft limit). Zero means no limit.
+ #
+ # Default: 0s
+ ttl: 0s
+
+ # How long worker can spend in IDLE mode after first using (soft limit). Zero means no limit.
+ #
+ # Default: 0s
+ idle_ttl: 10s
+
+ # Maximal worker memory usage in megabytes (soft limit). Zero means no limit.
+ #
+ # Default: 0
+ max_worker_memory: 128
+
+ # Maximal job lifetime (hard limit). Zero means no limit.
+ #
+ # Default: 0s
+ exec_ttl: 60s
+
+ # Internal temporal communication protocol, can be "proto" or "json".
+ #
+ # Default: "proto"
+ codec: proto
+
+ # Debugging level (only for "json" codec). Set 0 for nothing, 1 for "normal", and 2 for colorized messages.
+ #
+ # Default: ?
+ debug_level: 2
+
+# HTTP plugin settings.
http:
- # host and port separated by semicolon
- address: 127.0.0.1:44933
- max_request_size: 1024
- # middlewares for the http plugin, order matters
- middleware: [ "gzip", "headers" ]
- # uploads
- uploads:
- forbid: [ ".php", ".exe", ".bat" ]
- trusted_subnets:
- [
- "10.0.0.0/8",
- "127.0.0.0/8",
- "172.16.0.0/12",
- "192.168.0.0/16",
- "::1/128",
- "fc00::/7",
- "fe80::/10",
- ]
- # headers
- headers:
- cors:
- allowed_origin: "*"
- allowed_headers: "*"
- allowed_methods: "GET,POST,PUT,DELETE"
- allow_credentials: true
- exposed_headers: "Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma"
- max_age: 600
- request:
- input: "custom-header"
- response:
- output: "output-header"
- # http static
- static:
- dir: "tests"
- forbid: [ "" ]
- request:
- "input": "custom-header"
- response:
- "output": "output-header"
-
- pool:
- # default - num of logical CPUs
- num_workers: 6
- # default 0 - no limit
- max_jobs: 0
- # default 1 minute
- allocate_timeout: 60s
- # default 1 minute
- destroy_timeout: 60s
- # supervisor used to control http workers
- supervisor:
- # watch_tick defines how often to check the state of the workers (seconds)
- watch_tick: 1s
- # ttl defines maximum time worker is allowed to live (seconds) (soft)
- ttl: 0
- # idle_ttl defines maximum duration worker can spend in idle mode after first use. Disabled when 0 (seconds)
- idle_ttl: 10s
- # exec_ttl defines maximum lifetime per job (seconds)
- exec_ttl: 10s
- # max_worker_memory limits memory usage per worker (MB)
- max_worker_memory: 100
-
- ssl:
- # host and port separated by semicolon (default :443)
- address: :8892
- redirect: false
- cert: fixtures/server.crt
- key: fixtures/server.key
- root_ca: root.crt
- fcgi:
- address: tcp://0.0.0.0:7921
- http2:
- h2c: false
- max_concurrent_streams: 128
-
-# plugin which can be used in other Golang plugins
-# this is not an PHP plugin
-redis:
- # UniversalClient is an abstract client which - based on the provided options -
- # can connect to either clusters, or sentinel-backed failover instances
- # or simple single-instance servers. This can be useful for testing
- # cluster-specific applications locally.
- # if the number of addrs is 1 and master_name is empty, a single-node redis Client will be returned
- # if the number of addrs is two or more, a ClusterClient will be returned
- addrs:
- - "localhost:6379"
- # if a MasterName is passed a sentinel-backed FailoverClient will be returned
- master_name: ""
- username: ""
- password: ""
- db: 0
- sentinel_password: ""
- route_by_latency: false
- route_randomly: false
- dial_timeout: 0 # accepted values [1s, 5m, 3h]
- max_retries: 1
- min_retry_backoff: 0 # accepted values [1s, 5m, 3h]
- max_retry_backoff: 0 # accepted values [1s, 5m, 3h]
- pool_size: 0
- min_idle_conns: 0
- max_conn_age: 0 # accepted values [1s, 5m, 3h]
- read_timeout: 0 # accepted values [1s, 5m, 3h]
- write_timeout: 0 # accepted values [1s, 5m, 3h]
- pool_timeout: 0 # accepted values [1s, 5m, 3h]
- idle_timeout: 0 # accepted values [1s, 5m, 3h]
- idle_check_freq: 0 # accepted values [1s, 5m, 3h]
- read_only: false
-
-# boltdb simple driver
-boltdb:
- dir: "."
- file: "rr"
- bucket: "test"
- permissions: 0777
- # keys ttl check interval
- TTL: 60 # seconds
-
-# memcached driver
-memcached:
- addr:
- - "localhost:11211"
-
-# in memory KV driver
-memory:
- # keys ttl check interval
- interval: 60
+ # Host and port to listen on (eg.: `127.0.0.1:8080`).
+ #
+ # This option is required.
+ address: 127.0.0.1:8080
+
+ # Maximal incoming request size in megabytes. Zero means no limit.
+ #
+ # Default: 0
+ max_request_size: 256
+
+ # Middlewares for the http plugin, order is important. Allowed values is: "headers", "static", "gzip".
+ #
+ # Default value: []
+ middleware: ["headers", "static", "gzip"]
+
+ # Allow incoming requests only from the following subnets (https://en.wikipedia.org/wiki/Reserved_IP_addresses).
+ #
+ # Default: ["10.0.0.0/8", "127.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "::1/128", "fc00::/7", "fe80::/10"]
+ trusted_subnets: [
+ "10.0.0.0/8",
+ "127.0.0.0/8",
+ "172.16.0.0/12",
+ "192.168.0.0/16",
+ "::1/128",
+ "fc00::/7",
+ "fe80::/10",
+ ]
+
+ # File uploading settings.
+ uploads:
+ # Directory for file uploads. Empty value means to use $TEMP based on your OS.
+ #
+ # Default: ""
+ dir: "/tmp"
+
+ # Deny files with the following extensions to upload.
+ #
+ # Default: [".php", ".exe", ".bat"]
+ forbid: [".php", ".exe", ".bat", ".sh"]
+
+ # Settings for "headers" middleware (docs: https://roadrunner.dev/docs/http-headers).
+ headers:
+ # Allows to control CORS headers. Additional headers "Vary: Origin", "Vary: Access-Control-Request-Method",
+ # "Vary: Access-Control-Request-Headers" will be added to the server responses. Drop this section for this
+ # feature disabling.
+ cors:
+ # Controls "Access-Control-Allow-Origin" header value (docs: https://mzl.la/2OgD4Qf).
+ #
+ # Default: ""
+ allowed_origin: "*"
+
+ # Controls "Access-Control-Allow-Headers" header value (docs: https://mzl.la/2OzDVvk).
+ #
+ # Default: ""
+ allowed_headers: "*"
+
+ # Controls "Access-Control-Allow-Methods" header value (docs: https://mzl.la/3lbwyXf).
+ #
+ # Default: ""
+ allowed_methods: "GET,POST,PUT,DELETE"
+
+ # Controls "Access-Control-Allow-Credentials" header value (docs: https://mzl.la/3ekJGaY).
+ #
+ # Default: false
+ allow_credentials: true
+
+ # Controls "Access-Control-Expose-Headers" header value (docs: https://mzl.la/3qAqgkF).
+ #
+ # Default: ""
+ exposed_headers: "Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma"
+
+ # Controls "Access-Control-Max-Age" header value in seconds (docs: https://mzl.la/2PCSdvt).
+ #
+ # Default: 0
+ max_age: 600
+ # Automatically add headers to every request passed to PHP.
+ #
+ # Default: <empty map>
+ request:
+ input: "custom-header"
+
+ # Automatically add headers to every response.
+ #
+ # Default: <empty map>
+ response:
+ X-Powered-By: "RoadRunner"
+
+ # Settings for "static" middleware (docs: https://roadrunner.dev/docs/http-static).
+ static:
+ # Path to the directory with static assets.
+ #
+ # This option is required.
+ dir: "/path/to/directory"
+
+ # File extensions to forbid.
+ #
+ # Default: []
+ forbid: [".htaccess"]
+
+ # Automatically add headers to every request.
+ #
+ # Default: <empty map>
+ request:
+ input: "custom-header"
+
+ # Automatically add headers to every response.
+ #
+ # Default: <empty map>
+ response:
+ X-Powered-By: "RoadRunner"
+
+ # Workers pool settings.
+ pool:
+ # How many worker processes will be started. Zero (or nothing) means the number of logical CPUs.
+ #
+ # Default: 0
+ num_workers: 0
+
+ # Maximal count of worker executions. Zero (or nothing) means no limit.
+ #
+ # Default: 0
+ max_jobs: 64
+
+ # Timeout for worker allocation. Zero means no limit.
+ #
+ # Default: 60s
+ allocate_timeout: 60s
+
+ # Timeout for worker destroying before process killing. Zero means no limit.
+ #
+ # Default: 60s
+ destroy_timeout: 60s
+
+ # Supervisor is used to control http workers (previous name was "limit", docs:
+ # https://roadrunner.dev/docs/php-limit). "Soft" limits will not interrupt current request processing. "Hard"
+ # limit on the contrary - interrupts the execution of the request.
+ supervisor:
+ # How often to check the state of the workers.
+ #
+ # Default: 1s
+ watch_tick: 1s
+
+ # Maximum time worker is allowed to live (soft limit). Zero means no limit.
+ #
+ # Default: 0s
+ ttl: 0s
+
+ # How long worker can spend in IDLE mode after first using (soft limit). Zero means no limit.
+ #
+ # Default: 0s
+ idle_ttl: 10s
+
+ # Maximal worker memory usage in megabytes (soft limit). Zero means no limit.
+ #
+ # Default: 0
+ max_worker_memory: 128
+
+ # Maximal job lifetime (hard limit). Zero means no limit.
+ #
+ # Default: 0s
+ exec_ttl: 60s
+
+ # SSL (Secure Sockets Layer) settings (docs: https://roadrunner.dev/docs/http-https).
+ ssl:
+ # Host and port to listen on (eg.: `127.0.0.1:443`).
+ #
+ # Default: ":443"
+ address: "127.0.0.1:443"
+
+ # Automatic redirect from http:// to https:// schema.
+ #
+ # Default: false
+ redirect: true
+
+ # Path to the cert file. This option is required for SSL working.
+ #
+ # This option is required.
+ cert: /ssl/server.crt
+
+ # Path to the cert key file.
+ #
+ # This option is required.
+ key: /ssl/server.key
+
+ # Path to the root certificate authority file.
+ #
+ # This option is optional.
+ root_ca: /ssl/root.crt
+
+ # FastCGI frontend support.
+ fcgi:
+ # FastCGI connection DSN. Supported TCP and Unix sockets. An empty value disables this.
+ #
+ # Default: ""
+ address: tcp://0.0.0.0:7921
+
+ # HTTP/2 settings.
+ http2:
+ # HTTP/2 over non-encrypted TCP connection using H2C.
+ #
+ # Default: false
+ h2c: false
+
+ # Maximal concurrent streams count.
+ #
+ # Default: 128
+ max_concurrent_streams: 128
+
+# Application metrics in Prometheus format (docs: https://roadrunner.dev/docs/beep-beep-metrics). Drop this section
+# for this feature disabling.
metrics:
- # prometheus client address (path /metrics added automatically)
- address: localhost:2112
- collect:
- app_metric:
- type: histogram
- help: "Custom application metric"
- labels: [ "type" ]
- buckets: [ 0.1, 0.2, 0.3, 1.0 ]
- # objectives defines the quantile rank estimates with their respective
- # absolute error [ for summary only ]
- objectives:
- - 1.4: 2.3
- - 2.0: 1.4
+ # Prometheus client address (path /metrics added automatically).
+ #
+ # Default: "127.0.0.1:2112"
+ address: "127.0.0.1:2112"
+
+ # Application-specific metrics (published using an RPC connection to the server).
+ collect:
+ app_metric:
+ type: histogram
+ help: "Custom application metric"
+ labels: ["type"]
+ buckets: [0.1, 0.2, 0.3, 1.0]
+ # Objectives defines the quantile rank estimates with their respective absolute error (for summary only).
+ objectives:
+ - 1.4: 2.3
+ - 2.0: 1.4
+
+# Health check endpoint (docs: https://roadrunner.dev/docs/beep-beep-health). If response code is 200 - it means at
+# least one worker ready to serve requests. 500 - there are no workers ready to service requests.
+# Drop this section for this feature disabling.
+status:
+ # Host and port to listen on (eg.: `127.0.0.1:2114`). Use the following URL: http://127.0.0.1:2114/health?plugin=http
+ # Multiple plugins must be separated using "&" - http://127.0.0.1:2114/health?plugin=http&plugin=rpc where "http" and
+ # "rpc" are active (connected) plugins.
+ #
+ # This option is required.
+ address: 127.0.0.1:2114
+
+ # Response status code if a requested plugin not ready to handle requests
+ # Valid for both /health and /ready endpoints
+ #
+ # Default: 503
+ unavailable_status_code: 503
+# Automatically detect PHP file changes and reload connected services (docs:
+# https://roadrunner.dev/docs/beep-beep-reload). Drop this section for this feature disabling.
reload:
- # sync interval
- interval: 1s
- # global patterns to sync
- patterns: [ ".go" ]
- # list of included for sync services
- services:
- http:
- # recursive search for file patterns to add
- recursive: true
- # ignored folders
- ignore: [ "vendor" ]
- # service specific file pattens to sync
- patterns: [ ".php", ".go", ".md" ]
- # directories to sync. If recursive is set to true,
- # recursive sync will be applied only to the directories in `dirs` section
- dirs: [ "." ] \ No newline at end of file
+ # Sync interval.
+ #
+ # Default: "1s"
+ interval: 1s
+
+ # Global patterns to sync.
+ #
+ # Default: [".php"]
+ patterns: [".php"]
+
+ # List of included for sync services (this is a map, where key name is a plugin name).
+ #
+ # Default: <empty map>
+ services:
+ http:
+ # Directories to sync. If recursive is set to true, recursive sync will be applied only to the directories in
+ # "dirs" section. Dot (.) means "current working directory".
+ #
+ # Default: []
+ dirs: ["."]
+
+ # Recursive search for file patterns to add.
+ #
+ # Default: false
+ recursive: true
+
+ # Ignored folders.
+ #
+ # Default: []
+ ignore: ["vendor"]
+
+ # Service specific file pattens to sync.
+ #
+ # Default: []
+ patterns: [".php", ".go", ".md"]
+
+# RoadRunner internal container configuration (docs: https://github.com/spiral/endure).
+endure:
+ # How long to wait for stopping.
+ #
+ # Default: 30s
+ grace_period: 30s
+
+ # Print graph in the graphviz format to the stdout (paste here to visualize https://dreampuf.github.io)
+ #
+ # Default: false
+ print_graph: false
+
+ # Logging level. Possible values: "debug", "info", "warning", "error", "panic", "fatal".
+ #
+ # Default: "error"
+ log_level: error \ No newline at end of file
diff --git a/.rr.yaml.sample-minimal b/.rr.yaml.sample-minimal
index dbbfc5fda87c..05f26e4b4ce5 100644
--- a/.rr.yaml.sample-minimal
+++ b/.rr.yaml.sample-minimal
@@ -1,11 +1,13 @@
rpc:
- listen: tcp://127.0.0.1:6001
+ listen: tcp://127.0.0.1:6001
server:
- command: "php worker.php"
+ command: "php tests/psr-worker-bench.php"
http:
- address: "0.0.0.0:8080"
+ address: "0.0.0.0:8080"
+ pool:
+ num_workers: 4
logs:
- level: error \ No newline at end of file
+ level: error
diff --git a/PKGBUILD b/PKGBUILD
index 140daeeed804..c22ee271e57b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,8 +1,8 @@
# Maintainer: Leo <i@setuid0.dev>
pkgname=roadrunner
-pkgver=2.0.4
-pkgrel=4
+pkgver=2.1.1
+pkgrel=1
pkgdesc="High-performance PHP application server, load-balancer and process manager written in Golang"
arch=(x86_64)
url="https://roadrunner.dev/"
@@ -16,8 +16,8 @@ source=(
".rr.yaml.sample-minimal"
)
sha256sums=(
- "2625a698a7a6f2ada05ca1333066923eca1cf1503ceb1e045138adb2d12561cf"
- "14ab387b378fd7909f5dc6e8be22442ca14fb5353ae1ef55ab70dea0381a5fd3"
+ "7ffdff13d854e41ff48a1a64b037d98138fae5b0c8705c952f8f433e6eb80d77"
+ "8d2dd324ea27bffb30f86a0192ae50ff2bd1150836d6bd4689486b8cd9b64f06"
SKIP
SKIP
)
@@ -26,6 +26,8 @@ options=("!buildflags")
prepare() {
export GOPATH="$srcdir"/gopath
+ cd "$srcdir/$pkgname-$pkgver"
+
cd "$srcdir/$pkgname-binary-$pkgver"
go mod edit -replace "github.com/spiral/roadrunner/v2=../roadrunner-$pkgver"
go mod download