Nginx Linux环境下安装及负载均衡配置

原文链接: https://blog.csdn.net/wangpf2011/article/details/84949762

在正式介绍Nginx之前先简单说明下什么是正向代理和反向代理,Nginx实现负载均衡功能正是基于其反向代理功能实现的。

正向代理类似一个跳板机,代理访问外部资源。正向代理 是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

反向代理的代理对象是服务端,客户端不需要做任何配置。反向代理实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的其它服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

一、Nginx安装
1)下载Nginx及相关组件

[root@localhost mnt]# wget http://nginx.org/download/nginx-1.13.6.tar.gz

[root@localhost mnt]# wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz

[root@localhost mnt]# wget http://zlib.net/zlib-1.2.11.tar.gz

[root@localhost mnt]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz

安装c++编译环境,如已安装可略过

[root@localhost src]# yum install gcc-c++

2)安装Nginx及相关组件

openssl安装

[root@localhost mnt]# tar zxvf openssl-fips-2.0.10.tar.gz

[root@localhost mnt]# cd openssl-fips-2.0.10

[root@localhost openssl-fips-2.0.10]# ./config && make && make install

pcre安装

[root@localhost mnt]# tar zxvf pcre-8.40.tar.gz

[root@localhost mnt]# cd pcre-8.40

[root@localhost pcre-8.40]# ./configure && make && make install

zlib安装

[root@localhost mnt]# tar zxvf zlib-1.2.11.tar.gz

[root@localhost mnt]# cd zlib-1.2.11

[root@localhost zlib-1.2.11]# ./configure && make && make install

nginx安装

默认安装到/usr/local/nginx,也可以指定安装目录./configure --prefix=/mnt/nginx

[root@localhost mnt]# tar zxvf nginx-1.13.6.tar.gz

[root@localhost mnt]# cd nginx-1.13.6

[root@localhost nginx-1.13.6]# ./configure && make && make install

3)启动停止Nginx

[root@localhost mnt]# cd /usr/local/nginx/sbin

启动nginx,-c表示指定nginx.conf的文件。如果不指定,默认为NGINX_HOME/conf/nginx.conf

[root@localhost sbin]# ./nginx -c /usr/local/nginx/conf/nginx.conf

发送信号到nginx进程后,nginx进程会等待处理完毕当前请求,同时将不会接受新请求

[root@localhost sbin]# kill -QUIT 进程号

立即停止当前正在处理的请求

[root@localhost sbin]# kil -TERM 进程号

停止nginx

[root@localhost sbin]# ./nginx -s stop

退出nginx

[root@localhost sbin]# ./nginx -s quit

重新加载nginx.conf

[root@localhost sbin]# ./nginx -s reload

启动成功,在浏览器访问http://localhost,如果出现如下Nginx欢迎页面则表示Nginx安装成功。

二、Nginx负载均衡配置
Nginx核心配置文件为/usr/local/nginx/conf/nginx.conf,其默认配置如下,反向代理默认端口是80,服务器名称localhost,这也就是为什么上文提到的浏览器中直接访问http://localhost可以看到欢迎页面的原因。

  worker_processes 1;
   events {
     worker_connections 1024;
   }
  http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;
 
   server {
    listen 80;
    server_name localhost;
    location / {
      root html;
      index index.html index.htm;
    }
    error_page 500 502 503 504 /50x.html;
     location = /50x.html {
      root html;
    }
 }


Nginx反向代理配置说明:

1)listen 80;代表监听80端口

2)server_name xxx.xxx.com;代表外网访问的域名

3)location / {};代表一个过滤器,/匹配所有请求,还可以根据自己的情况定义不同的过滤,比如对静态文件js、css、image制定专属过滤

4)root html;代表站点根目录

5)index index.html;代表默认主页

负载均衡功能往往在接收到某个请求后分配到后端的多台服务器上,如果要借助Nginx实现负载均衡就需要upstream{}块来配合使用。配置示例如下:

http {
   ......此处省略
   upstream www.feixiang.com {
     ip_hash;
    server 139.129.196.11 weight=2;
     server 139.129.196.12 weight=1;
  }
 
   server {
     listen 80;
     server_name www.wf.com;
     location / {
     proxy_pass http://www.feixiang.com;
    }
  }
}

1)upstream xxx.xxx.com{};upstream模块是命名一个后端服务器组,组名必须为后端服务器站点域名,内部可以写多台服务器ip和port,还可以设置跳转规则及权重等等。

ip_hash;代表使用ip地址方式分配跳转后端服务器,同一ip请求每次都会访问同一台后端服务器。(调度算法:轮询、ip_hash、url_hash、fair、权重)

server;代表后端服务器地址,服务器状态包括:down(表示单前的server暂时不参与负载)、weight(默认为1.weight越大,负载的权重就越大)、max_fails(允许请求失败的次数默认为1.当超过最大次数时返回失败)、fail_timeout(max_fails 次失败后,暂停的时间)、backup(其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻)。

2)server{};server模块依然是接收外部请求的部分。

server_name;代表外网访问域名。

location / {};同样代表过滤器,用于制定不同请求的不同操作。

proxy_pass;代表后端服务器组名,此组名必须为后端服务器站点域名。

server_name和upstream{}的组名可以不一致,server_name是外网访问接收请求的域名,upstream{}的组名是跳转后端服务器时站点访问的域名。

另外还需要在本机配置一个域名映射,即C:WindowsSystem32driversetc中条件一行139.129.196.11 www.wf.com。自此一个简单的基于Nginx的负载均衡已经配置完毕,直接在浏览器中访问http://www.wf.com,可以看到实际显示的为域名www.feixiang.com的内容。事实上Nginx已经把用户请求采用ip_hash方式分发到www.feixiang.com的多个服务器上。

猜你喜欢

转载自blog.csdn.net/IT_Luobin/article/details/102644469