【服务器】Nginx在Windows上安装

Nginx("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、 示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。 新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。

反向代理

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。  

这里讲得很直白。反向代理方式实际上就是一台负责转发的代理 服务器,貌似充当了真正服务器的功能,但实际上并不是,代理服务器只是充当了转发的作用,并且从真正的服务器那里取得返回的数据。这样说,其实nginx 完成的就是这样的工作。我们让nginx监听一个端口,譬如80端口,但实际上我们转发给在8080端口的tomcat,由它来处理真正的请求,当请求完 成后,tomcat返回,但数据此时没直接返回,而是直接给nginx,由nginx进行返回,这里,我们会以为是nginx进行了处理,但实际上进行处 理的是tomcat。

说到上面的方式,也许很多人又会想起来,这样可以把静态文件交由nginx来进行处理。对,很多用到nginx的地方都是作为静态伺服器,这样可以方便缓存那些静态文件,比如CSS,JS,html,htm等文件。

Windows中的配置安装测试

到nginx官网上下载相应的安装包,http://nginx.org/en/download.html;下载进行解压,将解压后的文件放到自己心仪的目录下,我这里使用的nginx版本为nginx-1.9.0,目录结构如下:

************************ nginx-1.9.0 *********************  
conf  配置目录  
|—————— fastcgi.conf    
|—————— fastcgi_params  与php相关  
|—————— koi-utf  
|—————— koi-win  
|—————— mime.types  mime类型配置文件  
|—————— nginx.conf  主配置文件  
|—————— scgi_params  
|—————— uwsgi_params  与python相关  
|—————— win-utf  
contrib  
|—————— unicode2nginx  
|——————|—————— koi-utf  
|——————|—————— unicode-to-nginx.pl  
|——————|—————— win-utf  
|—————— vim  
|——————|—————— ftdetect  
|——————|——————|—————— nginx.vim  
|——————|—————— indent  
|——————|——————|—————— nginx.vim  
|——————|—————— syntax  
|——————|——————|—————— nginx.vim  
|—————— geo2nginx.pl  
|—————— README  
docs  文档  
|—————— CHANGES  
|—————— CHANGES.ru  
|—————— LICENSE  
|—————— OpenSSL.LICENSE  
|—————— PCRE.LICENCE  
|—————— README  
|—————— zlib.LICENSE  
html  存放网页代码的空间地址,静态页面  
|—————— 50x.html  
|—————— index.html  
logs  日志  
|—————— access.log  
|—————— error.log  
|—————— ...  
temp  临时文件  
|—————— client_body_temp  
|—————— fastcgi_temp  
|—————— proxy_temp  
|—————— scgi_temp  
|—————— uwsgi_temp  
nginx.exe   执行文件

进入window的cmd窗口,输入如下图所示的命令,进入到nginx目录,使用“start nginx.exe ”进行nginx的启动,或者直接双击nginx.exe启动,这里也许你会看到一个窗口一闪而过,根据我们使用tomcat的经验,如果一闪而过,证明有错误了,是吧?但实际上不是。

E:\>cd E:\Workspaces\Service\nginx-1.9.0  
  
E:\Workspaces\Service\nginx-1.9.0>start nginx.exe  
  
E:\Workspaces\Service\nginx-1.9.0>

在“任务管理器”中查看“nginx.exe”进程,也可以运行tasklist命令行组件来查看nginx进程:

其中一个为主进程,另外一个是工作进程。如果nginx无法启动,可以在错误日志文件logs\error.log里查看原因。如果日志文件已经被创建,错误原因可以在Windows事件日志里查看。如果显示的是错误页面而不是期望的页面,也可以在logs\error.log文件里查看原因。

在浏览器地址栏输入:127.0.0.1,会看到如下图所示的nginx欢迎界面

Windows下nginx以标准控制台程序运行(不是服务),而且可以通过以下命令管理:

  • nginx -s stop 立即关闭

  • nginx -s quit 正常关闭

  • nginx -s reload 修改配置,用新的配置启动新的工作进程,正常关闭旧的工作进程

  • nginx -s reopen 重新打开日志文件

注:以上的命令中,.exe可以去掉,相应命令的操作如下图所示:

帮助查看

已知问题

  • 尽管可以启动多个工作进程,但是实际只有其中一个工作。

  • 一个工作进程可以同时处理不多于1024个连接。

  • 需要共享内存支持的cache模块和其他模块在Windows Vista以及更高版本下无法工作,因为在这些Windows版本中启用了地址空间布局随机化。

未来可能的改进

  • 以服务运行

  • 使用I/O完成端口作为连接处理方法

  • 在单个工作进程里使用多个工作线程

nginx虽小,但是用途惊人



赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏