Nginx
使用 Nginx 配置 uwsgi,使用 python 腳本作為 cgi - 502 Bad Gateway
這是我執行 uwsgi“pyApp.py”的 .ini 文件
[uwsgi] plugins = cgi socket = 127.0.0.1:9010 cgi = /=/usr/share/test/ cgi-allowed-ext = .py cgi-helper = .py=python
我在 /usr/share/test/firstapp.py 有一個文件“firstapp.py”它的內容是
#!/usr/bin/python print "Content-type: text/html\n\n" print "<html><body><h1>It works! Cool!!</h1></body></html>"
我正在使用命令執行 uwsgi 的實例
uwsgi --http :9011 --http-modifier1 9 --ini pyApp.ini --master
我已經使用 nginx 配置了幾個虛擬主機。並且其中一個必須指向目錄 /usr/share/test/ 當 url 中包含“/cgi-bin/”時。
nginx 配置是 -
$$ also the only default one among the others $$
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /var/www/pythonsite.com/html; index index.html index.htm; server_name pythonsite.com www.pythonsite.com; location / { try_files $uri $uri/ =404; } location /cgi-bin { include uwsgi_params; uwsgi_modifier1 9; uwsgi_pass 127.0.0.1:9010; } }
但是當我嘗試通過 url 從瀏覽器訪問“cgi”腳本時
http://pythonsite.com/cgi-bin/firstapp.py
預設 URL“pythonsite.com”似乎工作正常,但上面帶有“cgi-bin”的 URl 似乎缺少一些東西。我得到“502 壞網關”。我錯過了什麼。為了以這種方式使用python腳本?
編輯:
此外,每次我在瀏覽器中請求 URL http://pythonsite.com/cgi-bin/firstapp.py時,uwsgi 伺服器實例上都會有一個日誌說
-- unavailable modifier requested: 9 --
編輯2:
在 uwsgi 日誌中,我得到 127.0..0.1:9010 的“無效請求塊大小:21573(最大 4096)…跳過”,並且在瀏覽器頁面上重置了連接
對於“127.0.0.1:9011/”;我在瀏覽器上收到“內部伺服器錯誤”消息。和 uwsgi 記錄為
"--- no python application found, check your startup logs for errors ---"
可能出了什麼問題?:|
是否安裝了 CGI 外掛?
使用相同的配置,我可以重現錯誤,但在安裝 CGI 外掛並使用 /tmp/uwsgi 中的新二進製文件執行後,它可以工作:
curl http://uwsgi.it/install | bash -s cgi /tmp/uwsgi