windows下nginx的使用

Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

什么是反向代理?

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


一:nginx的优点

作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型。

作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。

作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。

二:nginx的下载安装

nginx官网

去官网,下载你需要的windows版本,解压到对应的目录,比如我解压到C:\Program Files\nginx下面

打开解压的文件,双击nginx.exe,在浏览器地址栏输入localhost,可以看到如下界面


三:nginx的常用命令

start nginx            开启nginx

nginx -s stop         快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。
nginx -s quit         平稳关闭Nginx,保存相关信息,有安排的结束web服务。
nginx -s reload      因改变了Nginx相关配置,需要重新加载配置而重载。
nginx -s reopen     重新打开日志文件。
nginx -c filename   为 Nginx 指定一个配置文件,来代替缺省的。
nginx -t         不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。
nginx -v         显示 nginx 的版本。

四:nginx的配置

我们从最简单的开始,仅仅实现一个最简单的反向代理配置

http反向代理配置
#user用来指定nginx worker进程运行用户以及用户组,默认nobody账号运行
#user  nobody;

#worker_processes指定nginx要开启的子进程数量,运行过程中监控每个进程
#消耗内存(一般几M~几十M不等)根据实际情况进行调整,通常数量是CPU内核数量的整数倍
worker_processes  4;

#定义错误日志文件的位置及输出级别【debug / info / notice / warn / error / crit】
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#用来指定进程id的存储文件的位置
#pid        logs/nginx.pid;

#用于指定一个进程可以打开最多文件数量的描述
#worker_rlimit_nofile 1024;

#针对nginx服务器的工作模式的一些操作配置
events {
#指定最大可以同时接收的连接数量,这里一定要注意,最大连接数量是和worker processes共同决定的。
worker_connections  1024;
#配置指定nginx在收到一个新连接通知后尽可能多的接受更多的连接
#multi_accept on;
#配置指定了线程轮询的方法,如果是linux2.6+,使用epoll,如果是BSD如Mac请使用Kqueue
#use epoll; 
}

#作为web服务器,http模块是nginx最核心的一个模块
http {
    ##
    # 基础配置
    ##
    #配置on让sendfile发挥作用,将文件的回写过程交给数据缓冲去去完成,而不是放在应用中完成,这样的话在性能提升有有好处
    sendfile on;
	#让nginx在一个数据包中发送所有的头文件,而不是一个一个单独发
    #tcp_nopush on;
	#让nginx不要缓存数据,而是一段一段发送,如果数据的传输有实时性的要求的话可以配置它,发送完一小段数据就立刻能得到返回值,但是不要滥用
    tcp_nodelay on;
	#给客户端分配连接超时时间,服务器会在这个时间过后关闭连接。一般设置时间较短,可以让nginx工作持续性更好
    keepalive_timeout 65;
	#混淆数据,影响三列冲突率,值越大消耗内存越多,散列key冲突率会降低,检索速度更快;值越小key,占用内存较少,冲突率越高,检索速度变慢
    types_hash_max_size 2048;
	#虽然不会让nginx执行速度更快,但是可以在错误页面关闭nginx版本提示,对于网站安全性的提升有好处
    # server_tokens off;
    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;
    #指定在当前文件中包含另一个文件的指令
    include       mime.types;
    #指定默认处理的文件类型可以是二进制
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" &#
  • 8
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Nginx for Windows v1 5 9 Nginx是一款轻量级的Web服务器 反向代理服务器及电子邮件IMAP POP3)代理服务器 并在一个BSD like 协议下发行 Nginx由俄罗斯的程序设计师Igor Sysoev所开发 可供大型的门户网站及搜索引擎使用 Nginx是一个很强大的高性能Web和反向代理服务器 它具有很多非常优越的特性 Nginx可以在大多数 Unix like OS 上编译运行 在Linux和unix上分别采用epoll和kqueue网络模型 能够支持高达 50 000 个并发连接数的响应(实际上可能更大) Nginx支持与客户端建立SSL安全连接 因此可以作为SSL安全网关使用 NginxWindows移植版 在Windows平台上支持select和iocp两种网络IO模型 在Windows平台上 Nginx的表现可能没有在其它平台上那么优秀 从目前的版本看 Nginx主要有以下几点可能需要改进的地方: 1 Nginx采用多进程并行处理的运行方式 不支持多线程(似乎各平台下都不支持多线程) 2 在Windows下 只支持select和iocp两种网络IO模型 其中iocp模型虽然可以支持高并发连接 但目前版本的iocp只支持Web服务器(有的版本使用iocp作WEB服务器都跑不通) 不支持反向代理服务器 更不支持SSL连接;而select模型不能支持高并发连接 如果要实现高并发 必须使用非常多的进程 3 由于Windows vista之后版本的共享内存在不同进程中的地址不同 因此 在启用多进程时 不能使用共享内存来做SSL的session缓存 也就是说 要实现SSL 只能使用单进程 从而限制了并发连接数 (造成这种结果的原因 可能是作者对NginxWindows平台下的应用不太重视 在共享内存中使用了绝对地址指针 如果改成相对地址偏移则可避免) 笔者试图突破上面的限制 在 Nginx v1 5 9 的基础上作了三点改进: 1 完善iocp模型 使其能够支持代理服务器 2 增加wsa网络IO模型(Windows socket异步IO模型) 该模型支持WEB服务器 反向代理服务器和SSL安全连接 与Linux下的epoll具有同等的功能和效率 3 增加Windows和Linux平台下的多线程支持(Unix下尚未实现) 多线程可支持select epoll wsa和iocp网络IO模型 并支持SSL连接 通过上述改进 NginxWindows平台下的性能得到大幅提高 其并发连接数一般情况下可达到10万以上 最多可达到40万个 如何使用wsa网络IO模型 与使用iocp模型类似 在配置文件中 增加配置项: use wsa; 如何使用多线程 在配置文件中 增加配置项: worker threads 50; 线程数最大128 笔者邮箱: xiong rh@sina com">Nginx for Windows v1 5 9 Nginx是一款轻量级的Web服务器 反向代理服务器及电子邮件IMAP POP3)代理服务器 并在一个BSD like 协议下发行 Nginx由俄罗斯的程序设计师Igor Sysoev所开发 可供大型的门户网站及搜索引擎使用 Nginx [更多]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值