【问题标题】:Setup iRedMail Admin Site in Nginx on Ubuntu 12.04在 Ubuntu 12.04 上的 Nginx 中设置 iRedMail 管理站点
【发布时间】:2013-04-05 03:21:33
【问题描述】:

我花了很长时间才让它工作,但在任何地方都找不到可靠的答案,所以我想我会把我的解决方案发布到 SO,这样其他人可能会觉得它有用。

我想在与我的 MX 服务器不同的虚拟机上运行我的所有 SSL 站点,而 iRedMail 默认情况并非如此。用 nginx 让 phpMyAdmin 和 roundcube 在新服务器上运行很容易,这里不做介绍,用 uwsgi 让管理面板在 nginx 下运行并不容易。

这样做的最终结果是一台服务器仅作为邮件服务器,一台运行 nginx 的服务器用于 Web 管理。

【问题讨论】:

    标签: ubuntu ssl nginx ubuntu-12.04


    【解决方案1】:

    我从全新的 Ubuntu 12.04.2 LTS 安装开始,使用默认选项设置 2 个服务器,仅在安装服务器以远程访问时添加 OpenSSL。一台服务器是邮件服务器,一台是 SSL Web 服务器。

    在邮件服务器上,我下载了最新版本的 iRedMail(截至本文为 0.8.4)并运行安装以设置邮件服务器组件。我使用 mySQL 作为后端,所以我检查了该选项,输入了我的域信息和密码的其余部分,最后一页只检查了 DKIM、iRedAdmin 和 Fail2Ban。

    在网络 nginx SSL 服务器上... 再次默认安装,仅添加 OpenSSL。

    以下是以 root 身份运行的命令,用于安装运行管理面板所需的组件:

    apt-get update
    apt-get install nginx uwsgi uwsgi-plugin-python python-pip python-mysqldb
    pip install jinja2
    pip install web.py
    

    然后我创建了我想要放置和设置 iRedAdmin 的位置

    mkdir /var/www/iredadmin
    mkdir /var/www/iredadmin/static
    mkdir /var/www/iredadmin/python-home
    

    并复制直接从邮件服务器安装的iredadmin,并将其放入新服务器的目录中。

    scp -r user@mail-server:/usr/share/apache2/iredadmin/* /var/www/iredadmin/
    

    创建了 uwsgi 应用程序配置 ini 文件,位于:/etc/uwsgi/apps-available/iredadmin.ini

    [uwsgi]
    plugins=python
    vhost=true
    socket=/var/run/uwsgi/app/iredadmin/iredadmin.socket
    

    创建软链接以启用应用程序:

    ln -s /etc/uwsgi/apps-available/iredadmin.ini /etc/uwsgi/apps-enabled/iredadmin.ini
    

    为位于 /etc/nginx/sites-available/iredadmin 的 nginx 创建虚拟主机配置

    server {
        listen 443 ssl; ## listen for ipv4; this line is default and implied
        access_log /var/log/nginx/iredadmin.access.log;
        error_log /var/log/nginx/iredadmin.error.log;
    
       ssl_certificate /etc/nginx/ssl/star.crt;
       ssl_certificate_key /etc/nginx/ssl/server.key;
       ssl_session_timeout 5m;
       ssl_protocols SSLv3 TLSv1;
       ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
       ssl_prefer_server_ciphers on;
    
        server_name iredadmin.server.com;
    
        location / {
        root /var/www/iredadmin/;
        uwsgi_pass unix:///var/run/uwsgi/app/iredadmin/iredadmin.socket;
        uwsgi_param UWSGI_PYHOME /var/www/iredadmin/python-home;
        uwsgi_param UWSGI_CHDIR /var/www/iredadmin;
        uwsgi_param UWSGI_SCRIPT iredadmin;
        include uwsgi_params;
        }
    
        location /static {
        alias /var/www/iredadmin/static/;
            }
    
        location ~ /\.ht {
                deny all;
        }
    }
    

    并创建了一个软链接来为 nginx 启用该站点:

    ln -s /etc/nginx/sites-available/iredadmin /etc/nginx/sites-enabled/iredadmin
    

    最后,重新启动服务并从浏览器转到您的服务器名称:

    /etc/init.d/uwsgi restart
    /etc/init.d/nginx restart
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 2013-01-28
      • 1970-01-01
      • 2014-07-27
      • 2012-12-12
      • 1970-01-01
      相关资源
      最近更新 更多