docker 上的 nginx 反向代理到 wordpress 容器未加载 javascripts

问题描述 投票:0回答:1

我正在尝试设置 nginx docker 容器,它与 2 个 wordpress 站点容器位于同一网络上。这是 nginx.conf 文件

worker_processes 512;

events {
    worker_connections 1024;
}

http {
    upstream informatica_site {
        server InformaticaSite:80;
    }

    upstream informatica_blog {
        server InformaticaBlog:80;
    }

    server {
        listen 80;
        server_name informaticasystems.xom;

        location / {
            proxy_pass http://informatica_site;
        }
    }

    server {
        listen 80;
        server_name blog.informaticasystems.xom;

        location / {
            proxy_pass http://informatica_blog;
        }
    }
}

主机文件


127.0.0.1   informaticasystems.xom
127.0.0.1   blog.informaticasystems.xom

但是当我撰写时,JavaScript 文件未正确加载

他们正在尝试访问 proxy_pass 而不是实际的服务器名称。

澄清一下,nginx 和 wordpress 站点都在同一网络上的 docker 容器中,我正在本地计算机(在 docker 之外)中从浏览器访问

version: '3'
services:
  InformaticaSite:
    image: wordpress
    restart: always
    environment:
      WORDPRESS_DB_HOST: ******
      WORDPRESS_DB_USER: ******
      WORDPRESS_DB_PASSWORD: ******
      WORDPRESS_DB_NAME: ******
    volumes:
      - ./informatica_site:/var/www/html
    ports:
      - "8081:80"
    networks:
      - informatica_network


  InformaticaBlog:
    image: wordpress
    restart: always
    environment:
      WORDPRESS_DB_HOST: ******
      WORDPRESS_DB_USER: ******
      WORDPRESS_DB_PASSWORD: ******
      WORDPRESS_DB_NAME: ******
    volumes:
      - ./informatica_blog:/var/www/html
    ports:
      - "8082:80"
    networks:
      - informatica_network


  informatica_site_db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ******
      MYSQL_DATABASE: ******
      MYSQL_USER: ******
      MYSQL_PASSWORD: ******
    volumes:
      - ./mysql_site_data:/var/lib/mysql
    networks:
      - informatica_network


  informatica_blog_db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ******
      MYSQL_DATABASE: ******
      MYSQL_USER: ******
      MYSQL_PASSWORD: ******
    volumes:
      - ./mysql_blog_data:/var/lib/mysql
    networks:
      - informatica_network


  nginx:
    image: nginx
    restart: always
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
    ports:
      - "80:80"
    networks:
      - informatica_network


networks:
  informatica_network:

根据我能够搜索到的内容,proxy_pass 不应该这样做,我是 nginx 新手,所以可能错过了一些东西。

wordpress docker nginx docker-compose nginx-reverse-proxy
1个回答
0
投票

您可以尝试使用以下

nginx.conf

worker_processes 512;

events {
    worker_connections 1024;
}

http {
    upstream informatica_site {
        server InformaticaSite:80;
    }

    upstream informatica_blog {
        server InformaticaBlog:80;
    }

    server {
        listen 80;
        server_name informaticasystems.xom;

        location / {
            proxy_pass http://informatica_site;
            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;
            proxy_set_header   X-Forwarded-Proto $scheme;
        }
    }

    server {
        listen 80;
        server_name blog.informaticasystems.xom;

        location / {
            proxy_pass http://informatica_blog;
            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;
            proxy_set_header   X-Forwarded-Proto $scheme;
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.