Настройте сервер синхронизации Firefox на CentOS 6

Firefox Sync - это функция синхронизации браузера, которая позволяет вам обмениваться данными и настройками (такими как закладки, история, пароли, открытые вкладки и установленные надстройки) на всех ваших устройствах. Mozilla также предлагает приложение «сервер синхронизации» для использования с Firefox Sync для пользователей и предприятий, которые предпочитают размещать свои собственные данные синхронизации. В этой статье рассказывается, как настроить Mozilla Sync Server.

Предпосылки

Установите необходимые пакеты

Обновите систему:

sudo yum check-update

Для сборки и запуска Sync Server вам необходимо установить следующие пакеты:

  • Mecurial
  • sqlite3
  • git
  • Python 2.6.6
  • Python 2.6.6 virtualenv
  • Python 2.6.6 SetupTools
  • Python 2.6.6 Developer Tools

Установите последнюю версию Mercurial:

sudo yum install mercurial

Установите необходимые средства разработки и библиотеки:

yum groupinstall 'Development Tools' 'Development Libraries'
yum install tk-devel libjpeg-devel mysql-devel python-devel httpd-devel zlib-devel bzip2-devel

Установите SQLite3:

sudo yum install sqlite

Установите и соберите Python 2.6.6:

cd $home
sudo wget http://python.org/ftp/python/2.6.6/Python-2.6.6.tgz
sudo tar xzvf Python-2.6.6.tgz
cd $home/Python-2.6.6
sudo ./configure --prefix=/opt/python2.6 --enable-thread --enable-shared --enable-unicode=ucs4
sudo make
sudo make install

Сборка сервера

Мы клонируем Git-репозиторий сервера синхронизации и затем войдем в папку:

git clone https://github.com/mozilla-services/syncserver
cd syncserver

Запустите команду сборки, которая загрузит зависимости и скомпилирует код:

make build

Запустите сервер синхронизации и убедитесь, что он работает правильно:

bin/paster serve development.ini

Вы увидите что-то вроде этого:

Starting server in PID 5952.
serving on 0.0.0.0:5000 view at http://127.0.0.1:5000

Настройка сервера синхронизации

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

Откройте файл конфигурации в вашем любимом текстовом редакторе (например nano ./syncserver.ini).

[server:main]
use = egg:gunicorn
host = 0.0.0.0
port = 5000
workers = 1
timeout = 30

[app:main]
use = egg:syncserver

[syncserver]
# This must be edited to point to the public URL of your server,
# i.e. the URL as seen by Firefox.
public_url = http://localhost:5000/

# This defines the database in which to store all server data.
#sqluri = sqlite:////tmp/syncserver.db

# This is a secret key used for signing authentication tokens.
# It should be long and randomly-generated.
# The following command will give a suitable value on *nix systems:
#
#    head -c 20 /dev/urandom | sha1sum
#
# If not specified then the server will generate a temporary one at startup.
#secret = INSERT_SECRET_KEY_HERE

# Set this to "false" to disable new-user signups on the server.
# Only request by existing accounts will be honoured.
# allow_new_users = false

# Set this to "true" to work around a mismatch between public_url and
# the application URL as seen by python, which can happen in certain reverse-
# proxy hosting setups.  It will overwrite the WSGI environ dict with the
# details from public_url.  This could have security implications if e.g.
# you tell the app that it's on HTTPS but it's really on HTTP, so it should
# only be used as a last resort and after careful checking of server config.
force_wsgi_environ = false

[browserid]
# Uncomment and edit the following to use a local BrowserID verifier
# rather than posting assertions to the mozilla-hosted verifier.
# Audiences should be set to your public_url without a trailing slash.
#backend = tokenserver.verifiers.LocalVerifier
#audiences = https://localhost:5000

# By default, syncserver will accept identity assertions issues by
# any server. You can restrict this by setting the below to a list
# of allowed issuer domains.
#allowed_issuers = www.mysite.com myfriendsdomain.org

Адрес вашего сервера должен быть указан через параметр public_url:

public_url = http://fsync.example.com

Примечание : значение по умолчанию public_url, http://localhost:5000/будет работать для целей тестирования на локальном компьютере.

Мы раскомментируем sqluriопцию и введем местоположение, или URI, что позволит серверу подключиться к базе данных и сохранить ее информацию:

sqluri = sqlite:////path/to/database/file.db

Если вы хотите использовать другой тип БД:

sqluri = pymysql://username:[email protected]/sync

Для secretпараметра нам потребуется сгенерировать секретный ключ для токенов аутентификации:

head -c 20 /dev/urandom | sha1sum

Раскомментируйте строку секретного параметра, а затем скопируйте / вставьте возвращенную строку в секретный параметр:

secret = db8a203aed5fe3e4594d4b75990acb76242efd35

Примечание . Если вы не введете ничего в этот параметр, сервер сгенерирует его, но он будет отличаться при каждом перезапуске сервера.

Раскомментируйте allow\_new\_usersпараметр и настройте его так, trueчтобы наша учетная запись впервые подключалась к нашему серверу:

allow_new_users = true

Затем мы раскомментируем audiencesпараметр и добавим то же самое, что и public_uriпараметр:

audiences = http://fsync.example.com

Наконец, просто добавьте следующую строку в конец вашего файла:

forwarded_allow_ips = *

Эта строка поможет вам избежать сообщений об ошибках и проблем с авторизацией.

Запуск сервера синхронизации

Чтобы запустить сервер синхронизации, вы можете использовать одну из следующих команд:

./path/to/syncserver/local/bin/gunicorn --threads 4 --paste /path/to/syncserver/syncserver.ini &

Это позволяет вам выбрать местоположение файла конфигурации; а также поставить аргумент --threads 4, который позволяет назначить больше мощности серверу синхронизации.

Чтобы запускать сервер каждый раз при загрузке вашего экземпляра, вы можете добавить следующую строку в ваш crontab, набрав crontab -eкоманду:

@reboot ./path/to/syncserver/local/bin/gunicorn --paste /path/to/syncserver/syncserver.ini &

Конфигурация веб-сервера

Вы можете использовать разные веб-серверы, совместимые с WSGIпротоколом. Например:

  • Nginx с UWSGI.
  • Apache в сочетании с mod_wsgi.

Nginx

Для Nginx вы должны использовать встроенный прокси-сервер Nginx, как показано ниже:

server {
        listen  80;
        server_name fsync.example.com;

        location / {
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_redirect off;
                proxy_read_timeout 120;
                proxy_connect_timeout 10;
                proxy_pass http://127.0.0.1:5000/;
        }
}

Nginx + UWSGI

Пользователи Nginx могут использовать только сокет WSGI.

Установить uWSGIчерез Pip:

pip install uwsgi

Установите uWSGIчерез скачивание исходного архива:

wget https://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd <dir>
make

Примечание : после сборки у вас будет uwsgiбинарный файл в текущем каталоге.

После установки запустите его со следующими параметрами:

uwsgi --plugins python27 --manage-script-name \
--mount /<location>=/path/to/syncserver/syncserver.wsgi \
--socket /path/to/uwsgi.sock

Затем используйте следующую конфигурацию Nginx:

location /<location>/ {
include uwsgi_params;
uwsgi_pass unix:/path/to/uwsgi.sock;
}

апаш

Установить mod_wsgi:

apt-get install libapache2-mod-wsgi

Затем используйте следующий vhost:

<VirtualHost *:80>
  ServerName sync.example.com
  DocumentRoot /path/to/syncserver
  WSGIProcessGroup sync
  WSGIDaemonProcess sync user=sync group=sync processes=2 threads=25 python-path=/path/to/syncserver/local/lib/python2.7/site-packages/
  WSGIPassAuthorization On
  WSGIScriptAlias / /path/to/syncserver/syncserver.wsgi
  CustomLog /var/log/apache2/sync.example.com-access.log combined
  ErrorLog  /var/log/apache2/sync.example.com-error.log
</VirtualHost>

Настройте клиент (Firefox)

После того, как сервер установлен и настроен, вы можете настроить клиент Firefox для настольного компьютера на связь с вашим новым сервером синхронизации. Прежде чем начать, если вы уже подключены к серверам синхронизации Firefox, вы должны выйти из системы. В противном случае соединение с новым сервером может не работать.

Сначала откройте новую вкладку и введите следующий адрес:

about:config

В строке поиска введите identity.sync.tokenserver.uriи измените ее значение на URL вашего сервера с путем token/1.0/sync/1.5:

http://sync.example.com/token/1.0/sync/1.5


Leave a Comment

Как установить Anchor CMS на CentOS 7 LAMP VPS

Как установить Anchor CMS на CentOS 7 LAMP VPS

Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

При настройке нового сервера Linux рекомендуется обновить ядро ​​системы и другие пакеты до последней стабильной версии. В этой статье

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Настройте Magento на CentOS 6

Настройте Magento на CentOS 6

Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья

Как установить AirSonic на CentOS 7

Как установить AirSonic на CentOS 7

Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания

Как установить OrangeScrum на CentOS 7

Как установить OrangeScrum на CentOS 7

OrangeScrum - это бесплатный инструмент управления проектами с открытым исходным кодом, который широко используется в малом и среднем бизнесе. В этой статье я проведу вас через

Как установить и настроить OrientDB Community Edition для CentOS 7

Как установить и настроить OrientDB Community Edition для CentOS 7

OrientDB - это мультимодельная СУБД NoSQL с открытым исходным кодом нового поколения. Благодаря поддержке нескольких моделей данных OrientDB может обеспечить большую функциональность и гибкость в

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я

Как установить MaraDNS на CentOS 6

Как установить MaraDNS на CentOS 6

MaraDNS - это легкая, но надежная программа с открытым исходным кодом для DNS-сервера. По сравнению с другими приложениями того же типа, такими как ISC BIND, PowerDNS и djbdns

Установка Netdata в CentOS 7

Установка Netdata в CentOS 7

Используете другую систему? Netdata - восходящая звезда в области мониторинга показателей системы в режиме реального времени. По сравнению с другими инструментами того же рода, Netdata:

Как установить Starbound Server в CentOS 7

Как установить Starbound Server в CentOS 7

Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе

Кластеризация RabbitMQ на CentOS 7

Кластеризация RabbitMQ на CentOS 7

RabbitMQ - это брокер сообщений с открытым исходным кодом, который поддерживает AMQP, STOMP и другие коммуникационные технологии. Широко используется в корпоративных приложениях

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Добро пожаловать в другой учебник Vultr. Здесь вы узнаете, как установить и запустить сервер SAMP. Это руководство было написано для CentOS 6. Предварительные условия

Установите Elgg на CentOS 7

Установите Elgg на CentOS 7

Используете другую систему? Elgg - это движок социальных сетей с открытым исходным кодом, который позволяет создавать социальные среды, такие как социальные сети кампуса и

Установка Bolt CMS на CentOS 7

Установка Bolt CMS на CentOS 7

Bolt - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Bolts размещен на GitHub. Это руководство покажет вам, как установить Bolt CMS на новую CentOS 7 Vult.

Как установить и использовать Apache PredictionIO для машинного обучения в CentOS 7

Как установить и использовать Apache PredictionIO для машинного обучения в CentOS 7

Традиционные подходы к анализу данных невозможно использовать, когда наборы данных достигают определенного размера. Современная альтернатива анализу огромных массивов данных, которые я

Как установить Elasticsearch на экземпляре Vultr CentOS 7 Server

Как установить Elasticsearch на экземпляре Vultr CentOS 7 Server

Elasticsearch - популярный движок полнотекстового поиска и аналитики с открытым исходным кодом. Благодаря своей универсальности, масштабируемости и простоте использования, Elasticsearch широко используется

Развертывание Kubernetes с помощью Kubeadm на CentOS 7

Развертывание Kubernetes с помощью Kubeadm на CentOS 7

Обзор Эта статья призвана помочь вам в кратчайшие сроки запустить и запустить кластер Kubernetes с помощью kubeadm. Это руководство будет развертывать два сервера, на

Настройте Sails.js для разработки на CentOS 7

Настройте Sails.js для разработки на CentOS 7

Используете другую систему? Введение Sails.js - это инфраструктура MVC для Node.js, аналогичная Ruby on Rails. Это делает для разработки современных приложений вер

Как установить PufferPanel (бесплатная панель управления Minecraft) на CentOS 7

Как установить PufferPanel (бесплатная панель управления Minecraft) на CentOS 7

Введение В этом руководстве мы будем устанавливать PufferPanel на нашем Vultr VPS. PufferPanel - это бесплатная панель управления с открытым исходным кодом для управления вами.

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше