nginx(发音同engine x)是一款由俄罗斯程序员Igor Sysoev所开发轻量级的网页服务器、反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。起初是供俄国大型的门户网站及搜索引擎Rambler(俄语:Рамблер)使用。此软件BSD-like协议下发行,可以在UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操作系统中运行。
nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查。
Nginx 1.7.7 发布了,下载地址:
改进记录包括:
*) Change: now nginx takes into account the "Vary" header line in a
backend response while caching.
*) Feature: the "proxy_force_ranges", "fastcgi_force_ranges",
"scgi_force_ranges", and "uwsgi_force_ranges" directives.
*) Feature: the "proxy_limit_rate", "fastcgi_limit_rate",
"scgi_limit_rate", and "uwsgi_limit_rate" directives.
*) Feature: the "Vary" parameter of the "proxy_ignore_headers",
"fastcgi_ignore_headers", "scgi_ignore_headers", and
"uwsgi_ignore_headers" directives.
*) Bugfix: the last part of a response received from a backend with
unbufferred proxy might not be sent to a client if "gzip" or "gunzip"
directives were used.
*) Bugfix: in the "proxy_cache_revalidate" directive.
Thanks to Piotr Sikora.
*) Bugfix: in error handling.
Thanks to Yichun Zhang and Daniil Bondarev.
*) Bugfix: in the "proxy_next_upstream_tries" and
"proxy_next_upstream_timeout" directives.
Thanks to Feng Gu.
*) Bugfix: nginx/Windows could not be built with MinGW-w64 gcc.
Thanks to Kouhei Sutou.
web服务器Nginx发布1.6.2。2014-09-16。上个版本2014-08-05的1.6.1 遗留稳定版1.4.7/1.2.9/1.0.15.开发版1.7.5 修正了一个SSL相关的安全漏洞(CVE-2014-3616),以及两个DNS可能导致请求挂起Bug(1.5.8引入)。
nginx开发团队还同步发布了nginx 1.7.0主线版本,新特性如下:
后端SSL证书验证
当使用SSL后端时,支持SNI(服务器名称标识符)
据W3Techs统计数据显示,全球Alexa排名前100万的网站中的23.3%都在使用nginx,在排名前10万的网站中,这一数据为30.7%,而在前1000名的网站中,nginx的使用量超过了Apache,位居第1位。
nginx 的 upstream目前支持 4 种方式的分配
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4)、url_hash(第三方)
按访问的url的hash结果分配,使每个url定向到同一个后端服务器,后端为缓存服务器比较有效。
在http节点里添加:
#定义负载均衡设备的 Ip及设备状态
upstream myServer {
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
在需要使用负载的Server节点下添加
proxy_pass http://myServer;
upstream 每个设备的状态:
down 表示单前的server暂时不参与负载
weight 默认为1.weight越大,负载的权重就越大。
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout:max_fails 次失败后,暂停的时间。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
Nginx还支持多组的负载均衡,可以配置多个upstream 来服务于不同的Server.
配置负载均衡比较简单,但是最关键的一个问题是怎么实现多台服务器之间session的共享
windows和Linux下配置Nginx负载的写法一样,故不分开介绍.
绿色文件,无须安装,直接即可启动。
据我所知,3种启动途径,其实都类似:
一、双击nginx.exe图标,可见黑窗口一闪而过,启动完毕。
二、命令行到nginx目录,输入nginx启动。(注,此方式命令行窗口无任何提示,且被锁定)
三、命令行到nginx目录,输入start nginx启动,此方式不锁定
启动后,默认情况下(无修改配置),可见到有两个nginx的进程,一个是master process,一个是worker processes。
默认nginx部署了些静态内容,我们可通过它测试nginx是否在工作。
默认的配置文件(NGINX_HOME/conf/nginx.conf)如下:
#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;
#}
}
# 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 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
通过观察配置文件的非注释项(参考Nginx配置文件nginx.conf中文详解),大概可知:
1、启动了1个worker processes
2、worker_connections,最大并发数为1024
3、include mime.types,引入mime.types文件所声明的文件扩展名与文件类型映射
4、application/octet-stream,默认使用application/octet-stream
5、sendfile,开启高效文件传输模式
6、监听本机“localhost”的80端口
7、映射目录为“当前目录的html目录”
8、出现500、502、503、504错误,则映射到50x.html
浏览地址http://localhost,即可访问其默认页面,即映射到NGINX_HOME/html/index.html
其他静态内容,如html、图片,可自行添加测试。
日志默认位于NGINX_HOME/logs/,可见:
1、access.log,访问日志
2、error.log,异常日志
3、nginx.pid,进程(仅在启动nginx后才有此日志)
开发者其他应用
简单搜索43.8M30201人在玩简单搜索是一款手机上的搜索引擎,在简单搜索中给用户可以智能高效的搜到自己想搜的内容哦,其中简单搜索在功能体验上还是很不错的,有需要上网的用户快来西西简单搜索专区下载
下载腾讯体育app最新版224.1M42099人在玩腾讯体育app最新版是腾讯体育平台推出的一款便捷的手机体育直播app。通过这款腾讯体育app,你可以观看赛事直播,也能第一时间了解最新体育新闻动态。
下载看点快报app40.3M1048人在玩天天快报app是一款生活娱乐应用,天天快报app每日为用户推送有趣的娱乐搞笑段子,同时你可以对文章及图片进行评论,有不少内涵的神吐糟回复,还能在在图片中加入贴图与文字
下载猎豹浏览器手机版23.0M26398人在玩猎豹浏览器手机版以极速和炫酷为主要特色,重点突出手机观看视频功能,首次在手机浏览器上实现支持快播与百度影音。猎豹浏览器手机版更省流量、更安全、更智能
下载百度安卓版133.7M11270人在玩手机百度是一款有6亿用户在使用的手机搜索客户端,依托百度网页、百度图片、百度新闻、百度知道、百度百科、百度地图、百度音乐、百度视频等专业垂直搜索频道,方便用户随时随地使用百度搜索服务。
下载2345浏览器手机版54.6M582人在玩2345浏览器具有智能广告拦截、网页多标签浏览、超级拖拽、鼠标手势、上网痕迹清除、老板键等多项网页浏览实用功能。功能特性收藏夹随身携带网站网址随身携带不丢失,注册登录2345帐号。
下载凤凰新闻80.3M8934人在玩凤凰新闻客户端是一款优秀的新闻阅读客户端,第一时间奉献最新最有价值的新闻!依托凤凰卫视、凤凰网独家新闻资讯优势,每天24小时精心呈现全方位新闻讯息。
下载腾讯微云42.3M561人在玩腾讯微云下载,微云可以让PC和手机文件可进行无线传输并实现同步,让手机中的照片自动传送到PC,并可向朋友们共享,功能和苹果的iCloud较为类似。
下载chrome谷歌浏览器手机版222.5M38380人在玩谷歌浏览器手机版下载安装到手机桌面是通用于android4.0以上平板电脑和手机设备上的chrome浏览器,GoogleChrome浏览器不仅在桌面设备上表现卓越,在Android手机和平板电脑上也可让您
下载百度贴吧安卓版2022最新版58.1M7231人在玩西西最喜欢用百度贴吧安卓版下载安装最新版看小说,热门小说更新及时,而且是文字版,有手机看更方便,可以随时看。百度贴吧客户端抢楼更快捷,随心所欲发图片,还有更多贴吧豆奖励哦!更快升级速度!
下载