2017-12-11 6 views
0

Ich habe das Problem mit meiner Nginx Konfiguration, ich kann meine server_name nicht festlegen. Ich habe versucht, meinen Docker Container mit Nginx Konfiguration im Inneren zu bauen.Nginx Docker haben keinen Zugriff auf den Server über server_name

Körper meiner Dockerfile.

FROM nginx 

RUN rm -rf /etc/nginx/conf.d/* 

RUN mkdir /etc/nginx/ssl 
RUN chown -R root:root /etc/nginx/ssl 
RUN chmod -R 600 /etc/nginx/ssl 
COPY etc/ssl/certs/qwobbleprod.crt /etc/nginx/ssl 
COPY etc/ssl/certs/app.qwobble.com.key /etc/nginx/ssl 

COPY nginx/default.conf /etc/nginx/conf.d/ 

COPY dist /usr/share/nginx/html 

EXPOSE 443 

und meine Nginx Konfigurationsdatei ->

server { 
    listen  443 ssl default_server; 
    root  /usr/share/nginx/html; 

    server_name blabla.com www.blabla.com; 

    access_log /var/log/nginx/nginx.access.log; 
    error_log /var/log/nginx/nginx.error.log; 

    ssl on; 
    ssl_certificate /etc/nginx/ssl/blabla.crt; 
    ssl_certificate_key /etc/nginx/ssl/blabla.com.key; 

    sendfile on; 

    location/{ 
    try_files $uri /index.html =404; 
    } 

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|html)$ { 
    expires max; 
    log_not_found off; 
    } 

} 

Ich versuchte, meinen Docker Behälter

docker build -t <name> . 
docker run -it -p 443:443 <name> 

Als Ergebnis zu erstellen und auszuführen, habe ich meine App auf https://localhost:443 aber ich habe keinen Zugriff auf meine App durch https://blabla.com:443 oder https://www.blabla.com:443

Ich bin ein Neuling in der Arbeit mit Docker und Nginx, und ich habe keine Ahnung, was los ist. Ich werde für jede Hilfe dankbar sein!

+0

Da Sie nur eine Website hosten, ist der Servername nicht wichtig. Sie haben bereits 'listen' gesagt, dass dies der Standardwert ist, da 443 der Port ist, an den alle Anfragen an diesen Port an docker und das nginx-Element gesendet werden. Nginx würde sehen, dass dies die Standard-Site ist. –

Antwort

0

In diesem Fall würde ich erwarten, dass Sie tatsächlich die Domäne blabla.com benötigen und dass der DNS (Domain Name Service) auf Ihre externe IP-Adresse verweisen sollte.

Sie müssen dann den Router so konfigurieren, dass er Verbindungen an Port 443 akzeptiert (was Sie wünschen) und auf den Computer verweisen, auf dem das Docker-Image auf dem Port ausgeführt wird, auf dem er ausgeführt wird.

Es kann auch notwendig sein, die Firewall-Einstellungen auf dem Computer-Docker zu öffnen.

Ich sehe, Sie möchten auch auf https hören, so dass Sie einige Zertifikate dafür benötigen könnten.

oder wenn Sie zu fälschen es möchten, können Sie Ihre hosts-Datei (auf Mac oder Linux /etc/hosts) bearbeiten und einen Eintrag hinzufügen:

## 
# Host Database 
# 
# localhost is used to configure the loopback interface 
# when the system is booting. Do not change this entry. 
## 
127.0.0.1 localhost 
255.255.255.255 broadcasthost 
::1    localhost 

127.0.0.1 blabla.com 

aber jetzt blabla.com wird nur auf Ihrem Rechner arbeiten .. .

Ich hoffe es hilft

Verwandte Themen