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
|
### 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
|
### Konfiguracja reverse proxy
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,16 @@
|
||||||
services:
|
services:
|
||||||
dotnet:
|
dotnet-1:
|
||||||
build: ./dotnet
|
build: ./dotnet
|
||||||
environment:
|
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:
|
ports:
|
||||||
- "5000:5000"
|
- "80:80"
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
var app = builder.Build();
|
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}";
|
var url = $"http://0.0.0.0:{port}";
|
||||||
|
|
||||||
app.MapGet("/{**ok}", async (HttpContext context) =>
|
app.MapGet("/{**ok}", async (HttpContext context) =>
|
||||||
|
|
@ -17,6 +18,7 @@ app.MapGet("/{**ok}", async (HttpContext context) =>
|
||||||
var headers = request.Headers;
|
var headers = request.Headers;
|
||||||
|
|
||||||
var responseText = new System.Text.StringBuilder();
|
var responseText = new System.Text.StringBuilder();
|
||||||
|
responseText.AppendLine($"Server Name: {name}");
|
||||||
responseText.AppendLine($"IP Address: {ip}");
|
responseText.AppendLine($"IP Address: {ip}");
|
||||||
responseText.AppendLine($"Method: {method}");
|
responseText.AppendLine($"Method: {method}");
|
||||||
responseText.AppendLine($"Scheme: {scheme}");
|
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