nginx start
This commit is contained in:
parent
e95792c3ed
commit
038cb33910
5 changed files with 73 additions and 4 deletions
29
RAPORT.md
29
RAPORT.md
|
|
@ -46,6 +46,35 @@ Docker compose jest narzędziem do definiowania i uruchamianiania wilokontenerow
|
|||
|
||||
### Dodanie kontera
|
||||
|
||||
Utworzenie instancji dotnet przy użyciu dockera jest bardzo proste, wystarczy użyć poniższą komendę
|
||||
|
||||
```sh
|
||||
docker run -v ./nginx/html:/usr/share/nginx/html:ro -p 80:80 nginx
|
||||
```
|
||||
|
||||
Polecenie `docker run` uruchamia dany kontener, w tym przypadku `docker run nginx` uruchamia konter o nazwie nginx. Ponieważ na maszynie lokalnej nie ma kontenera o takiej nazwie, docker szuka tego kontenera w repozytorium hub.docker.com
|
||||
|
||||
Jednak sam kontener z serwerem niewiele nam daje, potrzebujemy jeszcze powiedzieć mu co ma serwować, i gdzie ma to serwować. W tym celu potrzemujemy kolejne dwie opcje do komendy
|
||||
|
||||
- `-v ./nginx/html:/usr/share/nginx/html:ro` tworzy link między lokalnym folderem, a folderem w kontenerze
|
||||
- `-v` mówi dockerowi że chcemy zamontować jakiś folder/volume
|
||||
- `./nginx/html` to lokalizacja na systemie hosta
|
||||
- `/usr/share/nginx/html` to lokalizacja na systemie kontenera
|
||||
- `ro` mówi dockerowi że folder jest w trybie tylko do odczytu
|
||||
- `-p 80:80` piekierowuje port z kontenera do hosta
|
||||
- pierwsza wartość to numer portu hosta
|
||||
- druga wartość to numer portu kontenera
|
||||
|
||||
Podobnie wygląda konfiguracja kontenera w docker docker compsose
|
||||
|
||||
- `image` to nazwa kontenera który chcemy uruchomić
|
||||
- `volumes` to odpowiednik `-v`
|
||||
- `ports` to odpowiednik `-p`
|
||||
|
||||
#### dokumentacja kontenera
|
||||
|
||||
- [[https://hub.docker.com/_/nginx]]
|
||||
|
||||
### Konfiguracja reverse proxy
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -1,7 +1,16 @@
|
|||
services:
|
||||
dotnet:
|
||||
dotnet-1:
|
||||
build: ./dotnet
|
||||
environment:
|
||||
- PORT=5000
|
||||
- NAME=Fili
|
||||
dotnet-2:
|
||||
build: ./dotnet
|
||||
environment:
|
||||
- NAME=Kili
|
||||
nginx:
|
||||
image: nginx
|
||||
volumes:
|
||||
- ./nginx/html:/usr/share/nginx/html:ro
|
||||
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||
ports:
|
||||
- "5000:5000"
|
||||
- "80:80"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
var builder = WebApplication.CreateBuilder(args);
|
||||
var app = builder.Build();
|
||||
|
||||
var port = Environment.GetEnvironmentVariable("PORT") ?? "5000";
|
||||
var port = Environment.GetEnvironmentVariable("PORT") ?? "80";
|
||||
var name = Environment.GetEnvironmentVariable("NAME") ?? "unnamed";
|
||||
var url = $"http://0.0.0.0:{port}";
|
||||
|
||||
app.MapGet("/{**ok}", async (HttpContext context) =>
|
||||
|
|
@ -17,6 +18,7 @@ app.MapGet("/{**ok}", async (HttpContext context) =>
|
|||
var headers = request.Headers;
|
||||
|
||||
var responseText = new System.Text.StringBuilder();
|
||||
responseText.AppendLine($"Server Name: {name}");
|
||||
responseText.AppendLine($"IP Address: {ip}");
|
||||
responseText.AppendLine($"Method: {method}");
|
||||
responseText.AppendLine($"Scheme: {scheme}");
|
||||
|
|
|
|||
1
nginx/html/index.html
Normal file
1
nginx/html/index.html
Normal file
|
|
@ -0,0 +1 @@
|
|||
hello from nginx!
|
||||
28
nginx/nginx.conf
Normal file
28
nginx/nginx.conf
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
events { }
|
||||
|
||||
http {
|
||||
upstream dotnet_app {
|
||||
server dotnet-1;
|
||||
server dotnet-2;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
|
||||
location /dotnet/ {
|
||||
proxy_pass http://dotnet_app;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue