Refactor documentation for reverse proxy and routing guides
Deploy to Production / deploy (push) Successful in 5s
Deploy to Production / deploy (push) Successful in 5s
This commit is contained in:
+74
-74
@@ -58,27 +58,27 @@
|
||||
<h3>Extension Configuration</h3>
|
||||
<p>Extensions are configured in the <code>extensions</code> section:</p>
|
||||
|
||||
<pre><span class="directive">extensions:</span>
|
||||
- <span class="directive">type:</span> <span class="value">routing</span>
|
||||
<span class="directive">config:</span>
|
||||
<span class="comment"># extension-specific configuration</span>
|
||||
<pre><code class="language-yaml">extensions:
|
||||
- type: routing
|
||||
config:
|
||||
# extension-specific configuration
|
||||
|
||||
- <span class="directive">type:</span> <span class="value">security</span>
|
||||
<span class="directive">config:</span>
|
||||
<span class="comment"># ...</span></pre>
|
||||
- type: security
|
||||
config:
|
||||
# ...</code></pre>
|
||||
|
||||
<h3>Routing Extension</h3>
|
||||
<p>The primary extension for URL routing. See <a href="../guides/routing.html">Routing Guide</a> for full documentation.</p>
|
||||
|
||||
<pre><span class="directive">- type:</span> <span class="value">routing</span>
|
||||
<span class="directive">config:</span>
|
||||
<span class="directive">regex_locations:</span>
|
||||
<span class="value">"=/health"</span>:
|
||||
<span class="directive">return:</span> <span class="value">"200 OK"</span>
|
||||
<span class="value">"~^/api/"</span>:
|
||||
<span class="directive">proxy_pass:</span> <span class="value">"http://backend:9001"</span>
|
||||
<span class="value">"__default__"</span>:
|
||||
<span class="directive">root:</span> <span class="value">"./static"</span></pre>
|
||||
<pre><code class="language-python">- type: routing
|
||||
config:
|
||||
regex_locations:
|
||||
"=/health":
|
||||
return: "200 OK"
|
||||
"~^/api/":
|
||||
proxy_pass: "http://backend:9001"
|
||||
"__default__":
|
||||
root: "./static"</code></pre>
|
||||
|
||||
<h3>Security Extension</h3>
|
||||
<p>Adds security headers and IP-based access control.</p>
|
||||
@@ -95,16 +95,16 @@
|
||||
<dd>List of blocked IP addresses (blacklist mode)</dd>
|
||||
</dl>
|
||||
|
||||
<pre><span class="directive">- type:</span> <span class="value">security</span>
|
||||
<span class="directive">config:</span>
|
||||
<span class="directive">security_headers:</span>
|
||||
<span class="directive">X-Frame-Options:</span> <span class="value">DENY</span>
|
||||
<span class="directive">X-Content-Type-Options:</span> <span class="value">nosniff</span>
|
||||
<span class="directive">X-XSS-Protection:</span> <span class="value">"1; mode=block"</span>
|
||||
<span class="directive">Strict-Transport-Security:</span> <span class="value">"max-age=31536000"</span>
|
||||
<span class="directive">blocked_ips:</span>
|
||||
- <span class="value">"192.168.1.100"</span>
|
||||
- <span class="value">"10.0.0.50"</span></pre>
|
||||
<pre><code class="language-bash">- type: security
|
||||
config:
|
||||
security_headers:
|
||||
X-Frame-Options: DENY
|
||||
X-Content-Type-Options: nosniff
|
||||
X-XSS-Protection: "1; mode=block"
|
||||
Strict-Transport-Security: "max-age=31536000"
|
||||
blocked_ips:
|
||||
- "192.168.1.100"
|
||||
- "10.0.0.50"</code></pre>
|
||||
|
||||
<p>Default security headers if not specified:</p>
|
||||
<ul class="indent">
|
||||
@@ -125,11 +125,11 @@
|
||||
<dd>Default cache TTL in seconds. Default: <code>3600</code></dd>
|
||||
</dl>
|
||||
|
||||
<pre><span class="directive">- type:</span> <span class="value">caching</span>
|
||||
<span class="directive">config:</span>
|
||||
<span class="directive">cache_ttl:</span> <span class="value">3600</span>
|
||||
<span class="directive">cache_patterns:</span>
|
||||
- <span class="value">"/api/public/*"</span></pre>
|
||||
<pre><code class="language-bash">- type: caching
|
||||
config:
|
||||
cache_ttl: 3600
|
||||
cache_patterns:
|
||||
- "/api/public/*"</code></pre>
|
||||
|
||||
<h3>Monitoring Extension</h3>
|
||||
<p>Collects request metrics and provides statistics.</p>
|
||||
@@ -140,9 +140,9 @@
|
||||
<dd>Enable metrics collection. Default: <code>true</code></dd>
|
||||
</dl>
|
||||
|
||||
<pre><span class="directive">- type:</span> <span class="value">monitoring</span>
|
||||
<span class="directive">config:</span>
|
||||
<span class="directive">enable_metrics:</span> <span class="value">true</span></pre>
|
||||
<pre><code class="language-bash">- type: monitoring
|
||||
config:
|
||||
enable_metrics: true</code></pre>
|
||||
|
||||
<p>Collected metrics (available at <code>/metrics</code>):</p>
|
||||
<ul class="indent">
|
||||
@@ -220,28 +220,28 @@
|
||||
<dd>Django settings module (for Django apps only)</dd>
|
||||
</dl>
|
||||
|
||||
<pre><span class="directive">- type:</span> <span class="value">asgi</span>
|
||||
<span class="directive">config:</span>
|
||||
<span class="directive">mounts:</span>
|
||||
<span class="comment"># FastAPI application</span>
|
||||
- <span class="directive">path:</span> <span class="value">"/api"</span>
|
||||
<span class="directive">app_path:</span> <span class="value">"myapp.api:app"</span>
|
||||
<span class="directive">app_type:</span> <span class="value">asgi</span>
|
||||
<span class="directive">name:</span> <span class="value">"api"</span>
|
||||
<pre><code class="language-bash">- type: asgi
|
||||
config:
|
||||
mounts:
|
||||
# FastAPI application
|
||||
- path: "/api"
|
||||
app_path: "myapp.api:app"
|
||||
app_type: asgi
|
||||
name: "api"
|
||||
|
||||
<span class="comment"># Flask application (WSGI)</span>
|
||||
- <span class="directive">path:</span> <span class="value">"/admin"</span>
|
||||
<span class="directive">app_path:</span> <span class="value">"myapp.admin:app"</span>
|
||||
<span class="directive">app_type:</span> <span class="value">wsgi</span>
|
||||
<span class="directive">name:</span> <span class="value">"admin"</span>
|
||||
# Flask application (WSGI)
|
||||
- path: "/admin"
|
||||
app_path: "myapp.admin:app"
|
||||
app_type: wsgi
|
||||
name: "admin"
|
||||
|
||||
<span class="comment"># Factory pattern with arguments</span>
|
||||
- <span class="directive">path:</span> <span class="value">"/api/v2"</span>
|
||||
<span class="directive">app_path:</span> <span class="value">"myapp.api:create_app"</span>
|
||||
<span class="directive">factory:</span> <span class="value">true</span>
|
||||
<span class="directive">factory_args:</span>
|
||||
<span class="directive">debug:</span> <span class="value">true</span>
|
||||
<span class="directive">version:</span> <span class="value">"2.0"</span></pre>
|
||||
# Factory pattern with arguments
|
||||
- path: "/api/v2"
|
||||
app_path: "myapp.api:create_app"
|
||||
factory: true
|
||||
factory_args:
|
||||
debug: true
|
||||
version: "2.0"</code></pre>
|
||||
|
||||
<p>Supported frameworks:</p>
|
||||
<ul class="indent">
|
||||
@@ -271,27 +271,27 @@
|
||||
<li>Request tracing with X-Request-ID</li>
|
||||
</ul>
|
||||
|
||||
<pre><span class="directive">- type:</span> <span class="value">process_orchestration</span>
|
||||
<span class="directive">config:</span>
|
||||
<span class="directive">port_range:</span> <span class="value">[9000, 9999]</span>
|
||||
<span class="directive">health_check_enabled:</span> <span class="value">true</span>
|
||||
<span class="directive">proxy_timeout:</span> <span class="value">60.0</span>
|
||||
<span class="directive">logging:</span>
|
||||
<span class="directive">httpx_level:</span> <span class="value">warning</span>
|
||||
<span class="directive">proxy_logs:</span> <span class="value">true</span>
|
||||
<span class="directive">health_check_logs:</span> <span class="value">false</span>
|
||||
<span class="directive">apps:</span>
|
||||
- <span class="directive">name:</span> <span class="value">api</span>
|
||||
<span class="directive">path:</span> <span class="value">/api</span>
|
||||
<span class="directive">app_path:</span> <span class="value">myapp.api:app</span>
|
||||
<span class="directive">workers:</span> <span class="value">4</span>
|
||||
<span class="directive">health_check_path:</span> <span class="value">/health</span>
|
||||
<pre><code class="language-yaml">- type: process_orchestration
|
||||
config:
|
||||
port_range: [9000, 9999]
|
||||
health_check_enabled: true
|
||||
proxy_timeout: 60.0
|
||||
logging:
|
||||
httpx_level: warning
|
||||
proxy_logs: true
|
||||
health_check_logs: false
|
||||
apps:
|
||||
- name: api
|
||||
path: /api
|
||||
app_path: myapp.api:app
|
||||
workers: 4
|
||||
health_check_path: /health
|
||||
|
||||
- <span class="directive">name:</span> <span class="value">admin</span>
|
||||
<span class="directive">path:</span> <span class="value">/admin</span>
|
||||
<span class="directive">app_path:</span> <span class="value">myapp.admin:app</span>
|
||||
<span class="directive">app_type:</span> <span class="value">wsgi</span>
|
||||
<span class="directive">workers:</span> <span class="value">2</span></pre>
|
||||
- name: admin
|
||||
path: /admin
|
||||
app_path: myapp.admin:app
|
||||
app_type: wsgi
|
||||
workers: 2</code></pre>
|
||||
|
||||
<h4>App Configuration</h4>
|
||||
<dl>
|
||||
|
||||
Reference in New Issue
Block a user