Problemas com Hosts Virtuais do Mailman e do Apache

2

Estou criando uma configuração do Mailman, Apache2.4 e Postfix. Meu problema é o seguinte. Quando eu acesso a lista de discussão com o nome de domínio, obtenho o resultado correto no meu navegador. Aqui a foto

Noentanto,seeutentaracessardiretamenteusandooendereçoIPdomeuservidor,eureceboumapáginadiferente,ondeaslistasdediscussãoestãofaltando.Éassimqueparece:

O resultado desejado é obter exatamente a mesma página.

A configuração do apache2 é a seguinte:

<Directory /usr/lib/cgi-bin/mailman/>
    AllowOverride None
    Options +ExecCGI
    AddHandler cgi-script .cgi
    # (Old apache2.2 style configuration:)
    # Order allow,deny
    # Allow from all
    # New apache 2.4 configuration:
    Require all granted
</Directory>
<Directory /var/lib/mailman/archives/public/>
    Options FollowSymlinks
    AllowOverride None
    # (Old configuration:)
    # Order allow,deny
    # Allow from all
    # New apache 2.4 configuration:
    Require all granted
</Directory>
<Directory /usr/share/images/mailman/>
    AllowOverride None
    # (Old configuration:)
    # Order allow,deny
    # Allow from all 
    # New apache 2.4 configuration:
    Require all granted
</Directory>


<VirtualHost *:80>
ServerName lists.example.org
DocumentRoot /var/www/lists
ErrorLog /var/log/apache2/lists-error.log
CustomLog /var/log/apache2/lists-access.log combined

<Directory /var/lib/mailman/archives/>
    Options FollowSymLinks
    AllowOverride None
</Directory>

Alias /archives/ /var/lib/mailman/archives/public/
Alias /images/mailman/ /usr/share/images/mailman/
ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin
ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb
ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm
ScriptAlias /create /usr/lib/cgi-bin/mailman/create
ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml
ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo
ScriptAlias /options /usr/lib/cgi-bin/mailman/options
ScriptAlias /private /usr/lib/cgi-bin/mailman/private
ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist
ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster
ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo/
</VirtualHost>

EDIT: incluo aqui meu arquivo mm_cfg.py (configuração do Mailman):

from Defaults import *

MAILMAN_SITE_LIST = 'mailman'

DEFAULT_URL_PATTERN = 'http://%s/'
# PRIVATE_ARCHIVE_URL = '/cgi-bin/mailman/private'
PUBLIC_ARCHIVE_URL = 'http://%(hostname)s/archives/%(listname)s'
IMAGE_LOGOS         = '/mailman-icons/'

# Default domain for email addresses of newly created MLs
DEFAULT_EMAIL_HOST = 'lists.example.org'

# Default host for web interface of newly created MLs
DEFAULT_URL_HOST   = 'lists.example.org'

VIRTUAL_HOSTS.clear()
add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST)

DEFAULT_SERVER_LANGUAGE = 'en'
USE_ENVELOPE_SENDER    = 0              # Still used?
DEFAULT_SEND_REMINDERS = 0
MTA='Postfix'

Além disso, desativo o site padrão executando:

sudo a2dissite 000-default

Notei que, se eu não desabilitar o 000-default, acessar a página da web usando o endereço IP me dá a página padrão do Apache que diz que tudo está OK.

Gostaria de saber se existe alguma solução elegante para o problema de acesso IP direto, fazendo com que ele mostre a mesma página que eu vejo quando uso o nome de domínio.

EDIT: Eu tentei mudar para (Inside mm_cfg.py):

VIRTUAL_HOSTS.clear()
add_virtualhost("104.131.98.138","lists.example.org")

Como sugerido. Eu recebo a página correta quando eu uso o url lists.example.org, no entanto, quando eu uso o endereço IP eu recebo isso:

Observe,entretanto,quedestavezoendereçodee-mailestácorreto.

Eutambémobtenhoosmesmosresultadosquandoasduaslinhasestãopresentes:

VIRTUAL_HOSTS.clear()add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST)add_virtualhost("104.131.98.138","lists.example.org")
    
por real 23.11.2014 / 14:45

1 resposta

1

Primeiro, perdoe-me por desorientar aqui porque eu não entendi sua intenção no passado . Agora, tanto quanto eu entendo, sua intenção é aliasing 104.131.98.138 para lists.freedomlayer.org - assim, quando você navega por 104.131.98.138 e lists.freedomlayer.org você obtém o mesmo resultado - SIM?

Infelizmente, isso não é possível com o mailman. Mailman espera um único URL único para cada lista. Mais informações, clique em esta FAQ da documentação do mailman

De qualquer forma, você pode definir o redirecionamento no Apache. Portanto, sempre que o usuário não usar http://lists.freedomlayer.org para acessar a página da web do mailman (ou seja, usando http://104.131.98.138 ), ele será redirecionado para o link .

Aqui a configuração do apache para fazer seu redirecionamento funcionar

RewriteEngine On
RewriteCond %{HTTP_HOST} !^lists\.freedomlayer\.org [NC]
RewriteRule ^(.*)$ http://lists.freedomlayer.org/$1 [R=301,L]
    
por 23.11.2014 / 15:45