mirror of
https://github.com/iv-org/invidious.git
synced 2025-07-25 13:35:47 -05:00
feat: Add configurable max_request_line_size to handle long URLs
This commit adds a new configuration option `max_request_line_size` that allows users to increase the HTTP request line size limit. This is particularly useful for handling very long continuation tokens that can cause 414 (URI Too Long) errors. Changes: - Add `max_request_line_size` property to Config class - Configure Kemal server to use the custom limit if specified - Document the option in config.example.yml with recommendations - Add examples in docker-compose.yml for both YAML and env var configuration The default behavior remains unchanged (8KB limit) unless explicitly configured. This provides a solution for users experiencing 414 errors without affecting existing installations.
This commit is contained in:
parent
df8839d1f0
commit
2b312a1ec5
@ -191,6 +191,20 @@ https_only: false
|
|||||||
# path: /tmp/invidious.sock
|
# path: /tmp/invidious.sock
|
||||||
# permissions: 777
|
# permissions: 777
|
||||||
|
|
||||||
|
##
|
||||||
|
## Maximum size of the HTTP request line (in bytes).
|
||||||
|
## Increase this value if you encounter 414 errors when using URLs with long
|
||||||
|
## query parameters (e.g., very long continuation tokens).
|
||||||
|
##
|
||||||
|
## Note: This directly sets the HTTP server's max_request_line_size.
|
||||||
|
## Be cautious when increasing this value on public instances.
|
||||||
|
##
|
||||||
|
## Accepted values: integer (size in bytes)
|
||||||
|
## Default: 8192 (8KB, Crystal's default)
|
||||||
|
## Recommended: 16384 (16KB) if experiencing 414 errors
|
||||||
|
##
|
||||||
|
#max_request_line_size: 16384
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------
|
# -----------------------------
|
||||||
# Network (outbound)
|
# Network (outbound)
|
||||||
|
@ -18,6 +18,8 @@ services:
|
|||||||
# Please read the following file for a comprehensive list of all available
|
# Please read the following file for a comprehensive list of all available
|
||||||
# configuration options and their associated syntax:
|
# configuration options and their associated syntax:
|
||||||
# https://github.com/iv-org/invidious/blob/master/config/config.example.yml
|
# https://github.com/iv-org/invidious/blob/master/config/config.example.yml
|
||||||
|
# Uncomment to increase max request line size (if you get 414 errors):
|
||||||
|
# INVIDIOUS_MAX_REQUEST_LINE_SIZE: 16384
|
||||||
INVIDIOUS_CONFIG: |
|
INVIDIOUS_CONFIG: |
|
||||||
db:
|
db:
|
||||||
dbname: invidious
|
dbname: invidious
|
||||||
|
@ -252,6 +252,11 @@ Kemal.config.app_name = "Invidious"
|
|||||||
{% end %}
|
{% end %}
|
||||||
|
|
||||||
Kemal.run do |config|
|
Kemal.run do |config|
|
||||||
|
# Set max request line size if configured
|
||||||
|
if max_size = CONFIG.max_request_line_size
|
||||||
|
config.server.not_nil!.max_request_line_size = max_size
|
||||||
|
end
|
||||||
|
|
||||||
if socket_binding = CONFIG.socket_binding
|
if socket_binding = CONFIG.socket_binding
|
||||||
File.delete?(socket_binding.path)
|
File.delete?(socket_binding.path)
|
||||||
# Create a socket and set its desired permissions
|
# Create a socket and set its desired permissions
|
||||||
|
@ -157,6 +157,8 @@ class Config
|
|||||||
property host_binding : String = "0.0.0.0"
|
property host_binding : String = "0.0.0.0"
|
||||||
# Path and permissions to make Invidious listen on a UNIX socket instead of a TCP port
|
# Path and permissions to make Invidious listen on a UNIX socket instead of a TCP port
|
||||||
property socket_binding : SocketBindingConfig? = nil
|
property socket_binding : SocketBindingConfig? = nil
|
||||||
|
# Maximum size of request line (in bytes), increase if you get 414 errors with long URLs
|
||||||
|
property max_request_line_size : Int32? = nil
|
||||||
# Pool size for HTTP requests to youtube.com and ytimg.com (each domain has a separate pool of `pool_size`)
|
# Pool size for HTTP requests to youtube.com and ytimg.com (each domain has a separate pool of `pool_size`)
|
||||||
property pool_size : Int32 = 100
|
property pool_size : Int32 = 100
|
||||||
# HTTP Proxy configuration
|
# HTTP Proxy configuration
|
||||||
|
Loading…
x
Reference in New Issue
Block a user