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
62 lines
2.3 KiB
Markdown
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
|