Мой блог - Настройка Nginx-Front для работы с Rocket.Chat

Настройка Nginx-Front для работы с Rocket.Chat

В прошлой статье я рассказывал, что у меня после очередного обновления сломался клиент Rocket.Chat для Android и я думал, что это связано с устаревшей версией серверной части, но как оказалось на самом деле это было связано с некорректной конфигурацией Nginx.

Фотография автора

Автор: Антон Черноусов
Опубликовано: 2 недели, 5 дней (последние правки: 0 минут назад) - 0 комментариев
Категории записи: Linux, Nginx, RocketChat, SSL, Ubuntu, Системное администрирование, Хостинг


В дистрибутиве исходных кодов серверной части Rocket.Chat теперь имеется файл примера оформления виртуального хоста Nginx и именно в этом и была загвоздка. Меня честно говоря смутило, что работал легаси-вариант мобильного приложения и десктоп-клиент, а мобильная версия при этом отваливалась.

Если привести конфигурацию виртуального хоста к требованиям описанным в примере конфигурации, то все работает. В качестве примера приведу конфигурацию Nginx подходящую для работы с новой версией мобильного приложения:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    server_name chat.gita-dev.ru;
    return 301 https://chat.gita-dev.ru$request_uri;
}

server {
    listen 443 default_server;
    listen [::]:443 default_server ipv6only=on;
    server_name chat.gita-dev.ru;
    #root /var/www/rocket.chat/bundle/programs/web.browser/app/;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/chat.gita-dev.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/chat.gita-dev.ru/privkey.pem;
    ssl_ciphers         'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-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-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
    ssl_prefer_server_ciphers on;
    ssl_dhparam         /etc/nginx/dhparam.pem;
    client_max_body_size 32m;
    proxy_buffering off;
    proxy_http_version 1.1;
    proxy_read_timeout 600;
    proxy_send_timeout 600;
    proxy_set_header   Host              $host:$server_port;
    proxy_set_header   Referer           $http_referer;
    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 https;
    proxy_set_header   Upgrade           $http_upgrade;
    proxy_set_header   Connection        "upgrade";
    proxy_set_header   X-Nginx-Proxy     true;
    proxy_redirect     off;

    location / {
      proxy_pass http://10.250.0.14:3000;
    }
}

Конфигурация не сильно отличается от той, что использовалась у меня изначально, но как говорится век живи, век учись.

Пожалуйста, оцените мою статью (всего оценок 1, средняя оценка 5.00):

Комментарии к статье:

Пока комментариев нет

Оставьте комментарий:

обязательно

обязательно (не публикуется)

необязательно

обязательно

обязательно