Skip to content

Commit

Permalink
www domain redirection
Browse files Browse the repository at this point in the history
  • Loading branch information
by-cx committed Nov 19, 2024
1 parent 630a5e3 commit be1321a
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 0 deletions.
62 changes: 62 additions & 0 deletions docs/cs/www.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Přesměrování www subdomény

U aplikací se občas hodí přesměrování subdomény *www* na hlavní doménu. Pokud to nelze řešit v kódu samotném, tak je možné upravit konfiguraci Nginxu, který běží v každém kontejneru s aplikací a je uživatelsky dostupný. Konfigurační soubor se nachází v `/srv/conf/nginx.d/app.conf`.

## Postup

V souboru `/srv/conf/nginx.d/app.conf` je potřeba oddělit chování pro obě domény. Hlavní doména bude mít sekci *server* podobnou té výchozí a přidáme *server* sekci pro doménu s *www*. Dejme tomu, že soubor teď vypadá takto:

```nginx
server {
listen 0.0.0.0:8000;
listen [::]:8000;
location / {
proxy_pass http://127.0.0.1:3000/;
proxy_redirect default;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
}
```

Tím Nginxu říkáme, že má přesměrovat všechen provoz na jiný HTTP server běžící na portu 3000, kde poslouchá třeba HTTP server z Node.js. Do konfiguračního souboru je potřeba přidat novou *server* sekci pro www a do té současné doménu či domény. Dejme tomu, že pracujeme s doménami *example.com* a *www.example.com*.


```nginx
server {
listen 0.0.0.0:8000;
listen [::]:8000;
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
server {
listen 0.0.0.0:8000;
listen [::]:8000;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000/;
proxy_redirect default;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
}
```

Pomocí *server_name* oddělíme chování pro obě domény, kdy u *www* dojde k přesměrování na hlavní doménu.

Teď se ujistíme, že je konfigurace validní:

```bash
nginx -t
```

A restartujeme Nginx:

```bash
supervisorctl restart nginx
```

Nyní by měla aplikace fungovat tak, že při přístupu na *www.example.com* dojde k přesměrování na *example.com*.
1 change: 1 addition & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ Snažili jsme se přímočaře popsat, jak Roští funguje a jak tam nasadit va
* [Připojení k SSH a databázím z venku](cs/ssh.md)
* [Instalace extra balíčků do systému](cs/extra-packages.md)
* [Více služeb v jedné aplikaci](cs/multidomains.md)
* [Přesměrování www domény](cs/www.md)
* [Cron](cs/cron.md)
* [Memcached a Redis](cs/memcached_redis.md)
* [MongoDB](cs/mongo.md)
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ nav:
- "Připojení k SSH a databázím z venku": cs/ssh.md
- "Instalace extra balíčků do systému": cs/extra-packages.md
- "Více služeb v jedné aplikaci": cs/multidomains.md
- "Přesměrování www domény": cs/www.md
- "Cron": cs/cron.md
- "Memcached a Redis": cs/memcached_redis.md
- "MongoDB": cs/mongo.md
Expand Down

0 comments on commit be1321a

Please sign in to comment.