首先確保你的電腦里已經安裝了Python和Django,接下來我們還需要兩個組件,nginx服務器和flup(Python的FastCGI組件)
nginx下載地址:http://nginx.org/en/download.html
flup下載地址:http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz
與Linux下不同的是,nginx在windows下是以一個應用程序的方式運行,而不是以一個服務運行(難怪沒人在windows服務器上用nginx)
把剛剛下載好的兩個壓縮包都解壓到C:\nginx\, C:\flup\(目錄可自己選擇,這里只做個演示)然后用python setup.py install 命令
安裝flup,接著就要配置nginx了,打開C:\nginx\conf\nginx.conf,我的配置文件如下,大家可根據需要自行修改:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} # 靜態資源 location ~* ^.+\.(html|jpg|jpeg|gif|png|ico|css|js)$ { root e:/gin/gin/; expires 30d; break; } location ~ ^/static/ { root e:/gin/gin/; expires 30d; break; } location ~ ^/ { # 指定 fastcgi 的主機和端口 fastcgi_pass 127.0.0.1:8051; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param QUERY_STRING $query_string; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; fastcgi_pass_header Authorization; fastcgi_intercept_errors off; } } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} } |
需要注意的是,對于不需要url rewrite的目錄,比如存放css和圖片的目錄,需要在配置文件里指明,否則將無法訪問這些文件
1
2
3
4
5
|
location ~ ^/static/ { root e:/gin/gin/; expires 30d; break; } |
最后一步就是運行nginx服務器,并且用FastCGI運行你的Django項目了
進入nginx的目錄:
1
2
|
cd c:\nginx\ start nginx |
然后在瀏覽器里訪問http://loaclhost/ 就應該可以看到nginx的歡迎界面了。最后進入你的Django項目的根目錄,然后用一下命令來運行服務器:
1
|
python manage.py runfcgi method=threaded host=127.0.0.1 port=8051 |
刷新localhost頁面,你就能看到你的項目主頁啦~~
補充一點windwos下nginx操作的命令(來自官方文檔)
1
2
3
4
|
nginx -s stop quick exit nginx -s quit graceful quit nginx -s reload changing configuration, starting a new worker, quitting an old worker gracefully nginx -s reopen reopening log files |
大功告成,開始django之旅,ohye!!!