使用 Docker 在域中带有子目录的 Apache 反向代理

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

我在带有 CloudLinux 的专用服务器内使用 Docker,并尝试在容器内设置 WordPress。问题是,当输入 URL:https://domain:8088/subfolder 时,它会将我重定向到 https://domain:8088。

我已在以下路线中配置:

/etc/apache2/conf.d/userdata/ssl/2_4/{用户}/{域}/

app.conf 文件中有以下反向代理设置。

app.conf

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

#Redirect requests to /subfolder to the subfolder container on port 8088
ProxyPass /subfolder http://domain:8088/
ProxyPassReverse /subfolder http://domain:8088/

<Location />
    Order allow,deny
    Allow from all
</Location>

#Redirect traffic from http to https
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{domain}/$1 [R=301,L]

docker-compose.yml

version: '3'

services:
  wordpress:
    image: wordpress:php8.2-apache
    container_name: aqmunwp
    ports:
      - "8088:80"
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: root
      WORDPRESS_DB_NAME: wordpress
    working_dir: /var/www/html/
    volumes:
      - {URL}:/var/www/html/
    links:
      - mysql:mysql

  mysql:
    image: mysql:8.0.13
    container_name: aqmunwpdb
    command: --default-authentication-plugin=mysql_native_password
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:
linux wordpress docker apache reverse-proxy
1个回答
0
投票

更新您的 Apache 反向代理配置

(app.conf)
:

ProxyPass /subfolder http://wordpress:80/
ProxyPassReverse /subfolder http://wordpress:80/

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://domain/$1 [R=301,L]

在 Docker Compose 文件中

(docker-compose.yml)
,确保 WordPress 服务名为“wordpress”并使用端口 80:

services:
  wordpress:
    image: wordpress:php8.2-apache
    container_name: aqmunwp
    ports:
      - "8088:80"  # Map container port 80 to host port 8088
    # ... (other configurations)

确保您的服务器将传入的 HTTPS 请求(端口 443)正确转发到主机上的端口 8088。 在此之后重新启动您的 Apache 反向代理和 WordPress Docker 容器并测试...

© www.soinside.com 2019 - 2024. All rights reserved.