我正在嘗試使用 nginx 映像運行帶有 Docker 的 UI 應用程式我可以毫無問題地訪問埠 80 上的服務,但是每當我嘗試通過 443 埠上的 https 訪問它時,我都無法訪問該站點不斷加載的應用程式并最終導致無法訪問我已經更新了 default.conf 中的 nginx.conf 檔案以允許通過埠 443 訪問
以下是我的 nginx.conf
charset utf-8;
server {
listen 80;
server_name localhost;
root /usr/nginx/html;
}
server {
listen 443;
server_name localhost;
root /usr/nginx/html;
}
我在 /usr/nginx 檔案夾中添加了 SSL 自簽名證書,并通過 Dockerfile 暴露了埠 443
以下是我的 Dockerfile
FROM nginx
COPY dist /usr/nginx/html
RUN chmod -R 777 /usr/nginx/html/*
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY domain.crt /usr/nginx
EXPOSE 80:443
ENTRYPOINT nginx -g 'daemon off;'
任何人都可以解釋我是埠 443 不允許任何訪問
uj5u.com熱心網友回復:
對于允許 SSL 加密的 nginx 服務器,您需要在 nginx.conf 中偵聽時提供 ssl 標志,只有 ssl 證書是不夠的,您還需要 ssl 證書密鑰和密碼,并且必須對其進行配置
charset utf-8;
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
}
server {
listen 443 ssl;
ssl_certificate /usr/nginx/ssl.crt;
ssl_certificate_key /usr/nginx/ssl.key;
ssl_password_file /usr/nginx/ssl.pass;
server_name localhost;
root /usr/nginx/html;
}
如果您在 kubernetes 集群上運行容器,則需要通過卷或通過嵌入在 docker 容器中放置 ssl 證書、密鑰和密碼,通過 kubernetes 機密添加它們將是更好的選擇對于 Dockerfile,您可以添加類似
FROM nginx
COPY dist /usr/nginx/html
RUN chmod -R 777 /usr/nginx/html/*
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY ssl.crt /usr/nginx/
COPY ssl.pass /usr/nginx/
COPY ssl.key /usr/nginx/
EXPOSE 80:443
ENTRYPOINT nginx -g 'daemon off;'
有關更多資訊,您可以參考 Nginx Docker 文章https://medium.com/@agusnavce/nginx-server-with-ssl-certificates-with-lets-encrypt-in-docker-670caefc2e31
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/339930.html
上一篇:CPLEX上的二元決策變數問題
