Предуслови
Инсталирајте потребне пакете
Изградња сервера
Конфигурација сервера за синхронизацију
Покретање сервера за синхронизацију
Конфигурација веб сервера
Конфигуришите клијента (Фирефок)
Фирефок Синц је функција синхронизације прегледача која вам омогућава да делите своје податке и подешавања (као што су обележивачи, историја, лозинке, отворене картице и инсталирани додаци) на свим вашим уређајима. Мозилла такође нуди апликацију „сервер за синхронизацију“ за коришћење са Фирефок Синц-ом за кориснике и предузећа која више воле да хостују сопствене податке за синхронизацију. Овај чланак вам показује како да подесите Мозилла Синц Сервер.
Предуслови
Инсталирајте потребне пакете
Ажурирајте систем:
sudo yum check-update
Да бисте направили и покренули Синц Сервер, мораћете да инсталирате ове пакете:
Mecurial
sqlite3
git
Python 2.6.6
Python 2.6.6 virtualenv
Python 2.6.6 SetupTools
Python 2.6.6 Developer Tools
Инсталирајте најновију верзију Мерцуриал-а:
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
Инсталирајте СКЛите3:
sudo yum install sqlite
Инсталирајте и изградите Питхон 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 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:password@db.example.com/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 -eкоманду:
@reboot ./path/to/syncserver/local/bin/gunicorn --paste /path/to/syncserver/syncserver.ini &
Конфигурација веб сервера
Можете користити различите веб сервере који су компатибилни са WSGIпротоколом. На пример:
Nginx са уВСГИ.
Apache у комбинацији са мод_всги.
Нгинк
За Нгинк, морате да користите Нгинк уграђени прокси као што је приказано у наставку:
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/;
}
}
Нгинк + уВСГИ
Корисницима Нгинк-а је могуће да користе само ВСГИ соцкет.
Инсталирај uWSGIпреко Пип-а:
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
Затим користите следећу Нгинк конфигурацију:
location /<location>/ {
include uwsgi_params;
uwsgi_pass unix:/path/to/uwsgi.sock;
}
Апацхе
Инсталирај mod_wsgi:
apt-get install libapache2-mod-wsgi
Затим користите следећи вхост:
<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>
Када је сервер инсталиран и конфигурисан, можете да конфигуришете десктоп Фирефок клијент да разговара са вашим новим Синц Сервером. Пре него што почнете, морате да се одјавите, ако сте већ повезани са Фирефок Синц серверима. У супротном, веза са новим сервером можда неће радити.
Прво отворите нову картицу и унесите следећу адресу:
about:config
У траку за претрагу унесите identity.sync.tokenserver.uriи промените њену вредност у УРЛ адресу вашег сервера са путањом token/1.0/sync/1.5:
http://sync.example.com/token/1.0/sync/1.5