Назад | Перейти на главную страницу

nginx: настроить веб-почту для каждого домена (домен с подстановочными знаками?)

Я хочу настроить веб-почту mail. поддомен для каждого домена на моем сервере, используя nginx.

Вроде работает на https://mail.mydomain.com но я также могу получить доступ к веб-почте, посетив IP-адрес сервера (https: //x.x.x.x), чего не хотят.

Вот мой файл conf для электронной почты:

###
# 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;
        }
    }
}

Любая идея?

Согласно документации Nginx, такие подстановочные знаки можно использовать в имена серверов.

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

Однако у вас есть mail*. вместо того mail.* там, а это совсем другое дело.

На основе этот ответ Конфигурация Nginx по умолчанию была изменена следующим образом:

/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;
    }
}

После перезапуска сервера Nginx и перехода к ip_address_nginx_server возвращается 403, а http://example.com доступен.