【发布时间】:2018-04-07 04:47:48
【问题描述】:
我的 DigitalOcean 液滴上运行了两个容器。第一个容器是 REST api 容器,运行在 9090 端口。第二个容器是 ReactJS 多级容器,Nginx 运行在 4500 端口。docker-compose 文件是这样的:
version: '3'
services:
ubgrillmysql:
image: mysql:5.6
container_name: ubgrillmysql
environment:
- MYSQL_ROOT_PASSWORD=finder
- MYSQL_DATABASE=ubgrillData
- MYSQL_USER=ubgadmin
- MYSQL_PASSWORD=win(der90)Admin
volumes:
- /home/justicar/workspace/applications/data
networks:
- ubgrill_network
web:
image: ubgrill/web
container_name: web
depends_on:
- ubgrillmysql
environment:
- DATABASE_HOST=ubgrillmysql
- DATABASE_USER=ubgadmin
- DATABASE_PASSWORD=win(der90)Admin
- DATABASE_NAME=ubgrillData
- DATABASE_PORT=3306
ports:
- 9090:9090
networks:
- ubgrill_network
frontend:
image: ubgrill/frontend
container_name: frontend
build: ./src/main/ubgrill
depends_on:
- web
ports:
- 4500:80
networks:
- ubgrill_network
networks:
ubgrill_network:
external:
我已经在我的 droplet 上安装了 nginx,因为我打算将来将我的博客转移到那里。我使用 mu droplet 的域名创建了一个服务器块,并存储在 /etc/nginx/sites-available 中,名称为<domain>.com。文件如下:
upstream ubgrillapi{
server localhost:9090;
}
upstream ubgrillapp{
server localhost:4500;
}
server {
listen 80;
listen [::]:80;
root /var/www/<domain>.com/html;
index index.html index.htm;
server_name <domain>.com www.<domain>.com;
location / {
try_files $uri $uri/ =404;
}
location /ubgrill/api/ {
proxy_pass http://ubgrillapi;
proxy_redirect off;
proxy_set_header Host $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-Host $server_name;
}
location /ubgrill/app/ {
proxy_pass http://ubgrillapp;
proxy_redirect off;
proxy_set_header Host $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-Host $server_name;
}
}
当我尝试访问 http://<domain>.com/ubgrill/app 时,我收到 404(未找到)错误。 http://<domain>.com/ubgrill/api 也是如此。我可以通过http://<domain>.com:4500 访问应用程序和http://<domain>.com:9090/ubgrill/api 的API(API 实际上以/ubgrill/api 开头)。我是一个完整的 nginx 代理菜鸟,在线教程都在一个单独的容器中处理 nginx,这不是我的配置。我的配置有什么问题,你能指点我更全面的 nginx 教程吗?谢谢。
【问题讨论】:
标签: docker nginx digital-ocean