0

使用全新安装的 Zentyal 6.1,如何从默认 webmail 登录中删除 /SOGo。目前,当我希望用户能够访问https://mail.mydomain.com/时,他们需要访问https://mail.mydomain.com/SOGo(区分大小写)。

我尝试将以下内容添加到 /etc/apache2/sites-enabled/default-ssl.conf。结果是页面加载上的文本,但所有内容都包括css,只返回net::ERR_ABORTED 403(禁止)。

ServerName mail.domain.com
ProxyPass / http://127.0.0.1/SOGo/ retry=0
ProxyPassReverse / http://127.0.0.1/SOGo/

理想情况下,我希望所有用户访问 mail.domain.com 以访问 webmail。另外,我希望 Outlook 客户端使用 mail.domain.com 作为服务器。这将为最终用户设置多个虚拟邮件域,例如 joe@domain1.com 或 jane@domain2.com。

4

2 回答 2

0

我最终放弃了 Zentyal,转而使用 Docker 中的 MailCow。通过 mail.domain.com 访问 SoGo。下面是 Docker 之外 NGINX 的反向代理。

#######
### NGINX Reverse-Proxy to mailcow and SOGo
### Redirects root to SOGo and /setup to mailcow control panel
### Handles all SSL security
#######


## HTTP catch-all for invalid domain names (e.g. root domain "example.com")
server {

     listen 80 default_server;
     listen [::]:80 default_server;

     # Have NGINX drop the connection (return no-data)
     return 444;

}

## Redirect HTTP to HTTPS for valid domain names on this server
## (e.g. mail.example.com, webmail.example.com)
server {

     listen 80;
     listen [::]:80;

     server_name mail.domain-name.com
          autodiscover.domain-name.com
          autoconfig.domain-name.com;

     location ^~ /.well-known/acme-challenge/ {
          allow all;
          default_type "text/plain";
          # Path can be used for cert-validation on all domains
          root /var/www/html/;
          break;
     }
     # Redirect to properly formed HTTPS request
     return 301 https://$host$request_uri;    
}


## HTTPS catch-all site for invalid domains that generate a certificate
## mismatch but the user proceeds anyways
server {

     listen 443 default_server ssl http2;
     listen [::]:443 default_server ssl http2;

     # SSL settings in another file (see my 'mozModern_ssl' file as an example)
#     include /etc/nginx/mozModern_ssl.conf

     # SSL certificates for this connection
     ssl_certificate /etc/letsencrypt/live/mail.domain-name.com/fullchain.pem;
     ssl_certificate_key /etc/letsencrypt/live/mail.domain-name.com/privkey.pem;     

     # Have NGINX drop the connection (return no-data)
     return 444;

}


## Proxy primary server and webmail subdomain to mailcow
## Go to SOGo after typing root address only (default browsing action)
## Go to mailcow admin panel after typing /admin subdirectory
server {

     listen 443 ssl http2;
     listen [::]:443 ssl http2;

     server_name mail.domain-name.com
          autodiscover.domain-name.com;

     location ^~ /.well-known/acme-challenge/ {
          allow all;
          default_type "text/plain";
          # Path can be used for cert-validation on all domains
          root /var/www/html/;
          break;
     }

     # SSL settings in another file (see my 'mozModern_ssl' file as an example)
     #include /etc/nginx/mozModern_ssl.conf

     # SSL certificates for this connection
     ssl_certificate /etc/letsencrypt/live/mail.domain-name.com/fullchain.pem;
     ssl_certificate_key /etc/letsencrypt/live/mail.domain-name.com/privkey.pem;

     location /Microsoft-Server-ActiveSync {
          proxy_pass http://127.0.0.1:8080/Microsoft-Server-ActiveSync;
          proxy_set_header Host $http_host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_connect_timeout 75;
          proxy_send_timeout 3650;
          proxy_read_timeout 3650;
          proxy_buffers 64 256k;
          client_body_buffer_size 512k;
          client_max_body_size 0;
     }

     # Redirect root to SOGo. Rewrite rule changes / to /SOGo
     location / {
          rewrite ^/$ /SOGo;
          proxy_pass https://127.0.0.1:8443;
          proxy_set_header Host $http_host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
          client_max_body_size 100m;
     }

     # Redirect /setup to mailcow admin panel
     # Note the trailing / after setup and the trailing / after proxy URL
     # This makes sure that NGINX doesn't try to go to proxyURL/setup which
     # would result in a 404.
     # Recent updates result in loops if you try to use 'admin' here
     location ^~ /setup/ {
          proxy_pass https://127.0.0.1:8443/;
          proxy_set_header Host $http_host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
          client_max_body_size 100m;
     }

}
于 2020-03-10T15:23:18.247 回答
0

您应该尝试使用 Apache rewrite mod 以将您喜欢的 url 重定向到 SOGo url。看到这个:

https://httpd.apache.org/docs/2.4/rewrite/remapping.html

BR。

于 2020-03-09T12:57:53.690 回答