Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
nginx
GitHub Repository: nginx/nginx.org
Path: blob/main/xml/cn/docs/windows.xml
1 views
1
<!--
2
Copyright (C) Igor Sysoev
3
Copyright (C) Nginx, Inc.
4
-->
5
6
<!DOCTYPE article SYSTEM "../../../dtd/article.dtd">
7
8
<article name="nginx Windows版使用说明"
9
link="/cn/docs/windows.html"
10
lang="cn"
11
rev="1">
12
13
14
<section>
15
16
<para>
17
nginx的Windows版本使用原生Win32 API(非Cygwin模拟层)。当前nginx/Windows只使用<i>select</i>作为通知方法,所以不要期待它有很高的性能和扩展性。鉴于这点和一些已知问题,nginx/Windows目前还处于<i>beta</i>阶段。nginx/Windows和Unix版本相比,功能几乎已经齐全,除了XSLT过滤器、图像过滤器、GeoIP模块和嵌入Perl语言支持以外。
18
</para>
19
20
<para>
21
安装nginx/Windows,需要<link doc="../download.xml">下载</link>最新的<mainline_version />开发版本,因为开发分支上包含了所有已知的问题修复,尤其是针对Windows版本的问题修复。解压缩下载得到的zip文件,进入nginx-<mainline_version />目录,运行nginx。下面给出一个在C盘根目录下安装的例子:
22
23
<programlisting>
24
cd c:\
25
unzip nginx-<mainline_version />.zip
26
cd nginx-<mainline_version />
27
start nginx
28
</programlisting>
29
30
可以在命令行运行<command>tasklist</command>命令来查看nginx进程:
31
32
<programlisting>
33
C:\nginx-<mainline_version />&gt;tasklist /fi "imagename eq nginx.exe"
34
35
Image Name PID Session Name Session# Mem Usage
36
=============== ======== ============== ========== ============
37
nginx.exe 652 Console 0 2 780 K
38
nginx.exe 1332 Console 0 3 112 K
39
</programlisting>
40
41
其中一个是主进程,另一个是工作进程。如果nginx没有启动,请查看<path>logs\error.log</path>文件以寻找失败原因。如果日志文件不存在,那失败原因会记录在Windows事件日志中。如果某次请求没有展示预想的页面,而是展示了错误页面,也请查看<path>logs\error.log</path>文件。
42
</para>
43
44
<para>
45
nginx/Windows使用工作目录作为前缀将配置文件中设置的相对目录补齐。就上面安装的例子而言,工作目录应该是<path>C:\nginx-<mainline_version />\</path>(工作目录基本上与运行文件所在的目录相同)。配置文件中的目录请使用“/”,而不是“\”做目录分隔:
46
47
<programlisting>
48
access_log logs/site.log;
49
root C:/web/html;
50
</programlisting>
51
</para>
52
53
<para>
54
nginx/Windows作为标准控制台应用运行,而不是系统服务。可以用下面的命令控制:
55
56
<table note="yes">
57
58
<tr>
59
<td width="20%">nginx -s stop</td>
60
<td>快速退出</td>
61
</tr>
62
63
<tr>
64
<td>nginx -s quit</td>
65
<td>优雅退出</td>
66
</tr>
67
68
<tr>
69
<td>nginx -s reload</td>
70
<td>
71
更换配置,启动新的工作进程,优雅的关闭以往的工作进程
72
</td>
73
</tr>
74
75
<tr>
76
<td>nginx -s reopen</td>
77
<td>重新打开日志文件</td>
78
</tr>
79
80
</table>
81
</para>
82
83
</section>
84
85
<section id="known_issues"
86
name="已知问题">
87
88
<list type="bullet">
89
90
<listitem>
91
虽然可以启动若干工作进程运行,实际上只有一个进程在处理请求所有请求。
92
</listitem>
93
94
<listitem>
95
一个工作进程只能处理不超过1024个并发连接。
96
</listitem>
97
98
<listitem>
99
缓存和其他需要共享内存支持的模块在Windows Vista及后续版本的操作系统中无法工作,因为在这些操作系统中,地址空间的布局是随机的。
100
</listitem>
101
102
</list>
103
104
</section>
105
106
<section id="possible_future_enhancements"
107
name="日后可能加强的功能">
108
109
<list type="bullet">
110
111
<listitem>
112
作为系统服务运行。
113
</listitem>
114
115
<listitem>
116
使用“I/O完成端口”作为事件模型。
117
</listitem>
118
119
<listitem>
120
使用单工作进程多线程的模型。
121
</listitem>
122
123
</list>
124
125
</section>
126
127
</article>
128
129