Nginx介绍以及linux下使用Nginx进行负载均衡的搭建

一、Nginx简介

Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

二、Nginx应用场景

1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

三、概念解释

3.1正向代理

1、所谓正向代理其实就和我们平时所做的翻墙一样,例如:当我们想要访问某些国外的**网站时,因为某些原因我们无法访问到,这时候我们就可以找代理,代理有能力访问到那个网站,而我们只需要访问代理。就可以得到那个网站的内容了。且代理可以决定是否将用户信息告诉给网站。
2、总的来说正向代理是一个位于客户端与原始服务器之间的一个代理服务器,为了从原始服务器获取内容,客户端向代理发送一个请求并指定目标服务器(原始服务器),然后代理服务器向原始服务器转交请求并获取内容交给目标服务器,客户端必须进行特殊的设置才能使用正向代理。

3.2反向代理

1、与正向代理相反,举个例子:当用户访问某个服务器下的内容时,其实该服务器并无此内容,但是该服务器通过反向代理从另一台服务器中获取到了用户想要的内容,并返回给了用户。用户以为是在此服务器下获取到的内容,其实并不是。
2、总的来说,反向代理用户不需要进行特殊的设置,对用户来说他以为访问得到的内从是从原始服务器中得到的。其实是客户端向反向代理的命名空间中发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容 原本就是它自己的一样。

四、安装nginx

1.上传nginx安装包
2.解压nginx
tar -zxvf nginx-1.12.2.tar.gz -C /usr/local/src/
3.进入到nginx的源码目录
cd /usr/local/src/nginx-1.12.2/
4.预编译
./configure
5.安静gcc编译器
yum -y install gcc pcre-devel openssl openssl-devel
6.然后再执行
./configure
7.编译安装nginx
make && make install
8.启动nginx
sbin/./nginx
9.查看nginx进程
ps -ef | grep nginx
netstat -anpt | grep nginx

10.退出nginx
./nginx -s quit

11.重启nginx
./nginx -s reload


将springboot程序部署在多台服务器上,然后启动springboot
java -jar niubike-0.0.1-SNAPSHOT.jar >> ./logs 2>&1 &


修改nginx的配置文件,让nginx实现负载均衡功能
vi /usr/local/nginx/conf/nginx.conf


#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;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    #响应数据的来源
    upstream tomcats { 
    #分权 即访问131与134的次数比例为1比1
        server 192.168.88.101:8888 weight=1;
        server 192.168.88.102:8888 weight=1;
        server 192.168.88.103:8888 weight=1;
    }

    server {
        listen       80;
        server_name  192.168.88.88;
	 #即所有请求都到这里去找分配
        location ~ .* {
         #使用mytomcat分配规则,即刚自定义添加的upstream节点
    	    proxy_pass http://tomcats;
	}

    }

}

五、工作原理

1、nginx监听本地的8888端口,并将请求转发到192.168.88.101,192.168.88.102,192.168.88.103三个ip中的一个,映射的策略是ip_hash,这个策略会对请求的ip进行hash运算并将结果映射到其中一个ip,它能确保一个确定的请求ip会被映射到一个确定的服务,这样就连session的问题也不用考虑了。

2、配置完成后,只需要在本地其三个服务,分别监听101,102和103,然后打开浏览器访问192.168.88.88:8888,就会访问到你的其中一个服务。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值