在Debian 9或Ubuntu 16.04上设置Firefox Sync Server

Firefox Sync是浏览器同步功能,可让您在所有设备上共享数据和首选项(例如书签,历史记录,密码,打开的选项卡和已安装的附件)。Mozilla还为希望托管自己的同步数据的用户和企业提供了与Firefox Sync一起使用的“同步服务器”应用程序。本文向您展示了如何设置Mozilla Sync Server。

先决条件

  • 新部署的Vultr Debian 8,Debian 9或Ubuntu 16.04服务器实例。
  • 一个sudo的用户

安装必要的软件包

更新系统:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

要构建和运行Sync Server,您需要安装以下软件包:

  • python-dev
  • git
  • build-essential (C ++编译器,GCC编译器,make和其他必需的工具)。
  • sqlite3(如果要使用MySQL数据库而不是SQLite,则可以sqlite3mariadb-server或替换软件包mysql-server)。
  • nginx(网络服务器。您可以从apache2或中选择要使用的网络服务器nginx)。

安装软件包:

sudo apt-get install -y git git-core python-dev python-virtualenv build-essential sqlite3 nginx

构建服务器

我们将通过键入以下命令来克隆同步服务器的Git存储库,然后输入文件夹:

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

运行build命令,该命令将下载依赖项并编译代码。

make build

同步服务器配置

同步服务器的配置非常简单,只需在配置文件(./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参数的行,然后将返回的字符串复制/粘贴到secret参数中:

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 &

...或这个:

make serve &

第一个选项允许选择配置文件的位置。并放入参数--threads 4,该参数允许为同步服务器分配更多的功能。

要在每次实例启动时启动服务器,可以通过键入以下crontab -e命令将以下行添加到crontab中:

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

Web服务器配置

您可以使用与该WSGI协议兼容的其他Web服务器。例如:

  • 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

然后使用以下虚拟主机:

<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客户端与新的Sync Server对话。开始之前,如果您已经连接到Firefox Sync Server,则必须注销。否则,可能无法连接到新服务器。

首先,打开一个新标签并输入以下地址:

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

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)

如何在Debian 9上安装Monica

如何在Debian 9上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

将Debian 9升级到Debian 10

将Debian 9升级到Debian 10

简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin

如何在Debian 9上安装Grav CMS

如何在Debian 9上安装Grav CMS

使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何

在Debian / Ubuntu中使用Rsync设置文件镜像

在Debian / Ubuntu中使用Rsync设置文件镜像

简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络

在适用于Minecraft服务器的Ubuntu 14.04上安装MineOS

在适用于Minecraft服务器的Ubuntu 14.04上安装MineOS

MineOS是一个完整的Minecraft服务器平台,具有Web GUI,自动备份,存档,性能统计信息以及其他功能。配置

在Debian 7上安装Prosody

在Debian 7上安装Prosody

在Debian 7上安装Prosody Prosody是用LUA编写的XMPP通信服务器。它旨在易于设置和配置,并通过syste高效

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Debian 9上安装Mailtrain Newsletter应用程序

如何在Debian 9上安装Mailtrain Newsletter应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。Mailtrains源位于GitHub上。锡

如何在Debian 9上安装Attendize

如何在Debian 9上安装Attendize

使用其他系统?Attendize是一个基于Laravel PHP框架的开源门票销售和事件管理平台。参加源鳕鱼

如何安装ARK:Debian 9的生存进化

如何安装ARK:Debian 9的生存进化

简介在本指南中,您将学习如何在Vultr VPS上创建ARK:Survival Evolved服务器。要求Vultr VPS至少为8192 M

在Debian / Ubuntu上设置您自己的DNS服务器

在Debian / Ubuntu上设置您自己的DNS服务器

本教程说明了如何在Debian或Ubuntu上使用Bind9设置DNS服务器。在整篇文章中,请相应地替换your-domain-name.com。在

在Debian上安装带有PHP-FPM和MySQL的Hiawatha Web服务器

在Debian上安装带有PHP-FPM和MySQL的Hiawatha Web服务器

Hiawatha是一种Web服务器,具有简单性,易用性和安全性。对于小型服务器,较旧的硬件或嵌入式设备,它是完美的解决方案

在Debian 7(Wheezy)上安装Plesk

在Debian 7(Wheezy)上安装Plesk

使用其他系统?Plesk是专有的Web主机控制面板,允许用户管理其个人和/或客户的网站,数据库

在Debian / Ubuntu上设置vsFTPd

在Debian / Ubuntu上设置vsFTPd

简介vsftpd代表“非常安全的FTP守护程序”。它是一个轻量级的FTP服务器。这个简短的教程说明了如何在Debian或Ubuntu上安装vsftpd

如何在Debian 9上安装LimeSurvey CE

如何在Debian 9上安装LimeSurvey CE

使用其他系统?LimeSurvey是一个用PHP编写的开源调查软件。LimeSurvey源代码托管在GitHub上。本指南将向您展示

在Debian 7上使用MySQL视图

在Debian 7上使用MySQL视图

简介MySQL具有一个伟大的功能,称为视图。视图是存储的查询。可以将它们视为否则会很长查询的别名。在本指南中,

如何在Debian 9上安装和配置TaskBoard

如何在Debian 9上安装和配置TaskBoard

使用其他系统?简介TaskBoard是一个免费的开源工具,可以用来跟踪要做的事情。它提供了一个用户友好

如何在Debian 9上安装Osclass

如何在Debian 9上安装Osclass

使用其他系统?Osclass是一个开放源代码项目,可让您轻松创建分类站点,而无需任何技术知识。它的来源

如何在Debian 9上使用块存储设置Samba

如何在Debian 9上使用块存储设置Samba

Samba是一个开放源代码解决方案,允许用户设置快速安全的文件和打印共享。在本文中,我将介绍如何设置Samba wit

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。