nginx实现软负载
!!! 源码包下auto/cat options |grep “YES”,可以查看nginx源码中默认开启的模块,不用纠结了
如果缺少pcre:
https://jaist.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz
./configure --prefix=/app/lib/pcre-8.39
Make
Make install
后续编译nginx时,在后面追加–with-pcre=/app/lib/pcre-8.39
如果缺少zlib:
https://jaist.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz
./configure --prefix=/app/lib/zlib-1.2.11
Make
Make install
后续编译nginx时,在后面追加–with-zlib=/app/lib/zlib-1.2.11
1.安装
下载源程序包后解压缩,进入目录执行配置设置:
./configure --prefix=/app/nginx --pid-path=/app/nginx/nginx.pid --lock-path=/app/nginx/lock/nginx.lock --error-log-path=/app/nginx/log/error.log --http-log-path=/app/nginx/log/access.log --with-http_gzip_static_module --http-client-body-temp-path=/app/nginx/client_temp --http-proxy-temp-path=/app/nginx/proxy_temp --http-fastcgi-temp-path=/app/nginx/fastcgi_temp --http-uwsgi-temp-path=/app/nginx/uwsgi_temp --http-scgi-temp-path=/app/nginx/scgi_temp
设置完成后执行
make
makeinstall
安装完成。
安装完成后目录结构:
2.配置
conf下nginx.conf
upstream:配置服务端组
max_fails=number 设定Nginx与服务器通信的尝试失败的次数。在fail_timeout参数定义的时间段内,如果失败的次数达到此值,Nginx就认为服务器不可用。在下一个fail_timeout时间段,服务器不会再被尝试。
server:配置nginx服务,端口为8888
我在这配置的逻辑是将/test开头的url请求反向代理到刚才定义的test_server服务端组。
配置完成后,进入sbin目录,启动nginx。
3.模拟前置服务
暂用springboot构建一个简单的http restful api,对外发布的服务url是/test,我分别部署在我的两台linux虚拟机上。
程序结构:
打包jar后部署到虚拟机
java -jar test-0.0.1-SNAPSHOT.jar 启动后:
启动了8080端口,并加载了/test到RequestMappingHandlerMapping中,这时可以访问http://127.0.0.1:8080/test进行接口调用:
4.停服务测试
服务器环境:两台虚拟机都启动了8080前置模拟服务,nginx已经把这两个地址配置到了一组下。
客户端测试:本地测试
5.修改配置下线测试
nginx -s reload