के साथ उप-यूआरएल के तहत django को तैनात करना मैं अपने जीवन के लिए यह नहीं समझ सकता कि कैसे nginx/fastcgi के साथ एक गैर-रूट स्थान के तहत एक django साइट को तैनात करना है, उदा। http://localhost:8080/myproject/http://localhost:8080/ के बजाय; मैंने देखा है कि सभी उदाहरण अपाचे या साइट की जड़ पर बढ़ते हुए मानते हैं।Nginx/Fastcgi
server {
listen 8080;
server_name localhost;
location /myproject/ {
# host and port to fastcgi server
fastcgi_pass 127.0.0.1:3030;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
#fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
}
}
और एक न्यूनतम urls.py
: यहाँ मेरी nginx.conf
के प्रासंगिक हिस्सा है
from django.http import HttpResponse
from django.conf.urls.defaults import patterns
urlpatterns = patterns('',
(r'^hello$', lambda request: HttpResponse('Hello world!')),
)
http://localhost:8080/myproject/hello का उपयोग करने की कोशिश कर रहा एक 404. मैं असफल के सभी संयोजनों की कोशिश की है देता है:
- टिप्पणी/टिप्पणी
fastcgi_param PATH_INFO $fastcgi_script_name;
- टिप्पणियां/असम्बद्ध
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
- सेटिंग.py में
FORCE_SCRIPT_NAME = '/myproject/'
सेट करना।
@gsakkis, आप बिल्कुल इससे सहायता मिली? –
इससे मेरी मदद मिली ... मैंने इस विधि का उपयोग करते हुए nginx.conf में उसी सर्वर {} पर दो वेबपैप्स होस्ट किए। लेकिन मेरी समस्या दोनों को अलग-अलग स्थिर और मीडिया यूआरएल की आवश्यकता है ... यहां क्या करना है ?? – codeVerine