Files
wehub-resource-sync d718c5a372
CI / compile_and_lint (push) Failing after 0s
CI / docker_build (linux/amd64, -linux-amd64-duckdb, duckdb) (push) Failing after 0s
CI / docker_build (linux/arm64, -linux-arm64, minimal) (push) Failing after 2s
CI / docker_build (linux/arm64, -linux-arm64-duckdb, duckdb) (push) Failing after 1s
CI / docker_build (linux/amd64, minimal) (push) Failing after 1s
CI / test (, sqlite, sqlite::memory:) (push) Has been skipped
CI / test (mssql, mssql, mssql://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / test (mysql, mysql, mysql://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / test (oracle, oracle, Driver=Oracle 21 ODBC driver;Dbq=//127.0.0.1:1521/FREEPDB1;Uid=root;Pwd=Password123!) (push) Has been skipped
CI / test (postgres, odbc, Driver=PostgreSQL Unicode;Server=127.0.0.1;Port=5432;Database=sqlpage;UID=root;PWD=Password123!, true) (push) Has been skipped
CI / test (postgres, postgres, postgres://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / playwright (push) Has been skipped
CI / docker_build (linux/arm/v7, -linux-arm-v7, minimal) (push) Failing after 0s
CI / hurl_examples (push) Failing after 8s
deploy website / deploy_official_site (push) Failing after 1s
CI / hurl (${{ matrix.example }}) (push) Has been skipped
CI / docker_push (duckdb) (push) Has been cancelled
CI / docker_push (minimal) (push) Has been cancelled
CI / windows_test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:31:57 +08:00

62 lines
2.3 KiB
Markdown

# SQLPage with Apache Reverse Proxy
This example demonstrates how to run SQLPage behind the popular Apache HTTP Server.
This is particularly useful when you already have a server running Apache (with a PHP application for example)
and you want to add a SQLPage application.
This setup allows you to:
- Host multiple websites/applications on a single server
- Serve static files directly through Apache
- Route specific paths to SQLPage
## How it Works
Apache acts as a reverse proxy, forwarding requests for `/my_website` to the SQLPage
application while serving static content directly. The configuration uses:
- [`mod_proxy`](https://httpd.apache.org/docs/current/mod/mod_proxy.html) and [`mod_proxy_http`](https://httpd.apache.org/docs/current/mod/mod_proxy_http.html) for reverse proxy functionality
- [Virtual hosts](https://httpd.apache.org/docs/current/vhosts/) for domain-based routing
- [`ProxyPass`](https://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypass) directives to forward specific paths
## Docker Setup
The `docker-compose.yml` defines three services:
- `apache`: Serves static content and routes requests
- `sqlpage`: Handles dynamic content generation
- `mysql`: Provides database storage
## Native Apache Setup
To use this with a native Apache installation instead of Docker:
1. Install Apache and required modules:
```bash
sudo apt install apache2
sudo a2enmod proxy proxy_http
```
2. Configuration changes:
- Place the `httpd.conf` content in `/etc/apache2/sites-available/my-site.conf`
- Adjust paths:
- Change `/var/www` to your static files location
- Update SQLPage URL to match your actual SQLPage server address (`http://localhost:8080/my_website` if you are running sqlpage locally)
- Modify log paths to standard Apache locations (`/var/log/apache2/`)
3. SQLPage setup:
- Install SQLPage on your server
- Configure it with the same `site_prefix` in `sqlpage.json`
- Ensure MySQL is accessible from the SQLPage instance
4. Enable the site:
```bash
sudo a2ensite my-site
sudo systemctl reload apache2
```
## Files Overview
- `httpd.conf`: Apache configuration with proxy rules
- `sqlpage_config/sqlpage.json`: SQLPage configuration with URL prefix
- `static/`: Static files served directly by Apache
- `website/`: SQLPage SQL files for dynamic content