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

Какая-либо идея?

1
задан 3 April 2015 в 20:48
2 ответа

На основе этого ответа Конфигурация 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 доступен.

0
ответ дан 4 December 2019 в 00:10

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

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

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

1
ответ дан 4 December 2019 в 00:10

Теги

Похожие вопросы