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

Apache Reverse Proxy with a subdirectory in domain using Docker

提问人:Jonathan Rendón 提问时间:9/20/2023 最后编辑:Jonathan Rendón 更新时间:9/20/2023 访问量:92

问:

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

我已经在以下路线中进行了配置:

/etc/apache2/conf.d/userdata/ssl/2_4/{user}/{domain}/

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:

我已经设法使反向代理工作,如果我输入域/子文件夹 url,它会将我重定向到 wp-admin/install,但使用端口,即 domain:8088/wp-admin/install。你知道它是如何隐藏的吗?

编辑:app.conf

ServerName domain

     ProxyPass /dir/ http://domain:8088/
     ProxyPassReverse /dir/ http://domain:8088/

     RewriteEngine On
     RewriteCond %{HTTPS} !=on
     RewriteRule ^/dir(/.*)?$ https://domain/dir$1 [R=301,L]
linux wordpress docker apache 反向代理

评论


答: 暂无答案