nginx + uwsgi: - अनुपलब्ध संशोधक का अनुरोध: 0 -


81

उबुन्टु १२.०४, नगनेक्स १.२.०, उव्सगी १.३.३।

मैं निम्नलिखित कमांड के साथ uwsgi शुरू करता हूं:

uwsgi -s 127.0.0.1:9010 -M -t 30 -A 4 -p 4 -d /var/log/uwsgi.log

प्रत्येक अनुरोध पर 502 के साथ नगनेक्स उत्तर देते हैं और uwsgi निम्नलिखित पंक्ति को लॉग करने के लिए लिखते हैं:

-- unavailable modifier requested: 0 --

उबंटू पर उव्सगी को एक सेवा के रूप में शुरू किया गया है service uwsgi start:।
सोरिन

जवाबों:


109

मूल उत्तर

के लिए अजगर 2 उबंटू 11.10 पर, का उपयोग करते हुए upstart, के लिए अजगर प्लगइन स्थापित uWSGIके साथ apt-get install uwsgi-plugin-pythonऔर आप अपने कॉन्फ़िगर करने के लिए एक INI फ़ाइल उपयोग कर रहे हैं uWSGIऐप्लिकेशन खोलें, फिर जोड़ने plugins = pythonके लिए [uwsgi]अनुभाग और यह इस समस्या का समाधान करना चाहिए।

संपादित करें: पायथन 3 और Ubuntu 17.10 के लिए अपडेट किया गया

के लिए अजगर 3 उबंटू 17.10 पर, का उपयोग करते हुए systemd, के लिए अजगर प्लगइन स्थापित uWSGIके साथ apt-get install uwsgi-plugin-python3और आप अपने कॉन्फ़िगर करने के लिए एक INI फ़ाइल उपयोग कर रहे हैं uWSGIऐप्लिकेशन खोलें, फिर जोड़ने plugins = pythonके लिए [uwsgi]अनुभाग और यह इस समस्या का समाधान करना चाहिए।

python/ uWSGIएप्लिकेशन के साथ आरंभ करने के बारे में अधिक जानकारी के लिए , जिसमें iniफ़ाइल का उपयोग करके उन्हें कॉन्फ़िगर करना शामिल है, तो कृपया इस आसान गाइड पर एक नज़र डालें


इसके बराबर (yum plugin install + uwsgi config change) सिर्फ मेरे लिए CentOS7 पर काम किया।
माइक हॉसडेन

मेरा सिर फोड़ रहे हैं, इस मुद्दे को ठीक करने में असमर्थ हैं। धन्यवाद !
सुपरनोवा

अल्पाइन लिनक्स के बारे में क्या?
एडम पार्किन

मुझे नहीं पता कि फ़ाइल "व्यक्तिगत uwsgi एप्लिकेशन कॉन्फिग" के लिए कहां है। क्या आप अधिक विस्तार से बताएंगे? क्या यह मेरी uwsgi ऐप की आईएनआई फ़ाइल है? / Etc / कुछ फ़ाइल? शायद इस बात का एक नमूना पेस्ट करें कि फाइल की सामग्री कैसी दिखती है इसलिए मुझे पता है कि आप किस बात का जिक्र कर रहे हैं? और फ़ाइल के लिए एक विशिष्ट स्थान?
जेसन

यह काफी समय हो गया है क्योंकि मुझे इस बारे में (वास्तव में 7 साल) चिंता करनी थी, लेकिन मुझे वास्तव में uwsgiऐप की आईएनआई फ़ाइल से मतलब है । जैसा कि आप शायद कल्पना कर सकते हैं, अब मेरे पास कोई भी कॉन्फिग फाइल नहीं है, लेकिन एक त्वरित Google खोज ने इसे (प्रतीत होता है) आसान गाइड बनाया । Ini फ़ाइल के स्थान के लिए, यह वास्तविक रूप से लगभग कहीं भी रह सकता है। यदि आप विशेष रूप से साहसी महसूस कर रहे थे, तो आप दुनिया में कहीं भी किसी अन्य वेब सर्वर से उस आईएनआई फ़ाइल की सेवा कर सकते थे, जैसे कि:uwsgi --ini http://uwsgi.it/configs/myapp.ini
SHAKie

26

uwsgi-plugin-python3प्लगइन स्थापित करके और कमांड शुरू --plugin python3करने के uwsgiलिए विकल्प जोड़कर हल किया गया


2
कृपया अधिक विवरण के साथ विस्तृत उत्तर लिखें और प्रश्न सेट करें जैसा कि @SHaie उत्तर के साथ हल किया गया है
b1_

15

Im उबासि को उबंट्ट पर ऊपर से शुरू कर रहा है मैंने समस्या को हल करके apt-get install uwsgi-plugin-python, और उसके बाद plugins=pythonअपने ऐप्लिकेशन.ini को / etc / uwsgi / Applications-available में जोड़ दिया।


8

से http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html एक विशिष्ट प्लगइन के लिए रास्ते में अनुरोध करने के लिए ",, वेबसर्वर जरूरतों एक जादू uWSGI उदाहरणों में संशोधक के रूप में जाना संख्या पारित करने के लिए। इस डिफ़ॉल्ट संख्या 0 पर सेट की गई है, जिसे पायथन में मैप किया गया है। "

मैं एक बैश स्क्रिप्ट के लिए 9 का उपयोग कर रहा हूं और यह काम कर रहा है। संख्या और उनके अर्थ इस पृष्ठ पर हैं: http://uwsgi-docs.readthedocs.org/en/latest/Protocol.html

मेरे nginx कॉन्फ़िगरेशन में:

location ~ .cgi$ {
    include uwsgi_params;
    uwsgi_modifier1 9;
    uwsgi_pass 127.0.0.1:3031;
}


0

मैं प्यूथन 3 के साथ उबंटू 18.04 का उपयोग कर रहा हूं। नीचे सटीक कॉन्फ़िगरेशन है जो मैंने इसे काम करने के लिए उपयोग किया था।

आपके पास अजगर 3 uWSGI प्लगइन स्थापित होना चाहिए:

apt install uwsgi-plugin-python3

आपका Nginx साइट कॉन्फ़िगरेशन आपके uWSGI सॉकेट को इंगित करना चाहिए। सुनिश्चित करें कि पोर्ट बाद के चरणों में कॉन्फ़िगरेशन से मेल खाता है।

    location / {
        uwsgi_pass 127.0.0.1:9090;
        include uwsgi_params;
    }

आपके द्वारा अभी किए गए परिवर्तनों को प्रतिबिंबित करने के लिए Nginx कॉन्फिगर को पुनः लोड करें:

systemctl reload nginx

आप कॉन्फ़िगरेशन के लिए कमांड-लाइन तर्क या एक आईएनआई फ़ाइल का उपयोग कर सकते हैं। मैंने बनायाuwsgi.ini । सुनिश्चित करें कि सॉकेट पता आपके nginx कॉन्फ़िगरेशन से मेल खाता है।

[uwsgi]
socket = 127.0.0.1:9090
chdir = /var/www
processes = 4
threads = 2
plugins = python3
wsgi-file = /var/www/app.py

मेरे app.py सिर्फ एक मूल उदाहरण है:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/plain')])
    return [b"Hello World!"]

अब कमांड लाइन से uWSGI सर्वर शुरू करें:

uwsgi uwsgi.ini
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.