Ngnix介绍

Nginx (engine x) 是一个高性能的和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

Nginx是一款轻量级]的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Ngnix安装

下载

官方网站:https://nginx.org/en/download.html

Linux下安装

Nginx依赖包

模块依赖性Nginx需要依赖下面3个包

ssl功能需要 openssl 库 ( 点击下载 )gzip模块需要 zlib 库 ( 点击下载 )rewrite模块需要 pcre 库 ( 点击下载 )

依赖包安装顺序依次为:openssl、zlib、pcre, 最后安装Nginx包。

也可在这里直接下载

安装教程(源码安装)

step 0:前置安装

yum -y install gcc

yum -y install gcc-c++

step 1:下载所需包

openssl-fips-2.0.2.tar.gz

zlib-1.2.7.tar.gz

pcre-8.21.tar.gz

nginx-1.12.2.tar.gz

step 2:安装OpenSSL

[root@localhost wcw]# tar -zxvf openssl-fips-2.0.2.tar.gz

[root@localhost wcw]# cd openssl-fips-2.0.2

[root@localhost openssl-fips-2.0.2]# ./config

[root@localhost openssl-fips-2.0.2]# make

[root@localhost openssl-fips-2.0.2]# make install

step 3:安装zlib

[root@localhost wcw]# tar -zxvf zlib-1.2.7.tar.gz

[root@localhost wcw]# cd zlib-1.2.7

[root@localhost zlib-1.2.7]# ./configure

[root@localhost zlib-1.2.7]# make

[root@localhost zlib-1.2.7]# make install

step 4:安装pcre

[root@localhost wcw]# tar -zxvf pcre-8.21.tar.gz

[root@localhost wcw]# cd pcre-8.21

[root@localhost pcre-8.21]# ./configure

[root@localhost pcre-8.21]# make

[root@localhost pcre-8.21]# make install

step 5:安装Nginx

[root@localhost wcw]# tar -zxvf nginx-1.12.2.tar.gz

[root@localhost wcw]# cd nginx-1.12.2

[root@localhost nginx-1.12.2]# ./configure --prefix=/usr/install/nginx --with-pcre=../pcre-8.21 --with-zlib=../zlib-1.2.7 --with-openssl=../openssl-fips-2.0.2

[root@localhost nginx-1.12.2]# make

[root@localhost nginx-1.12.2]# make install

请注意:"–with-xxx="的值是解压目录,而不是安装目录!

Nginx Linux基本操作指令

启动服务:nginx

退出服务:nginx -s quit

强制关闭服务:nginx -s stop

重载服务:nginx -s reload  (重载服务配置文件,类似于重启,但服务不会中止)

验证配置文件:nginx -t

使用配置文件:nginx -c "配置文件路径"

使用帮助:nginx -h

端口设置

firewall-cmd --zone=public --add-port=80/tcp --permanent;

重新加载防火墙

firewall-cmd --reload;

Nginx的配置文件

在nginx安装目录(一般是/usr/local/redis/sbin)\conf\nginx.conf

1、全局配置

worker_processes 4; #配置工作进程数

2、events块

events {

worker_connections 1024; #连接数

}

3、http块

http {

include mime.types; #支持的类型,访问静态内容,如果不支持就进行下载

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

#gzip on;

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;

}

}

}

Ngnix配置反向代理

1、安装Tomcat

2、复制tomcat1和tomcat2

3、修改tomcat1和tomcat2中的端口(包括shutdown端口)

4、在两个tomcat中添加应用

5、启动两个tomcat服务并测试

192.168.43.130:8081/项目名称/

192.168.43.130:8082/项目名称/

6、在nginx中配置反向代理

upstream tomcat{

server 192.168.174.130:8081;

server 192.168.174.130:8082;

}

server {

listen 80;

server_name abc1;

charset utf-8;

#access_log logs/host.access.log main;

location / {

proxy_pass http://tomcat/abc/;

index index.html;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

error_page 404 /40x.html;

location = /40x.html {

root html;

}

}

7、测试(只访问nginx)

192.168.174.130:80

负载均衡及常用算法

nginx常用负载均衡算法有6种:

nginx本身支持4种:轮询(round robin), 加权轮询(weight round robin), ip_hash, 最小连接(least_conn)

第三方模块,支持2种:最快响应时间(fair), url_hash

1. 轮询(round robin)

轮询,依次将请求分配到各个后台服务器,默认方式,挂掉的服务可自动剔除。

2. 加权轮询(weight round robin)

根据权重将请求分配到不同的机器中

3. ip_hash

根据请求的ip的hash值分配到对应的后台服务器,可以保证同一ip请求总是到同一个后台服务器,可解决session问题。

4. 最小连接(least_conn)

优先将请求分配给连接最少的服务器,这样可以避免将请求发给压力较大的服务器

5. url_hash

根据请求的url的hash值分配服务器,当后台服务器为缓存时,效率较高

6. 最快响应时间(fair)

根据服务器响应时间来分发,响应时间短,分发越多。

Nginx负载均衡算法

首先呢我在这里给大家先介绍一下什么是负载均衡,他的常见算法有哪些。

Nginx他是一个扩展性非常强大的WEB服务器软件,他能够支持除自己本身以外的第三方调度算法,如:fair、url_hash等等。

负载均衡(参照网络) 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

常见的调度算法 Nginx本身支持的算法:轮询(RR)、加权轮询(WRR)、ip_hash、least_conn

轮询(Round-Robin,RR):默认情况下Nginx服务器实现负载均衡的算法就是轮询,轮询策略按照顺序选择组内服务器处理请求。如果一个服务器在处理请求的过程中出现错误,请求会被顺次交给组内的下一个服务器进行处理,以此类推,直到返回正常的响应为止。但如果所有的组内服务器都出错,则返回最后一个服务器的处理结果。 例子: upstream rr { server 192.168.1.10; server 192.168.1.20; server 192.168.1.30; }

加权轮询(Weighted Round-Robin,WRR):为组内服务器设置权重,权重值高的服务器被优先用于处理请求。此时组内服务器的选择策略为加权轮询。组内所有服务器的权重默认设置为1,即采用轮询处理请求。 例子: upstream wrr { server 192.168.1.10 weight=3; server 192.168.1.20 weight=2; server 192.168.1.30 weight=1; }

ip_hash:ip_hash用于实现会话保持功能,将某个客户端的多次请求定向到组内同一台服务器上,保证客户端与服务器之间建立稳定的会话。只有当服务器处于无效(down)的状态时,客户端请求才会被下一个服务器接收和处理。注意:使用ip_hash后不能使用weight,ip_hash和主要根据客户端IP地址分配服务器,因此在整个系统中,Nginx服务器应该是处于最前端的服务器,这样才可以获取到客户端IP地址,否则它得到的IP地址将是位于它前面的服务器地址,从而就会产生问题。 例子: upstream iphash { ip_hash; server 192.168.1.10; server 192.168.1.20; server 192.168.1.30; }

least_conn:least_conn用于为网络连接分配服务器组内的服务器,在功能上实现了最小连接数负载均衡算法,在选择组内的服务器时,考虑各服务器权重的同时,每次选择的都是当前网络连接最少的那台服务器,如果这样的服务器有多台,就采用加权轮询选择权重值大的服务器。 例子: upstream leastconn { least_conn; server 192.168.1.10 weight=3; server 192.168.1.20 weight=2; server 192.168.1.30 weight=1; }

Ngnix配置动静分离

动辞分离 静态资源交始nginx管理 动态资源交给tomcar管理 一份静态资源可以共给多个动态资源使用

1、将静态资源拷贝到linux下

/usr/static

2、配置nginx

location ~ .(jpg|png|css|js|html){

root /usr/static;

}

3、访问静态资源

http://192.168.174.130/css/a.css

4、拷贝动态资源到tomcat下

<%@ page language="java" contentType="text/html; charset=utf-8"

pageEncoding="utf-8"%>

Insert title here

<%=new java.util.Date() %>

hello 动静分离

5、访问动态资源

http://192.168.174.130/abc/a.jsp

相关文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。