如何解决在Vmware的虚拟机上使用Docker,Nginx部署后无法访问网站 nginx.conf 前端的docker文件后端的docker文件 docker-compose.yml
所以最近我正尝试使用docker,docker-compose和Nginx部署我的react + flask应用程序。我使用的Web服务器是Vmaware的Ubuntu 18虚拟机。现在,我已将虚拟机的网络设置为Bridged,以便公众可以访问。但是,我只能使用VM的托管计算机访问该网站。当我尝试使用其他计算机时,它无法连接。另外,我还在域中添加了一个A记录,该记录指向我的VM的IP地址。以下是docker文件和Nginx配置。
nginx.conf
events { }
http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# redirect www -> non-www
server {
server_name www.network.cloudmetabolomics.ca;
return 301 $scheme://network.cloudmetabolomics.ca$request_uri;
}
# redirect http -> https
server {
listen 80;
server_name network.cloudmetabolomics.ca;
return 301 https://network.cloudmetabolomics.ca$request_uri;
}
# read the ssl certificate / key when listening on https
server {
listen 443 ssl;
server_name network.cloudmetabolomics.ca;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
access_log /var/log/nginx/data-access.log combined;
# serve the static files
location / {
root /usr/share/nginx/html;
}
location /api {
proxy_pass http://backend:5000/api;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http://backend:5000/api $scheme://$http_host/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 20d;
proxy_buffering off;
}
}
}
前端的docker文件
FROM node:14.3.0 as build
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
COPY . /usr/src/app
RUN npm run build
FROM nginx:alpine
COPY --from=build /usr/src/app/build /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx","-g","daemon off;"]
后端的docker文件
FROM continuumio/miniconda3
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN conda env create -f environment.yml
RUN echo "source activate network" > ~/.bashrc
ENV PATH /opt/conda/envs/network/bin:$PATH
ENTRYPOINT [ "flask" ]
CMD ["run","--host=0.0.0.0","--port=5000"]
docker-compose.yml
version: "3"
services:
frontend:
container_name: frontend
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- 80:80
- 443:443
volumes:
- /home/network/ssl:/etc/nginx/certs #TODO: rember to change config dir
backend:
restart: always
container_name: backend
build: ./backend
expose:
- 5000
volumes:
- ./backend:/usr/src/app
environment:
- FLASK_ENV=development
- FLASK_APP=app.py
- FLASK_DEBUG=1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。