芝麻HTTP:Scrapyd的安裝

Scrapyd是一個用於部署和運行Scrapy項目的工具,有了它,你能夠將寫好的Scrapy項目上傳到雲主機並經過API來控制它的運行。html

既然是Scrapy項目部署,基本上都使用Linux主機,因此本節的安裝是針對於Linux主機的。python

1. 相關連接

2. pip安裝

這裏推薦使用pip安裝,命令以下:nginx

pip3 install scrapyd

3. 配置

安裝完畢以後,須要新建一個配置文件/etc/scrapyd/scrapyd.conf,Scrapyd在運行的時候會讀取此配置文件。git

在Scrapyd 1.2版本以後,不會自動建立該文件,須要咱們自行添加。github

首先,執行以下命令新建文件:web

sudo mkdir /etc/scrapyd
sudo vi /etc/scrapyd/scrapyd.conf

接着寫入以下內容:json

[scrapyd]
eggs_dir    = eggs
logs_dir    = logs
items_dir   =
jobs_to_keep = 5
dbs_dir     = dbs
max_proc    = 0
max_proc_per_cpu = 10
finished_to_keep = 100
poll_interval = 5.0
bind_address = 0.0.0.0
http_port   = 6800
debug       = off
runner      = scrapyd.runner
application = scrapyd.app.application
launcher    = scrapyd.launcher.Launcher
webroot     = scrapyd.website.Root

[services]
schedule.json     = scrapyd.webservice.Schedule
cancel.json       = scrapyd.webservice.Cancel
addversion.json   = scrapyd.webservice.AddVersion
listprojects.json = scrapyd.webservice.ListProjects
listversions.json = scrapyd.webservice.ListVersions
listspiders.json  = scrapyd.webservice.ListSpiders
delproject.json   = scrapyd.webservice.DeleteProject
delversion.json   = scrapyd.webservice.DeleteVersion
listjobs.json     = scrapyd.webservice.ListJobs
daemonstatus.json = scrapyd.webservice.DaemonStatus

配置文件的內容能夠參見官方文檔https://scrapyd.readthedocs.io/en/stable/config.html#example-configuration-file。這裏的配置文件有所修改,其中之一是max_proc_per_cpu官方默認爲4,即一臺主機每一個CPU最多運行4個Scrapy任務,在此提升爲10。另一個是bind_address,默認爲本地127.0.0.1,在此修改成0.0.0.0,以使外網能夠訪問。瀏覽器

4. 後臺運行

Scrapyd是一個純Python項目,這裏能夠直接調用它來運行。爲了使程序一直在後臺運行,Linux和Mac可使用以下命令:服務器

(scrapyd > /dev/null &)

這樣Scrapyd就會在後臺持續運行了,控制檯輸出直接忽略。固然,若是想記錄輸出日誌,能夠修改輸出目標,如:app

(scrapyd > ~/scrapyd.log &)

此時會將Scrapyd的運行結果輸出到~/scrapyd.log文件中。

固然也可使用screen、tmux、supervisor等工具來實現進程守護。

運行以後,即可以在瀏覽器的6800端口訪問Web UI了,從中能夠看到當前Scrapyd的運行任務、日誌等內容,如圖1所示。

圖1Scrapyd首頁

固然,運行Scrapyd更佳的方式是使用Supervisor守護進程,若是感興趣,能夠參考:http://supervisord.org/

另外,Scrapyd也支持Docker,後面咱們會介紹Scrapyd Docker鏡像的製做和運行方法。

5. 訪問認證

配置完成後,Scrapyd和它的接口都是能夠公開訪問的。若是想配置訪問認證的話,能夠藉助於Nginx作反向代理,這裏須要先安裝Nginx服務器。

在此以Ubuntu爲例進行說明,安裝命令以下:

sudo apt-get install nginx

而後修改Nginx的配置文件nginx.conf,增長以下配置:

http {
    server {
        listen 6801;
        location / {
            proxy_pass    http://127.0.0.1:6800/;
            auth_basic    "Restricted";
            auth_basic_user_file    /etc/nginx/conf.d/.htpasswd;
        }
    }
}

這裏使用的用戶名和密碼配置放置在/etc/nginx/conf.d目錄下,咱們須要使用htpasswd命令建立。例如,建立一個用戶名爲admin的文件,命令以下:

htpasswd -c .htpasswd admin

接着就會提示咱們輸入密碼,輸入兩次以後,就會生成密碼文件。此時查看這個文件的內容:

cat .htpasswd 
admin:5ZBxQr0rCqwbc

配置完成後,重啓一下Nginx服務,運行以下命令:

sudo nginx -s reload

這樣就成功配置了Scrapyd的訪問認證了。

相關文章
相關標籤/搜索