nginx+uwsgi+bottle python服務器部署


一、安裝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為例)》

 


 

完。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM