docker - 无法访问使用 Nginx 服务 Dockerized VueJS 应用程序并导致 SSL 错误

标签 docker vue.js ssl nginx

我尝试运行一个 Dockerized VueJS 应用程序。这是我的 Dockerfile

FROM node:lts-alpine

# install simple http server for serving static content
RUN npm install -g http-server

# make the 'app' folder the current working directory
WORKDIR /app

# copy both 'package.json' and 'package-lock.json' (if available)
COPY package*.json ./

# install project dependencies
RUN npm install

# copy project files and folders to the current working directory (i.e. 'app' folder)
COPY . .

# build app for production with minification
RUN npm run build

CMD [ "http-server", "-p 5000", "dist" ]

我使用以下命令启动容器:
sudo docker run -it -p 5000:5000 vuejs

我的默认 nginx 文件有这个相关部分:
server {

    listen                443;
    server_name           data-mastery.com;

    ssl on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

    ssl_certificate /etc/letsencrypt/live/data-mastery.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/data-mastery.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


       location / {

        proxy_pass          https://127.0.0.1:5000;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 600s;

        proxy_redirect    off;
        proxy_set_header  Host             $http_host;
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Protocol $scheme;

    }
}

不幸的是,当我尝试访问时,我没有被重定向并尝试在我的端口(https://data-mastery.com:5000/)上访问它会导致错误:

ERR_SSL_PROTOCOL_ERROR



另一个在端口 8443 上运行的容器工作正常。这里有什么问题?

最佳答案

它按预期工作。您的 Vue 应用程序在 https://data-mastery.com 上可用(LE 证书)。并且5000端口被Keycloak占用(但只启用了http协议(protocol))-http://data-mastery.com:5000/ .

关于docker - 无法访问使用 Nginx 服务 Dockerized VueJS 应用程序并导致 SSL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59955653/

相关文章:

security - 通过代理实现 SSL

node.js - Websocket apache 代理问题与 ssl

encryption - Java 应用程序和 C 应用程序与 OpenSSL 正确通信几分钟后发出 'bad record mac' 警报

docker - 在docker swarm中将节点更改为管理器-我应该使用什么命令

docker - 命名的 docker 卷未使用 docker-compose 更新

javascript - 使用 q-select (Quasar Framework) 通过 onChange 运行方法

vue.js - 使用 Vuetify v-data-table,我想折叠/展开单个组?

java - 为什么 Docker 容器中的 Spark 应用程序会失败并出现 OutOfMemoryError : Java heap space?

java - 提交在/workspace 中生成的文件的容器更改(即使使用 makefile)不会持续到图像的新实例中

vue.js - 将项目从 Vue2 升级到 Vue3 的最佳方式