首页 文章

NGINX代理不起作用

提问于
浏览
0

我有两个容器在我的DigitalOcean Droplet上运行 . 第一个容器是在端口9090上运行的REST api容器 . 第二个容器是一个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中,名称为 <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的更全面的教程?谢谢 .

1 回答

相关问题