Vreau să găzduiesc un site web și să rulez un proiect de microservicii pe propriul meu server.
Site-ul web va fi rulat cu serverul web Nginx. Domeniul site-ului web va arăta ca sampleapp.com și acest site web va folosi freessl.
Unul dintre serviciile proiectului Microservice va fi rulat cu serverul web Nginx ca serviciu într-un container docker. Acest serviciu folosește subdomenii ale meu sampleapp.com, cum ar fi api-dev.sampleapp.com, iar acele subdomenii ar trebui să funcționeze și cu SSL.
Când încerc să implementez servicii cu docker-compose, primesc următoarea eroare:
[avertisment] 1#1: nume de server conflictual „api-dev.sample.com” activat
0.0.0.0:80, ignorat
Principala preocupare este că cum pot configura ssl în interiorul docker. 443 este portul implicit pentru HTTPS.
Fișierul de configurare Nginx al microserviciului meu este ca mai jos.
worker_proceses auto;
evenimente {
conexiuni_muncitor 1024;
}
http {
Server {
asculta 80 default_server;
numele serverului "";
întoarcere 444;
}
Server {
nume_server game-dev.sampleapp.com;
Locație / {
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Gazdă $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_http_versiunea 1.1;
proxy_set_header Actualizare $http_upgrade;
proxy_set_header Conexiune „upgrade”;
proxy_pass http://game_nodes;
proxy_redirect dezactivat;
}
}
Server {
dacă ($gazdă = game-dev.sampleapp.com) {
returnează 301 https://$host$request_uri;
}
asculta 80;
asculta [::]:80;
nume_server game-dev.sampleapp.com;
întoarce 404;
}
game_nodes în amonte {
# activați sesiunea sticky
# ip_hash;
server game-alpha:3000;
keepalive 8;
}
Server {
nume_server api-dev.sampleapp.com;
Locație / {
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Gazdă $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://main_nodes;
proxy_redirect dezactivat;
}
}
Server {
# dacă ($gazdă = api-dev.sampleapp.com) {
# return 301 https://$host$request_uri;
#}
asculta 80;
asculta [::]:80;
nume_server api-dev.sampleapp.com;
întoarce 404;
}
noduri principale din amonte {
server main-alpha:8000;
server main-beta:8000;
keepalive 8;
}
}
Fișierul de configurare Nginx al site-ului este ca mai jos
Server {
asculta 8080;
asculta [::]:8080;
asculta 8443 ssl http2;
asculta [::]:8443 ssl http2;
nume_server sampleapp.com www.sampleapp.com;
rădăcină /var/www/sampleapp.com;
index index.html;
ssl_certificate /etc/ssl/certs/sampleapp.com.pem;
ssl_certificate_key /etc/ssl/private/sampleapp.com.key;
ssl_client_certificate /etc/ssl/certs/origin-pull-ca.pem;
ssl_verify_client activat;
client_max_body_size 100M;
autoindex dezactivat;
Locație / {
try_files $uri $uri/ =404;
}
}
Sunt dezvoltator, nu administrator de sistem, așa că îmi este greu să-mi dau seama care este cea mai bună modalitate de a face acest lucru.