目录
一、简介
二、应用场景
三、nginx安装
四、Nginx常用命令
五、默认配置文件说明
六、反向代理配置实例
七、负载均衡配置实例
Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,目前应用于各种网站应用。Nginx转为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受起高负载的考验,有报告表明能支持高达50000个并发数。
1、反向代理
何为反向代理?说起反向代理,那必然有正向代理,通过对两者的描述,便能知道正向代理和反向代理有什么区别。
正向代理:客户对于访问的网络资源的地址是清楚的,代理服务器通过对请求的转发,从而请求到资源服务器。
反向代理:通过代理服务器隐藏资源服务器的地址,用户访问代理服务器,代理服务器将请求转发到实际的资源服务器上。对于用户来说是无感知的。
为什么要使用反向代理:
(1)隐藏真实资源服务器地址,防止被恶意攻击。
(2)为后续的负载均衡和动静分离提供实现。
2、负载均衡
最初的服务大都是单体应用,由一台服务器提供服务。但随着业务量的提升,访问量和数据量的飞速增长,单机应用不能负载业务的访问量,这时,集群便出现了。我们通过增加服务器的数量,将请求从原来的一台服务器分发到多台服务器,将负载分担到不同的服务器,这就是我们所说的负载均衡。
3、动静分离
在理解负载均衡后,动静分离便更加容易理解。通过将静态资源的访问请求和需要业务计算的请求分离开,一方面可加快静态资源的的访问速度,另一方面可以减轻服务器的访问压力。
1、安装包下载:Nginx官网
2、安装pcre依赖:
(1)下载安装包:wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
(2)解压安装包:tar -xvf prce-8.37.tar.gz
(3)进入安装包,./configure完成后,执行make,最后执行make install
3、安装openssl、zlib、gcc依赖:yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
4、安装nginx。
(1)解压:tar -xvf ***
(2)./configure
(3)make && make install
5、启动nginx
进入/usr/local/nginx/sbin/nginx 启动服务。
1、查看nginx版本号
./nginx -v
2、启动nginx
./nginx
3、停止nginx
./nginx -s stop
4、重启nginx
./nginx -s reload
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;
}
location = /50x.html {
root html;
}
}
}
默认配置文件有三部分:
1、全局块:配置服务器整体运行的配置指令
worker_processes 1;处理并发数的配置
2、events块:影响Nginx服务器与用户的网络连接
worker_connections 1024;支持最大连接数为 1024
3、http块:
配置最为频繁的部分,代理、缓存和日志定义等绝大数功能和第三方模块的配置都在这块。
1、实现效果
使用nginx反向代理,根据访问的路径跳转到不同端口的服务中。
访问localhost:8800/demo001,跳转到端口8090的服务,
访问localhost:8800/demo002,跳转到端口8091的服务。
2、具体配置
1)启动端口为8090,、8091两个服务。
2)在nginx的配置文件server块中配置如下:
server {
listen 8800;
server_name localhost;
location ~ /demo001/ {
proxy_pass http://localhost:8090;
}
location ~ /demo002/ {
proxy_pass http://localhost:8091;
}
}
3)重启nginx,测试。
1、实现效果
访问localhost/hello,根据负载请求策略将请求分摊到端口为8090和8091的服务中。
2、具体配置
1)启动端口为8090和8091的服务。
2)在http块中,配置如下:
upstream myserver {
server localhost:8090;
server localhost:8091;
}
3)在配置server块,配置如下:
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://myserver;
proxy_connect_timeout 10;
}
}
4)重启nginx,测试。
3、负载均衡策略:
1)轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果服务down掉,能自动剔除。
2)weight(权重):weight代表权重默认为1,权重越高的服务器被分配的请求越多。
3)ip_hash:每个请求按访问 ip 的hash结果分配,这样每个用户固定访问一个后端服务器。
4)fair(第三方):按后端服务器的响应时间来分配请求,响应时间越短的有限分配。