nginx: configura um webmail para cada domínio (domínio curinga?)

1

Eu gostaria de configurar um subdomínio mail. do webmail para cada domínio que eu tenho no meu servidor, usando nginx.

Parece funcionar em https://mail.mydomain.com , mas também posso acessar o webmail visitando o endereço IP do servidor ( link ), que não é desejado.

Aqui está o meu arquivo conf para o webmail:

###
# Webmail (Rainloop)
###
server {
    listen 80;
    server_name mail*.;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name mail*.;

    ssl_certificate     /etc/ssl/nginx/server.crt;
    ssl_certificate_key /etc/ssl/nginx/server.key;
    ssl_protocols       SSLv3 TLSv1;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    access_log /var/log/nginx/app-webmail.access.log;
    error_log /var/log/nginx/app-webmail.error.log;

    location / {
        root /var/www/rainloop;
        index index.html index.htm index.php;

        location ~ [^/]\.php(/|$) {
            include fcgi.conf;
            fastcgi_pass unix:/var/run/php-fcgi.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        location ^~ /data {
            deny all;
        }
    }
}

Alguma ideia?

    
por flks 03.04.2015 / 19:48

2 respostas

0

Com base em esta resposta , a configuração padrão do Nginx foi alterada da seguinte forma:

/etc/nginx/nginx.conf

server {
    listen       80;
    server_name  <ip_address_nginx_server>;
    root         /usr/share/nginx/html;

    #charset koi8-r;

    #access_log  /var/log/nginx/host.access.log  main;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    # redirect server error pages to the static page /40x.html
    #
    error_page  404              /404.html;
    location = /40x.html {
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    }

    return 403;
}

server {
    listen       80  default_server;
    server_name  mydomain.com;
    }
}

Uma vez que o servidor Nginx foi reiniciado e um navega para ip_address_nginx_server a 403 é retornado, enquanto http://example.com está acessível.

    
por 03.04.2015 / 21:11
1

De acordo com a documentação do Nginx, é possível usar esse tipo de curingas em nomes de servidores .

server {
    listen       80;
    server_name  mail.*;
    ...
}

No entanto, você está tendo mail*. em vez de mail.* , o que é realmente diferente.

    
por 03.04.2015 / 21:11