一分钟学会:搭建Nginx负载均衡

云平台

  Nginx的简介就不多说了,直接说使用即可,我们用nginx来都是当做服务器来接受客户端的请求,内部转发到应用。这里介绍一下怎么用nginx来搭建负载均衡。

  搭建负载均衡

  有时候我们有几台服务器,用来缓解服务端的压力,那么此时可以用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; sfile 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; # } #}}

标签: 云平台