簡體   English   中英

Angular app + NGINX + Docker

[英]Angular app + NGINX + Docker

我在docker上使用nginx提供Angular應用程序時遇到問題。 只有當我想在網站上啟用SSL時才會出現問題。 我正在使用Bamboo進行部署。

這是我的Dockerfile:

FROM node:8.6 as node
WORKDIR /app
COPY package.json /app/
COPY ssl/certificate.crt /app/
COPY ssl/ /app/ssl

RUN npm install -g @angular/cli --unsafe
RUN npm install

COPY ./ /app/
RUN ng build --prod --aot=false --env=prod

FROM nginx

RUN mkdir -p /ssl
COPY --from=node /app/ssl/ /ssl/
ADD ssl/certificate.crt /etc/nginx/certs/
ADD ssl/private.key /etc/nginx/certs/
RUN ls /etc/nginx/certs/

COPY --from=node /app/dist/ /usr/share/nginx/html

RUN ls /usr/share/nginx/html

要運行的腳本:

docker build -t test-app .
docker run --name test-app-cont -v /etc/nginx/certs:/etc/nginx/certs -d -p 3010:443 test-app

部署成功運行,但服務器上沒有應用程序。

請看一下這個屏幕:列出/ certs和/ html目錄中的內容。 一切似乎都很好。

在此輸入圖像描述

如果我刪除專用於SSL的這些行,一切正常,在服務器上我可以看到我的應用程序,但只能通過http。

證書有效,我查了一下。

我究竟做錯了什么?

要啟用SSL,您需要為其配置Nginx。 就我在您的代碼中看到的那樣,您仍在使用默認的Nginx配置而不做任何修改。 以下是有關如何在Nginx啟用S​​SL的示例。 主要組成部分是:

server {

    listen 443;
    server_name jenkins.domain.com;

    ssl_certificate           /etc/nginx/cert.crt;
    ssl_certificate_key       /etc/nginx/cert.key;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

另外我看到你在docker run命令中掛載一個卷(-v / etc / nginx / certs:/ etc / nginx / certs),這意味着容器中的/ etc / nginx / certs將與宿主相同因此,請確保您在主機上擁有正確的證書!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM