使用 Docker 和 SSL 部署 Reactapp
Deploy Reactapp using Docker & SSL
Docker文件
Docker 运行 命令:docker run -itd -p 8080:80 prod
FROM node:16-alpine as builder
WORKDIR /app
COPY package.json ./
COPY package-lock.json ./
COPY . /app/
RUN npm install --silent
RUN npm install react-scripts@4.0.3 -g --silent
RUN npm run build
# production environment
FROM nginx:1.21.1-alpine
COPY --from=builder /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
defalut.conf 文件
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /etc/nginx/sites-available/cert.crt;
ssl_certificate_key /etc/nginx/sites-available/ssl.key;
server_name ipaddress;
location / {
proxy_pass http://localhost:8080;
try_files $uri /index.html;
}
我无法在 https 中的 ip 地址上看到我的 index.html 文件 运行ning。它与 http://ipaddress:8080
一起工作正常。以上是 Docker 文件 & default.conf 文件的配置文件。服务器日志中没有显示任何内容。
我想知道上面的配置是正确的还是不知道如何使用 Docker & SSL & Nginx
部署 react-app
通过查看您的评论,您的端口配置似乎不正确,在 NginX 中端口侦听设置为侦听端口 443
,但您的 docker 端口配置正在使用端口 80
作为主机端口。假设Node服务器监听端口8080
,docker 运行应该是这样的
$ docker run -itd -p 443:443 prod
然后尝试 https://ipaddress
,根据证书设置,您应该在浏览器中看到警告(如果证书未完全信任,您可能需要将其添加为例外),或者看到正确的内容。
Docker文件
Docker 运行 命令:docker run -itd -p 8080:80 prod
FROM node:16-alpine as builder
WORKDIR /app
COPY package.json ./
COPY package-lock.json ./
COPY . /app/
RUN npm install --silent
RUN npm install react-scripts@4.0.3 -g --silent
RUN npm run build
# production environment
FROM nginx:1.21.1-alpine
COPY --from=builder /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
defalut.conf 文件
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /etc/nginx/sites-available/cert.crt;
ssl_certificate_key /etc/nginx/sites-available/ssl.key;
server_name ipaddress;
location / {
proxy_pass http://localhost:8080;
try_files $uri /index.html;
}
我无法在 https 中的 ip 地址上看到我的 index.html 文件 运行ning。它与 http://ipaddress:8080
一起工作正常。以上是 Docker 文件 & default.conf 文件的配置文件。服务器日志中没有显示任何内容。
我想知道上面的配置是正确的还是不知道如何使用 Docker & SSL & Nginx
部署 react-app通过查看您的评论,您的端口配置似乎不正确,在 NginX 中端口侦听设置为侦听端口 443
,但您的 docker 端口配置正在使用端口 80
作为主机端口。假设Node服务器监听端口8080
,docker 运行应该是这样的
$ docker run -itd -p 443:443 prod
然后尝试 https://ipaddress
,根据证书设置,您应该在浏览器中看到警告(如果证书未完全信任,您可能需要将其添加为例外),或者看到正确的内容。