2012-04-20 40 views
5

Tôi đã gặp sự cố. Tôi có một kịch bản python. Bạn có thể gọi nó là kịch bản CGI. Nó hoạt động tốt dưới Apache2, nhưng chỉ còn lại một lần trước khi tôi tắt hệ thống nó chạy mãi mãi. Hệ thống mới sử dụng nginx. Tôi đã định cấu hình uwsgi theo đề xuất của nhiều người trong khi tìm kiếm giải pháp, máy chủ ảo được định cấu hình cho tập lệnh này để chạy. Tôi đã sử dụng ví dụ đầu tiên trên uwsgi wiki để xác nhận rằng tôi đã định cấu hình đúng nginx và có thể giao tiếp với uwsgi. Làm việc như quyến rũ.nginx uwsgi và cgi python script

Bây giờ các biến chứng của tôi:

Kịch bản của tôi được viết một số thời gian trước đây và không được thiết kế cho WSGI, cũng không phải tôi muốn/có thể viết lại nó.

Vì vậy, tôi đã cài đặt mô-đun cgi cho uwsgi và đã thử sử dụng nó. Tất cả những gì tôi nhận được là 502 lỗi. Không có gì được thực thi uwsgi.

Dưới đây là cấu hình của tôi Tôi đang sử dụng cho ứng dụng này:

[uwsgi] 
plugins = cgi 
socket = 127.0.0.1:9010 
cgi = /=/usr/share/test/ 
cgi-allowed-ext = .py 
cgi-helper = .py=python 

Đây là mã tôi có trong index.py (kịch bản thử nghiệm):

#!/usr/bin/python 
print "Content-type: text/html\n\n" 
print "<html><body><h1>It works!</h1></body></html>" 

tôi cố gắng để kiểm tra uwsgi với lệnh sau:

/usr/sbin/uwsgi --http :9011 --ini /etc/uwsgi/test.ini --master 

Và đây là kết quả tôi nhận được:

012.
[uWSGI] getting INI configuration from /etc/uwsgi/test.ini 
*** Starting uWSGI 1.1.2 (64bit) on [Fri Apr 20 15:26:33 2012] *** 
compiled with version: 4.4.6 20110731 (Red Hat 4.4.6-3) on 19 April 2012 15:09:37 
current working directory: /home/user 
detected binary path: /usr/sbin/uwsgi 
your memory page size is 4096 bytes 
detected max file descriptor number: 1024 
lock engine: pthread mutexes 
uWSGI http bound on :9011 fd 3 
uwsgi socket 0 bound to TCP address 127.0.0.1:9010 fd 6 
your server socket listen backlog is limited to 100 connections 
*** Operational MODE: single process *** 
initialized CGI mountpoint:/= /usr/share/test/ 
*** no app loaded. going in full dynamic mode *** 
*** uWSGI is running in multiple interpreter mode *** 
spawned uWSGI master process (pid: 6727) 
spawned uWSGI worker 1 (pid: 6728, cores: 1) 
spawned uWSGI http 1 (pid: 6729) 
-- unavailable modifier requested: 0 -- 
-- unavailable modifier requested: 0 -- 
-- unavailable modifier requested: 0 -- 
-- unavailable modifier requested: 0 -- 

Vấn đề ở đâu? Hãy giúp tôi.

Xin cảm ơn trước.

+0

Thật tuyệt khi bạn tìm thấy giải pháp, tuy nhiên tốt hơn nên thêm giải pháp này làm câu trả lời, điều này giúp cho người khác đọc bài đăng rõ ràng hơn. Cảm ơn! – CharlesB

+0

@CharlesB đó là kế hoạch của tôi, nhưng nó làm tôi chờ 7 giờ. Khi tôi tìm thấy giải pháp, tôi muốn đăng nó ngay lập tức. Tôi sẽ chuyển nó vào một bình luận sau ngày hôm nay hoặc ngày mai. Cảm ơn. – sashk

+0

Đây là lời nhắc loại để bạn không quên rằng bạn có thể biết thêm câu trả lời :) – CharlesB

Trả lời

6

Ok. Tôi đã không đọc uwsgi WIKI đủ tốt. Tất cả những gì tôi phải làm là thêm --http-modifier1 9 vào công tắc dòng lệnh hoặc uwsgi_modifier1 9; vào cấu hình nginx.

location/{ 
    include /etc/nginx/uwsgi_params; 
    uwsgi_modifier1 9; 
    uwsgi_pass 127.0.0.1:9010; 
} 

/usr/sbin/uwsgi --http :9011 --http-modifier1 9 --ini /etc/uwsgi/test.ini --master 
Các vấn đề liên quan