Linux下安装Nginx服务器并配置请求转发及负载均衡

发布时间:2018-01-10 17:00:53编辑:丝画阁阅读(640)

Linux下安装Nginx服务器并配置请求转发及负载均衡

安装

本例中我使用的版本为:

nginx-1.11.5

pcre-8.39

zlib-1.2.8

openssl-1.0.2j

1. 下载所需依赖包

(1) gzip模块需要zlib库:官网地址(http://www.zlib.net/zlib-1.2.11.tar.gz)

(2) rewrite模块需要pcre库:官网地址(https://ftp.pcre.org/pub/pcre/)

(3) ssl功能需要openssl库:官网地址(https://www.openssl.org/source/openssl-1.0.2j.tar.gz)

2. 下载nginx:官网地址(http://nginx.org/en/download.html)

3. 安装

依赖包安装顺序为:openssl,zlib,pcre,最后安装nginx

安装步骤:

将下载的四个tar.gz压缩包统一放到 /usr/local/src 目录下

分别解压压缩包:tar zxvf xxx-xxx.tar.gz

如果不需要openssl、zlib、pcre可以跳过(1)(2)(3)直接到第(4)步安装Nginx。

(1)安装openssl

进入openssl解压出的文件夹

> ./config --prefix=/usr/local/openssl

> make

> make install

(2)安装zlib

进入zlib解压出的文件夹

> ./configure --prefix=/usr/local/zlib

> make

> make install

(3)安装pcre

进入pcre解压出的文件夹

> ./configure --prefix=/usr/local/pcre

> make

> make install

(4)安装nginx

进入nginx解压出的文件夹

> ./configure --with-pcre=../pcre-xxx --with-http_ssl_module --with-zlib=../zlib-xxx --with-openssl=../openssl-xxx --prefix=/usr/local/nginx

> make

> make install

至此,nginx安装全部完成

检测nginx是否安装成功:

> /usr/local/nginx/sbin/nginx -t

如果出现成功提示说明安装成功。

启动nginx:

> /usr/local/nginx/sbin/nginx

查看占用端口:

> netstat -ntlp

设置自启动:

> vim /etc/rc.local

添加nginx启动命令:/usr/local/nginx/sbin/nginx

配置请求转发

方式1:由nginx转发请求到tomcat

当用户访问http://localhost:80,nginx将这个请求什么也不做,只负责转发到tomcat的访问地址http://localhost:8080。在nginx.conf配置文件中的http模块下添加如下配置。

Linux下安装Nginx服务器并配置请求转发及负载均衡

方式2:动静分离(指向一个目录)

静态资源:图片、css、js、html(静态资源处理时并发非常高)

Linux下安装Nginx服务器并配置请求转发及负载均衡

方式3:图片服务器(指向一个目录)

Linux下安装Nginx服务器并配置请求转发及负载均衡

配置负载均衡

常用配置

Linux下安装Nginx服务器并配置请求转发及负载均衡

轮询

默认配置,tomcats有n个,请求就被平均分配到这n个服务器上。请求次数%n,平均分配到每个服务器。配置一个upstream,声明一个名称test,配置多个ip地址转向,默认就是轮询,或者配置上weight,并且值相同。

Linux下安装Nginx服务器并配置请求转发及负载均衡

默认

Linux下安装Nginx服务器并配置请求转发及负载均衡

weight相同

权重

轮询方式存在问题:服务器有性能比较好的,有性能比较差的。新的服务器的配置比旧的服务器强悍很多。CPU核也多,内存也大,硬盘容量也大,速度还快。如果还使用轮询的方式,就会造成新服务器资源的浪费,旧的服务器资源压力大。显然资源分配不合理,这时就需要使用权重的方式,让高配置的服务器分得多的访问,低配的分得少。

Linux下安装Nginx服务器并配置请求转发及负载均衡

weight值越大分配的访问越多

nginx.conf配置说明

#运行用户

user root;

#启动进程,通常设置成和cpu的数量相等

worker_processes 4;

#工作模式及连接数上限

events {

#epoll是多路复用IO(I/O Multiplexing)中的一种方式(仅用于linux2.6以上内核,可以大大提高nginx的性能)

use epoll;

#单个后台worker_process进程的最大并发连接数

worker_connections 1024;

}

#http配置

http {

#请求数据最大值

client_max_body_size 10M;

#配置上文中请求转发和负载均衡的server模块和upstream模块

}

关键字