Nginx服务器fair负载访问安装配置

合集下载

Windows下Nginx的安装与配置

Windows下Nginx的安装与配置

Windows下Nginx的安装与配置Windows下Nginx的安装与配置Nginx ("engine x") 是一款高性能的,轻量级的HTTP Web服务器和反向代理服务器及电子邮件IMAP/POP3/SMTP代理服务器。

Nginx是由俄罗斯的程序设计师Igor Sysoev 所开发,为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多时间了,Igor 将源代码以类BSD许可证的形式发布。

自Nginx 发布四年来,Nginx 已经因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。

Nginx 超越Apache的高性能和稳定性,使得国内使用Nginx 作为Web 服务器的网站也越来越多。

目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;新近发现Nginx 技术在国内日趋火热,越来越多的网站开始应用部署Nginx。

一、首先去官网下载nginx1.0.11的Windows版本,官网下载:/download/nginx-1.0.11.zip下载到软件包后,解压nginx-nginx1.0.11.zip 包到你喜欢的根目录,并将目录名改为nginx。

然后,执行下列操作:cd nginxstart nginx这样,nginx 服务就启动了。

打开任务管理器,查看nginx.exe 进程,有二个进程会显示,占用系统资源,那是相当的少。

然后再打开浏览器,输入http://127.0.0.1/就可以看到nginx的欢迎页面了,非常友好nginx -s stop // 停止nginxnginx -s reload // 重新加载配置文件nginx -s quit // 退出nginx二、接下来就是配置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 ~* software/(.*).*\.(jpg|rar){expires 21d;root d:/temp/;access_log d:/temp/_nginx_s3gd-205.log;proxy_store on;proxy_store_access user:rw group:rw all:rw;proxy_temp_path d:/temp/;proxy_redirect off;proxy_set_header Host 112.25.10.140;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m;client_body_buffer_size 1280k;proxy_connect_timeout 900;proxy_send_timeout 900;proxy_read_timeout 900;proxy_buffer_size 40k;proxy_buffers 40 320k;proxy_busy_buffers_size 640k;proxy_temp_file_write_size 640k;if ( !-e $request_filename){proxy_pass http://112.25.10.140:80;}}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;# 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; # }#}}Windows下Nginx+PHP5的安装与配置方法Nginx 是一个轻量级的高性能Http WebServer,以事件驱动方式编写,因此相比Apache 而言,Nginx 更加稳定、性能更好,而且配置简单,资源占用较低。

nginx配置详解

nginx配置详解

nginx配置详解⾼性能的http服务代理服务器和反向代理服务器,能⽀持50000个并发连接数正向代理明确买家是谁,让代理⼈去联系⽬标例如局域⽹内的客户端想要访问局域⽹外的internet,则需要代理服务器来访问,这种代理就是正向代理反向代理客户端不需要任何配置就可以访问,只需要将请求发送到代理服务器,有代理服务器去选择⽬标服务器在返回给客户端负载均衡将请求分发到不同服务器、负载分发到不同服务器,就是负载均衡访问⼀个ip 默认是80 (nginx) tomcat 是8080动静分离为了加快⽹站的解析速度、将动态和静态页⾯有不同服务器来解析,降低原来单个服务器的压⼒安装进⼊压缩⽬录执⾏./configure执⾏make && make install (编译安装)安装完成后多⼀个local/nginx 在nginx有sbin 启动脚本./nginx访问: ->welcome to nginx查看开放的端⼝:firewall-cmd –list-all添加端⼝:Firewall-cmd –add-service=http -permanentSudo firewall-cmd –add-port=80/tcp –permanent重启防⽕墙:firewall-cmd -reloadNginx 相关命令:1 进⼊到nginx的⽬录 /usr/local/nginx/sbin2 查看nginx的版本号:./nginx -v3 启动nginx ./nginx4 关闭nginx ./nginx -s stop5 重加载 ./nginx -s reload (重新加载配置⽂件 nginx.conf)Nginx的配置⽂件组成第⼀块:全局块从配置⽂件开始到events块之间的内容、主要设置⼀些影响nginx服务器运⾏的配置指令,⽐如 worker_process 1; 值越⼤,可以⽀持的并发量也越多第⼆部分:events涉及的指令主要影响nginx服务器与⽤户的⽹络连接数⽐如 worker connections 1024 ⽀持的最⼤连接数第三部分:http块(配置最多的地⽅)http全局块server块举例:浏览器访问Nginx.conf 配置如下图:proxy_pass 反向代理的地址例如:要实现http://127.0.0.1:9091/edu 访问tomcatl1 (127.0.0.1:8080)http://127.0.0.1:8080/vod 访问tomcatl2 (127.0.0.1:8081)注意:开放端⼝ 9091 8081 8080 (firewall)在 /usr/src/tomcat-xx/apache-tomcat-xx/webapps/ 创建 edu⽬录然后放⼀个a.html⽂件这时访问就能看到这是nginx.conf ⾥要改的内容~ /edu/ #正则表达式,请求路径包含 edu时就会转发到 xxx:8080关于location的说明:负载均衡:访问http://192.168.17.129/edu/a.htmlUpstream myserver{Server 192.168.17.129:8080;Server 192.168.17.129:8081;}策略:轮询(默认)、权重、ip_hash、fair(第三⽅)轮询:服务器如果down掉,⾃动剔除权重:weight 权重越⾼,分配的客户端越多Upstream myserver{Server xxx weight=1;Server xxx weight=10;}Ip_hash:每个访客固定⼀个后端服务器、可以解决session问题Upstream myserver{Ip_hash;Server xxx;Server xxx;}Fair:按后端服务器响应时间来分配请求、响应时间断的优先分配Upstream myserverr{Server xxxx;Server xxxx;Fair;}动静分离:Nginx处理静态页⾯、tomcat处理动态页⾯:⼀:把静态⽂件独⽴成单独的域名放在独⽴的服务器上另⼀种就是动态和静态⽂件混合⼀起发布,通过nginx来分开,通过location指定不同的后缀名实现不同的转发请求、通过expires 参数设置可以使浏览器缓存过期时间,减少与服务器之间的请求和流量;设定⼀个过期时间,也就是⽆需去后端服务验证,直接通过浏览器确认是否过期即可,不会残⽣额外的流量/data/image/01.jpg/data/www/a.htmlAutoinde on; // 列出返回⽬录最终测试:http://192.168.17.129/image/01.jpghttp://192.168.17.129/www/a.html⾼可⽤集群需要两台服务器 192.168.17.129 192.168.17.131 (nginx)这两台都要安装nignx、keepalivedYum -y install keepalived安装好之后修改/etc/keepalived/keepalived.conf ⽂件分别启动nignx和keepalived./nginx systemctl start keepalived.service补充:关闭nginx服务1 kill `cat /usr/local/nginx/logs/nginx.pid` //⽂件中有个pid号2 nginx -s reload //重载Session共享:⽆论登录那⼀台ip,session是⼀致的1 内存数据库(memcache)1 修改服务器和数据库的关联关系。

php面试题七之nginx的负载均衡如何配置

php面试题七之nginx的负载均衡如何配置

php⾯试题七之nginx的负载均衡如何配置负载均衡nginx的负载均衡有4种模式:1)、轮询(默认)每个请求按时间顺序逐⼀分配到不同的后端服务器,如果后端服务器down掉,能⾃动剔除。

2)、weight指定轮询⼏率,weight和访问⽐率成正⽐,⽤于后端服务器性能不均的情况。

2)、ip_hash每个请求按访问ip的hash结果分配,这样每个访客固定访问⼀个后端服务器,可以解决session的问题。

3)、fair(第三⽅)按后端服务器的响应时间来分配请求,响应时间短的优先分配。

4)、url_hash(第三⽅)配置⽅法:打开f⽂件在http节点下添加upstream节点:1 2 3 4upstream webname {server 192.168.0.1:8080; server 192.168.0.2:8080; }其中webname是⾃⼰取的名字,最后会通过这个名字在url⾥访问的,像上⾯这个例⼦⼀样什么都不加就是默认的轮询,第⼀个请求过来访问第⼀个server,第⼆个请求来访问第⼆个server。

依次轮着来。

1 2 3 4upstream webname {server 192.168.0.1:8080 weight 2; server 192.168.0.2:8080 weight 1; }这个weight也很好理解,权重⼤的被访问的概率就⼤,上⾯这个例⼦的话,访问2次server1,访问⼀次server21 2 3 4 5upstream webname {ip_hash;server 192.168.0.1:8080; server 192.168.0.2:8080; }ip_hash的配置也很简单,直接加⼀⾏就可以了,这样只要是同⼀个ip过来的都会到同⼀台server上然后在server节点下进⾏配置:12 34 56location /name {proxy_pass http://webname/name/;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }proxy_pass⾥⾯⽤上⾯配的webname代替了原来的ip地址。

nginx负载均衡中RR和ip_hash策略分析

nginx负载均衡中RR和ip_hash策略分析

nginx负载均衡中RR和ip_hash策略分析一、nginx的upstream目前支持负载均衡方式的分配1、RR(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

例如:upstream tomcats {server 10.1.1.107:88 max_fails=3 fail_timeout=3s weight=9;server 10.1.1.132:80 max_fails=3 fail_timeout=3s weight=9;}2、ip_hash每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session 的问题。

例如:upstream tomcats {ip_hash;server 10.1.1.107:88;server 10.1.1.132:80;}3、fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。

4、url_hash(第三方)按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

下面,我们针对RR和ip_hash的负载均衡策略进行分析。

因为每一种负载均衡策略都是在upstream的框架中使用,upstream控制总的工作流程,负载均衡策略仅仅提供选择或释放server的函数,所以,我们在分析RR时结合upstream(ngx_http_upstream.c)。

ip_hash大部分内容与RR一致,只是重新实现RR中的ngx_http_upstream_get_peer函数。

二、RR策略RR机制分为三个部分:初始化upstream,获取一个可用的后台服务器和释放后台服务器。

以下分析以此配置为例:upstream backend {server A max_fails=3 fail_timeout=4s weight=9;server B max_fails=3 fail_timeout=4s weight=9;server C max_fails=3 fail_timeout=4s weight=9;server D backup;Server E backup;}2.1 初始化upstream对于例子中的upstream backend来说,首先初始化各个server, 除了设置IP和端口号外,还要设置如下置weight,current_weight,max_fails和fail_timeout。

nginx详细配置

nginx详细配置

nginx详细配置Nginx内容概览1、nginx简介(1)介绍 nginx的应⽤场景和具体可以做什么事情(2)介绍什么是反向代理(3)介绍什么是负载均衡(4)介绍什么是动静分离2、nginx安装(1)介绍 nginx在 linux系统中如何进⾏安装3、nginx常⽤的命令和配置⽂件(1)介绍 nginx启动、关闭、重新加载命令(2)介绍 nginx的配置⽂件4、nginx配置实例-反向代理5、nginx配置实例-负载均衡6、nginx配置实例-动静分离7、nginx原理与优化参数配置8、搭建 nginx⾼可⽤集群(1)搭建 nginx⾼可⽤集群(主从模式)(2)搭建 nginx⾼可⽤集群(双主模式)第 1 章 Nginx 简介1.1 Nginx 概述Nginx ("engine x") 是⼀个⾼性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能⼒强,事实上 nginx的并发能⼒确实在同类型的⽹页服务器中表现较好,中国⼤陆使⽤ nginx⽹站⽤户有:百度、京东、新浪、⽹易、腾讯、淘宝等1.2 Nginx 作为 web 服务器Nginx 可以作为静态页⾯的 web 服务器,同时还⽀持 CGI 协议的动态语⾔,⽐如 perl、php等。

但是不⽀持 java。

Java程序只能通过与tomcat配合完成。

Nginx专为性能优化⽽开发,性能是其最重要的考量,实现上⾮常注重效率,能经受⾼负载的考验,有报告表明能⽀持⾼达50,000个并发连接数。

1.3 正向代理Nginx 不仅可以做反向代理,实现负载均衡。

还能⽤作正向代理来进⾏上⽹等功能。

正向代理:如果把局域⽹外的 Internet 想象成⼀个巨⼤的资源库,则局域⽹中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

1.4 反向代理反向代理,其实客户端对代理是⽆感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择⽬标服务器获取数据后,在返回给客户端,此时反向代理服务器和⽬标服务器对外就是⼀个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP地址。

nginx负载均衡中RR和ip_hash策略分析

nginx负载均衡中RR和ip_hash策略分析

server server server max_fails=3 fail_timeout=4s weight=9; max_fails=3 fail_timeout=4s weight=9; max_fails=3 fail_timeout=4s weight=9;nginx 负载均衡中RR 和ip_hash 策略分析一、nginx 的upstream 目前支持负载均衡方式的分配1、RR (默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

例如:upstream tomcats {server 10.1.1.107:88 max_fails=3 fail_timeout=3s weight=9;server 10.1.1.132:80 max_fails=3 fail_timeout=3s weight=9;}2、ip_hash每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session 的问题。

例如:upstream tomcats {ip_hash;server 10.1.1.107:88;server 10.1.1.132:80;}3、fair (第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。

4、url_hash (第三方)按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

下面,我们针对RR 和ip_hash 的负载均衡策略进行分析。

因为每一种负载均衡策略都是在upstream 的框架中使用,upstream 控制总的工作流程,负载均衡策略仅仅提供选择或释放server 的函数,所以,我们在分析RR 时结合upstream(ngx_http_upstream.c)。

ip_hash 大部分内容与RR 一致,只是重新实现RR 中的ngx_http_upstream_get_peer 函数。

window下nginx配置

window下nginx配置

原来一直以为nginx只能在Linux下搭建,最近查了些资料才恍然大悟,Windows下其实也可以跑nginx。

当你的网站访问量越来越高的时候,一台服务器已经没有办法承受流量压力,后果可想而知,怎么办呢?那就增加几台服务器来做负载吧。

但当下的硬件设施又是贵得离谱,比如F5,所以这种情况下,免费的nginx成了我们不错的选择,nginx目前好多门户网站与大访问量的网站都在使用做为HTTP服务器,所以nginx是相当优秀的……实验环境:(2台服务器)第一台:系统:Win2003nginx:nginx/Windows-0.8.32IP:192.168.0.51环境:本地第二台:系统:Win2003IP:192.168.0.52环境:远程说明:本次测试,软件nginx放在本地(192.168.0.51),也就是说放在域名绑定的那台服务器,这台服务器的IIS不能使用80端口,因为等一下nginx软件要使用80这个端口。

(为了方便,我将本机的hosts文件添加了我要测试的域名192.168.0.51 )下载nginx的地址如下:nginx下载:/下载解压到C:\,把目录名改成nginx一切准备就绪,开始实验:No.1:在本地(192.168.0.51)这台服务器IIS创建一个网站,使用端口为808,如下图:IIS 网站绑定设置图No.2:在远程192.168.0.52的IIS创建一个网站,使用端口为80,如下图:No.3:好了,以上已经设置好两台服务器的IIS了,下面配置nginx软件来实现网站负载均衡,打开如下文件:C:\nginx\conf\nginx.conf1、找到内容server {在它的上面加入如下内容:upstream {server 192.168.0.51:808;server 192.168.0.52:80;}(这是负载切换使用的服务器网站IP)2、找到location / {root html;index index.html index.htm;}把内容更改如下:location / {proxy_pass ;proxy_redirect default;}3、找到server {listen 80;server_name localhost;把内容改成如下:server {listen 80;server_name 192.168.0.51;(这是监听访问域名绑定那台服务器80端口的请求)好,在这里就这么简单配置好了,下面看下以上3步配置的图:负载配置图No.4:都配置好了,下面启动nginx这软件进入命令提示符CMD,进入c:\nginx>,输入nginx命令,如下图:启动nginx这时候,系统进程有两个nginx.exe进程,如下图:系统nginx进程(停止nginx运行输入nginx -s stop 即可)No.5:经过以上的配置,现在我们看下负载效果:在本地(192.168.0.51)这服务器打开IE,输入:http://192.168.0.51第一次打开网站的结果:第一次访问网站图刷新一下网页,出现的结果:再次访问网站图OK,测试成功o(∩_∩)o经过这次测试,可见网站的负载平衡并不是难事。

Nginx安装

Nginx安装

Nginx 服务器的安装及配置文件详解如下:一、安装依赖的程序1. gzip module requires zlib library(/)2. rewrite module requires pcre library (/projects/pcre/files/)3. ssl support requires openssl library (/)根据实际情况安装时确定,我在安装的时候,只缺少了pcre这个库/projects/pcre/files/,其他没遇到,如果需要也可以下载,就到网上搜索二、安装首先上传到pcre zip 文件,解压后,到时候ngnix需要指定解压的路径,加载所需要的文件./configuremakemake install默认安装的路径是/usr/local/nginx更多的安装配置./configure --prefix=/home/nginx--with-openssl=/home/nginx/include (启用ssl)--with-pcre=/home/nginx/pcre-8.12 (启用正规表达式这里可能是源代码的路径)--with-http_stub_status_module (安装可以查看nginx状态的程序)--with-http_memcached_module (启用memcache缓存)--with-http_rewrite_module (启用支持url重写)三、启动及重启启动:nginx重启:kill -HUP `cat /usr/local/nginx/logs/nginx.pid`测试配置文件:nginx -t简单吧,安装,启动都比较方便。

四、配件文件http服务配置文件:复制代码#运行用户user nobody nobody;#启动进程worker_processes 5;#全局错误日志及PID文件error_log logs/error.log notice;pid logs/nginx.pid;#工作模式及连接数上限events {#工作模式有:select(标准模式),poll(标准模式),kqueue(高效模式,适用FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 and MacOS X),#epoll(高效模式,本例用的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ngx_http_upstream_fair_set_shm_size,
0,
0,
NULL },
ngx_null_command
};
可见该模块提供了以下两条指令:
指令名称:fair
功 能:启用“公平”功能。
语 法:fair
使用环境:upstream
指令名称:upstream_fair_shm_size
编译安装
[root@mail nginx-1.0.8]# ./configure --prefix=/usr/local/nginx-1.0.8-fair --add-module=/root/gnosek-nginx-upstream-fair-7171df8
[root@mail nginx-1.0.8]# make
08:37:56 (14.4 KB/s) - `gnosek-nginx-upstream-fair-7171df8.tar.gz' saved [10066/10066]
查看目录结构
[root@mail ~]# tar -zxvf gnosek-nginx-upstream-fair-7171df8.tar.gz
[root@mail gnosek-nginx-upstream-fair-7171df8]# tree
.
|-- README
|-- config
`-- ngx_http_upstream_fair_module.c
0 directories, 3 files
目录结构很简单,需要查看一下README文件。
[root@mail nginx-1.0.8]# make install
配置示例
upstream mongrel {
fair;
server127.0.0.1:5000;
server 127.0.0.1:5001;
server 127.0.0.1:5002;
}
指令
查看源代码:
static ngx_command_t ngx_http_upstream_fair_commands[] = {
下面我们来下载并且安装这个模块:
下载upstream-fair模块
[root@mail ~]# wget https:///gnosek/nginx-upstream-fair/tarball/master
--08:37:53-- https:///gnosek/nginx-upstream-fair/tarball/master
Resolving ... 207.97.227.252
Connecting to |207.97.227.252|:443...connected.
HTTP request sent, awaiting response... 200 OK
Length: 10066 (9.8K) [application/octet-stream]
Saving to: `gnosek-nginx-upstream-fair-7171df8.tar.gz'
100%[================================>] 10,066 14.4K/s in 0.7s
功 能:该指令设置用于存储有关繁忙后台服务器的信息的共享内存大小。默认值是8个内存页面,因此在大多数系统上是32k。
语 法:upstream_fair_shm_sizesize
使用环境:http
默 认 值:defaultupstream_fair_shm_size 32k
配置实例
http {
……
upstream_fair_shm_size 64k;
该模块的功能在于它将进入的请求转发到一个最近最少“忙”的后台服务器,而不是使用RR(轮询)方式,它是一个用于对后端代理服务器实现公平“工作”的一个模块,它增强了标准的RR方式负载均衡,它通过跟踪“忙”的后台服务器(例如Thin, Ebb, Mongrel)来均衡的载人不“忙”的后台服务器进程。
安装upstream-fair模块
{ ngx_string("fair"),
NGX_HTTP_UPS_CONF|NGX_CONF_ANY,
ngx_http_upstream_fair,
0,
0,
NULL },
{ ngx_string("upstream_fair_shm_size"),
NGX_HTTP_MAIN_CONF|NGel {
fair;
server 127.0.0.1:5000;
server 127.0.0.1:5001;
server 127.0.0.1:5002;
}
相关文档
最新文档