一、安裝nginx(如果服務器上已經有nginx了,則無需重復安裝)
sudo apt-get install nginx
二、nginx配置,例如:/etc/nginx/conf.d/digger.conf
server{ listen 9000; server_name 127.0.0.1; root /data/webroot/python/digger; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9090; } }
注:端口隨意,不沖突就好;server_name 可以為域名或ip;
三、安裝 uwsgi
pip install uwsgi
四、編寫入口py文件,保存為 web.py文件(其他文件名也隨意)
import os from bottle import Bottle, request mybottle = Bottle() @mybottle.route('/') def index(): return 'Hello World!' @mybottle.route('/<spider>/run') def runSpider(spider): url = request.query.url if url is None: return 'params error' cwd = os.getcwd().replace('\\', '/') return os.system('python3 {cwd}/run.py {spider} {url}'.format(cwd=cwd, spider=spider, url=url)) application = mybottle
五、啟動 uwsgi(端口要和上面nginx配置的一致)
uwsgi --socket 127.0.0.1:9090 --wsgi-file web.py --master --processes 4 --threads 2 --daemonize /var/log/uwsgi/app/web.log
默認情況下,修改web.py不會立即生效,需要重啟uwsgi;如果調試階段想自動重載,可以增加 --py-autoreload 1 參數
uwsgi --socket 127.0.0.1:9090 --wsgi-file web.py --master --processes 4 --threads 2 --py-autoreload 1 --daemonize /var/log/uwsgi/app/web.log
PS:使用 -- daemonize 參數時為后台守護進程運行,不使用時為當前會話窗口運行
其他配置及參數看這里 -> https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html
六、重啟 nginx
nginx -s reload
七、訪問 http://127.0.0.1:9000 看看效果
八、使用 supervisor 來管理 uwsgi 進程,請看下文:
《使用 supervisor 來管理 python 進程(以uwsgi為例)》
完。