nginx安装与负载均衡

安装

依赖

如果依赖没有安装,需要安装下面依赖,不然安装过程会报错。

  • PCRE库
  • zlib库
  • ssl

安装nginx

wget -c https://nginx.org/download/nginx-1.16.0.tar.gz
tar -zxvf nginx-1.16.0.tar.gz
cd nginx-1.16.0 
./configure --prefix=/software/nginx (这个步骤可以指定参数)
make
make install

启动与停止

启动

./nginx 启动
./nginx -c /usr/local/nginx/conf/nginx.conf 启动并重新载入配置文件
./nginx -s reload 重启并重新载入默认配置文件
./nginx -s reopen  重启

停止

./nginx -s quit(建议使用)此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s stop 停止

负载均衡

概念

nginx的反向代理:就是将请求发送给nginx,然后将请求转发给后端服务器,后端服务器处理完毕之后将结果再发给nginx,nginx再把结果发送给客户端。后端服务器可在远程也可在本地,也可以是nginx服务器内部定义的其他虚拟主机。这些接收nginx转发的服务器被称为上游(upstream)

负载均衡(LoadBalancer)是指把用户访问的流量,通过「负载均衡器」,根据某种转发的策略,均匀的分发到后端多台服务器上,后端的服务器可以独立的响应和处理请求,从而实现分散负载的效果。负载均衡技术提高了系统的服务能力,增强了应用的可用性

负载均衡

安装tomcat

这里使用两个tomcat测试,下载两个tomcat8并解压,修改tomcat的端口号(修改server.xml文件,需要修改三个地方)。假设tomcat-1和tomcat-2端口分别为8080和8081,然后在两个tomcat里面分布发布项目,启动tomcat。

配置nginx

修改配置文件

  • 全局块:nginx服务器的配置信息
  • events块:主要影响nginx服务器与用户的网络连接,
  • http块:代理缓存和日志定义绝大多数功能和第三方模块的配置可以放这
  • server块:每个server相当于一台虚拟主机,它内部可以有多台主机联合提供服务,一起对外提供在逻辑上关系密切的一组服务
  • location:基于nginx服务器接收到的请求字符串,对除虚拟主机名之外的字符串进行匹配,对特定的请求进行处理

注意:
这里演示tomcat和nginx都在同一台服务器,不同服务器配置稍有区别。这里主要修改了http块中的upstream负载均衡池和server块

events {
    worker_connections  1024; # 单个进程最大连接数
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    
	#反向代理负载均衡设定部分
	#upstream表示负载服务器池,定义名字为localhost的服务器池
    upstream localhost{
        server localhost:8080;
        server localhost:8081;
        }

    #gzip  on;
    server {
        listen       8091; #监听端口
        server_name  localhost; #当前服务的域名
        location / {
            #root   html;
            #index  index.html index.htm;
			proxy_pass http://localhost;  #对应 upstream localhost
			#获取真实IP配置
			proxy_set_header Host $host:$server_port;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			#end
			#proxy_redirect off;
			proxy_connect_timeout      240;
			proxy_send_timeout         240;
			proxy_read_timeout         240;
			# note, there is not SSL here! plain HTTP is used
			proxy_headers_hash_max_size 51200;
			proxy_headers_hash_bucket_size 6400;
			}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

启动
配置完毕后加载配置文件方式启动nginx,输入访问网址http://xxxxxx:8091//xx,刷新地址栏,可以看到页面来回切换,标识配置成功了。
登录界面1登录界面2

踩坑

  • IP与实际不符

登录到系统后发现日志ip显示不对,原因是nginx反向代理导致IP错误,需要在配置文件加入几行配置

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  • 页面重定向后端口丢失

解决办法,配置文件添加$server_port

proxy_set_header Host $host:$server_port;

总结

这个是http请求方式的nginx负载均衡,和https请求的配置还是有些差别的,还需要安装ssl模块。考虑到安全性问题,切换成https请求的方式是很有必要的。总之,作为初步接触nginx,掌握这些也是蛮重要的。虽然配置文件很多参数还不了解,照葫芦画瓢,相信积少成多,总是不会错的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值