【发布时间】:2018-11-25 06:44:09
【问题描述】:
我有一个在 Nginx 上运行并部署到 Kubernetes 的 angular(6) 应用程序。这是我的配置:
这是我的 docker 文件:
FROM node:10-alpine as builder
COPY package.json ./
RUN yarn install && mkdir /myproject && mv ./node_modules ./myproject
WORKDIR /myproject
COPY . .
RUN yarn ng build
FROM nginx:1.15-alpine
COPY ./server.conf /etc/nginx/conf.d/default.conf
## Remove default nginx website
RUN rm -rf /usr/share/nginx/html/*
COPY --from=builder /myproject/dist /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]
我的 nginx 配置如下:
server {
listen 80;
server_name mywebiste.com www.mywebiste.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name mywebiste.com www.mywebiste.com;
ssl_certificate /etc/letsencrypt/live/mywebiste.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mywebiste.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
add_header Strict-Transport-Security max-age=15768000;
root /usr/share/nginx/html/myproject;
index.html;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
}
在这种方法中,我必须在本地机器上生成证书,然后将其复制到 kubernetes 集群。
我不确定这里是否有更好的方法来处理 SSL 证书。 我做了一些研究,有一个叫做 In nginx ingress controller 的东西,但不知道如何设置它,因为我也创建了一个 nginx 服务器。
【问题讨论】:
标签: angular nginx kubernetes google-cloud-platform