-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
64 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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*. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters