Объясните мне, как отобразить URL запроса в мою файловую систему, используя Apache

На моем почтовом сервере установлено 2 веб-сервиса.

  • Roundcube / var / www / roundcube
  • Mail Admin Tool / var / www / mailAdmin (для postfix, конфигурации dovecot)

Кроме того, Apache2 почтового сервера скрыт за обратным прокси-сервером nginx.

У меня вопрос, как мне настроить Apache для сопоставления всех запросов http://mail.example.org/ с моими /var/www/roundcube папка и все http://mail.example.org/mailadmin запросы к /var/www/mailAdmin папка.

Я написал следующую конфигурацию. Но проблема в том, что каждый запрос отображается на /var/www/roundcube и если я запрашиваю http://mail.example.org/webadmin Apache пытается получить доступ /var/www/roundcube/mailadmin,

Я мог бы сделать ln -s на данный момент, но это не так или нет?

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        ServerName example.org
        ServerAlias mail.example.org
        DocumentRoot /var/www/roundcube/

        <Directory />
                Options FollowSymLinks
                AllowOverride Nonedevcontrol
        </Directory>

        <Directory /var/www/roundcube>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Конфигурация обратного прокси-сервера:

server{
    listen       80;
    server_name  mail.exampole.org;
    rewrite ^ https://mail.example.org$request_uri? permanent;
}

server {
    listen       443;
    server_name  mail.example.org;

    access_log  /var/log/nginx/access.mail.log;
    error_log /var/log/nginx/error.mail.log;

    ###SSL###
    include w.example.org.conf;


    # proxy to Apache 2 and mod_python
    location / {
        proxy_pass         http://192.168.1.200:80/;
        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_max_temp_file_size 0;

        client_max_body_size       10m;
        client_body_buffer_size    128k;

        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;

        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
    }
}

1 ответ

Решение

Вы можете попробовать псевдоним, псевдоним сопоставляет URL-адрес с расположением файловой системы.

alias /mailadmin /var/www/roundcube/mailadmin

Хотя псевдоним может быть полезным.

Другие вопросы по тегам