Konfigurasi Z-Push Active-Sync Zimbra Menggunakan Nginx

Posted by

Beberapa hari yang lalu, saya melakukan migrasi web server apache2 menjadi nginx. Terdapat beberapa aplikasi web didalam nya, sebagian besar lancar dipindahkan ke nginx, namun ada 1 aplikasi yang sedikit bermasalah, karena konfigurasi pada nginx terhadap aplikasi tersebut sedikit ribet hehehe 😀

Aplikasi tersebut yaitu Z-Push. Pada server tersebut, Z-Push ini digunakan untuk melakukan Active-Sync terhadap Zimbra. Pada saat menggunakan apache2, Z-Push berjalan lancar, namun begitu dipindahkan ke nginx, sedikit bermasalah.

Ohh ya untuk panduan konfigurasi Z-Push Active-Sync Zimbra pada Apache2, bisa dilihat di panduan berikut ini >> https://imanudin.net/2014/11/11/how-to-enable-mode-activesync-on-zimbra-ose/

Setelah mencari beberapa referensi perihal Z-Push pada nginx, didapatlah sample konfigurasi yang bisa digunakan. Berikut isian konfigurasinya, pada directory /etc/nginx/sites-available/, buat sebuah file virtualhost misal zpush, lalu isikan dengan script dibawah ini.

Baca Juga : Tips Mendapatkan Nilai A+ pada Qualys SSL Labs dengan Nginx

server {
    server_name zpush.rizkypratama.id;

    listen 443 ssl;
    #listen [::]:443 ssl;

    ssl on;
    ssl_certificate /etc/nginx/ssl/commercial.pem;
    ssl_certificate_key /etc/nginx/ssl/commercial.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCMSHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCMSHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCMSHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSAAES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHERSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCMSHA256:AES256-GCM-SHA384:AES128:AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4;
    add_header Strict-Transport-Security "max-age=63072000; preload";
 
    # If you're using PHP-FPM uncomment the following lines.
    include         fastcgi_params;
    fastcgi_index   index.php;
    fastcgi_param   SCRIPT_FILENAME $document_root;
    fastcgi_param   REQUEST_URI $1;
    fastcgi_param   PHP_FLAG "magic_quotes_gpc=off \n register_globals=off \n magic_quotes_runtime=off \n short_open_tag=on";
    fastcgi_param   PHP_VALUE "post_max_size=128M \n upload_max_filesize=128M \n max_execution_time=3660";
    fastcgi_param   HTTP_PROXY "";
    fastcgi_read_timeout 3660; # Z-Push Ping might run 3600s, but to be safe

 
    location  /Microsoft-Server-ActiveSync {
        alias       /var/www/z-push/index.php;
        access_log  /var/log/nginx/z-push-access.log;
        error_log   /var/log/nginx/z-push-error.log;
 
        client_max_body_size 20m;
        client_body_buffer_size 128k;
 
        # Select one of the fastcgi_pass values or adapt to your configuration
        #fastcgi_pass    unix:/var/run/php5-fpm.sock; # for PHP 5.X Debian/Ubuntu
        fastcgi_pass    unix:/var/run/php/php7.2-fpm.sock; # for PHP 7.X Debian/Ubuntu
        #fastcgi_pass    unix:/var/run/php-fpm/php-fpm.sock; # usually RedHat and its derivatives
        #fastcgi_pass    127.0.0.1:9000; # default php-fpm config
    }
 
    location ~* /AutoDiscover/AutoDiscover.xml {
        alias       /var/www/z-push/autodiscover/autodiscover.php;
 
        access_log  /var/log/nginx/z-push-autodiscover-access.log;
        error_log   /var/log/nginx/z-push-autodiscover-error.log;
 
        # Select one of the fastcgi_pass values or adapt to your configuration
        #fastcgi_pass    unix:/var/run/php5-fpm.sock; # for PHP 5.X Debian/Ubuntu
        fastcgi_pass    unix:/var/run/php/php7.2-fpm.sock; # for PHP 7.X Debian/Ubuntu
        #fastcgi_pass    unix:/var/run/php-fpm/php-fpm.sock; # usually RedHat and its derivatives
        #fastcgi_pass    127.0.0.1:9000; # default php-fpm config
 
        fastcgi_index   autodiscover.php;
    }
}

Silakan sesuaikan pada bagian server_name, ssl_certificate dan fastcgi_pass, jika sudah sesuai, silakan di save dan aktifkan virtualhost tersebut.

ln -s /etc/nginx/sites-available/z-push /etc/nginx/sites-enabled/
service nginx restart

Silakan akses Z-Push tersebut via browser dahulu untuk test, pastikan muncul pop up untuk mengisikan username dan password yang ada pada Zimbra

Jika username dan password benar, maka akan muncul tampilan berikut.

Selanjutnya silakan lakukan konfigurasi Active-Sync pada Mobile Device yang kalian gunakan.

Mungkin cukup sekian, semoga bermanfaat.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.