簡體   English   中英

python:從uwsgi移到http-socket

[英]python: moving from uwsgi to http-socket

我正在使用一個python應用程序( modoboa ),該應用程序以前曾通過uwsgi協議與uwsgi一起提供給nginx。

我現在正在嘗試不使用uwsgi協議但使用http的h2o服務器。

因此,我試圖將uwsgi從使用uwsgi-socket遷移到http-socket,但是在我現在的位置,uwsgi引發了錯誤“找不到python應用程序”。

這是在我的nginx.conf

location /modoboa/ {
        root /usr/local/www/modoboa_default/modoboa_default;
        include uwsgi_params;
        uwsgi_pass unix:/tmp/uwsgi-modoboa.sock;
        uwsgi_param UWSGI_SCRIPT modoboa_default.wsgi:application;
        uwsgi_param UWSGI_SCHEME https;
        uwsgi_param SCRIPT_NAME /modoboa;
        uwsgi_modifier1 30;
    }

這是我的uwsgi.ini

[uwsgi]
chdir = /usr/local/www/modoboa_default
module = modoboa_default.wsgi:application
master = true
harakiri = 60
processes = 4
vhost = true
no-default-app = true

現在是我的uwsgi.ini

[uwsgi]
chdir = /usr/local/www/modoboa_default
module = modoboa_default.wsgi:application
master = true
harakiri = 60
processes = 4
vhost = true
no-default-app = true
http-socket=/tmp/uwsgi-http.sock
enable-threads=true
buffer-size=60000
http-keepalive=3000

我想我的uwsgi.ini中缺少某些內容


更新

這就是我到目前為止

h2o.conf

        "/modoboa/":
            proxy.reverse.url: "http://[unix:/tmp/uwsgi-http.sock]/"
            proxy.timeout.keepalive: 1000
            proxy.preserve-host: ON

        "/modoboa/sitestatic/":
            file.dir: /usr/local/www/modoboa_default/sitestatic/

        "/modoboa/media/":
            file.dir: /usr/local/www/modoboa_default/media/

uwsgi.ini

[uwsgi]
chdir = /usr/local/www/modoboa_default
harakiri = 60
processes = 4
http-socket = /tmp/uwsgi-http.sock
enable-threads = true
mount = /modoboa=modoboa_default.wsgi:application
manage-script-name = true

這適用於起始頁。 但是,當我登錄時,我將被重定向到example.com/accounts/login/而不是example.com/modoboa/accounts/login/

如果要在uWSGI配置中顯式設置模塊,則應刪除vhostno-default-app選項。 設置了該選項后,uWSGI期望從HTTP服務器獲取有關該信息的信息,但是H2O並未設置任何內容。

另外,對於用戶來說,使用服務器發送可以發送適當標題的設置是不安全的,除非您完全知道它們的用途,因此也請從現有的nginx配置中刪除它們。 您已在uWSGI配置中設置了module

我認為您必須在[uwsgi]部分中具有以下內容(即uwsgi.ini和nginx.conf中的套接字名稱相同)

socket = /tmp/uwsgi-modoboa.sock

chmod-socket = 644

如果644不起作用,請嘗試666甚至777(請注意在共享服務器上具有廣泛打開權限的安全問題)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM