diff options
-rw-r--r-- | .SRCINFO | 12 | ||||
-rw-r--r-- | .rr.yaml.sample-full | 654 | ||||
-rw-r--r-- | .rr.yaml.sample-minimal | 10 | ||||
-rw-r--r-- | PKGBUILD | 10 |
4 files changed, 474 insertions, 212 deletions
@@ -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 @@ -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 |