Nginx的简介就不多说了,直接说使用即可,我们用nginx来都是当做服务器来接受客户端的请求,内部转发到应用。这里介绍一下怎么用nginx来搭建负载均衡。
nginx搭建
http://nginx.org/en/download.html 选择第一个window即可,下载完后双击nginx.exe启动,页面输入localhost会返回如下页面就表示搭建成功啦。
搭建负载均衡
有时候我们有几台服务器,用来缓解服务端的压力,那么此时可以用nginx搭建负载均衡,我这里就直接用端口区分即可,如下,在nginx.conf配置文件的http中加入内容:
server {listen 8080;server_name localhost;location / {root html;index index8080.html index.htm;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}server {listen 8081;server_name localhost;location / {root html;index index8081.html index.htm;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
当然这里要在html的目录下新建两个html: index8080.html、index8081.html.
然后,在http中再加入如下内容,设置负载均衡,负载均衡策略默认为轮询:
upstream first {server 127.0.0.1:8080;server 127.0.0.1:8081;}
最后,修改80请求的策略到负载均衡first:
server {listen 80;server_name localhost;location / {proxy_pass http://first;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
重新启动nginx,访问localhost,会发现轮询访问了8080和80801端口,到此负载均衡搭建完毕。
nginx的默认配置文件
这个跟本篇博文无关
#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;# }#}}
