sites-available/README.md

66 lines
1.8 KiB
Markdown

# Templates
These NGINX configurations set up HTTP servers at port 80. HTTPS on port 443 should be set up using [certbot](https://www.nginx.com/blog/using-free-ssltls-certificates-from-lets-encrypt-with-nginx/).
## Static web page
The URL [example.space](http://example.space) will point to files in `/srv/www/example.space`.
```nginx
server {
listen 80;
listen [::]:80;
root /srv/www/example.space;
server_name example.space;
error_page 404 /404.html;
location / {
try_files $uri $uri/ =404;
}
}
```
## Reverse proxy
The URL [example.space](http://example.space) will point to the local [port 8080](http://localhost:8080).
```nginx
server {
listen 80;
listen [::]:80;
client_max_body_size 512M;
server_name example.space;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
## PHP site with HTTP authentication
The URL [example.space](http://example.space) will point to the PHP application at `/srv/www/example.space/index.php`. HTTP authentication done as indicated [here](https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/).
```nginx
server {
listen 80;
listen [::]:80;
server_name example.space;
root /srv/www/example.space;
index index.html index.php;
# set up HTTP basic authentication
auth_basic "Authentication Required";
auth_basic_user_file /etc/apache2/.htpasswd;
location / {
try_files $uri $uri/ =404;
}
# process PHP requests
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
```