1.需求分析
nginx是一个较为流行的反向代理服务器,可以用来对多台服务器进行集群配置;在笔者公司项目中,就恰到好处的运用nginx对多台服务器进行集群;首先第一台主服务器配置系统服务(redis+mysql+nginx),然后第二台及第三台服务器为应用程序服务器,部署java基础环境(jdk+tomcat),并且部署同一套代码到两台应用程序服务器中,客户端通过访问主服务器配置好的反向代理serverdomain来反向的访问应用程序服务器,从而完美的到达了服务器集群。
2.nginx的安装
首先配置Nginx用户
[root@localhost ~]# groupadd nginx
[root@localhost ~]# useradd -g nginx -s /sbin/nologin nginx
用户安装依赖包
[root@localhost ~]# yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc gcc-c++
解压并进入文件夹内
[root@localhost ~]# tar zxvf nginx-1.2.6.tar.gz
[root@localhost ~]# cd nginx-1.2.6
配置安装
[root@localhost nginx-1.10.1]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module
[root@localhost nginx-1.10.1]# make && make install
如果在该步出现异常,则将报异常的moudle删除即可
好了,nginx就安装完毕了,安装详细教程,可点击该链接:http://blog.csdn.net/zhangxing52077/article/details/73927714
3.https证书的申请
阿里云有免费的CA证书申请,申请详细教程,点击该连接:http://blog.csdn.net/zhangxing52077/article/details/72827770,申请成功后下载证书文件,将证书文件上传到主服务器的自定义目录下,如图:
4.nginx中https环境的配置
vim /usr/local/nginx/conf/nginx.conf 进行配置修改
upstream中配置的是多台反向代理的服务器域名,也可以指多台应用程序服务器的域名;proxy_pass配置的是映射路径(反向代理路径,即upstream中配置的服务器域名)
最后开启Nginx服务,访问https://www.mysysj.com,即可访问到nginx首页;
5.nginx域名后面追加项目名
在应用程序服务器中创建自定义目录,用来存放项目war包,这里姑且是 /www/yivi,将打包好的项目上传到这个目录下
然后在tomcat中的server.xml中配置如下:
访问https://www.mysysj.com/online就可成功的访问到应用程序服务器的项目了
通过配置upstream中的ip_hash使两台应用程序服务器在交替访问时的sessionId达到一致,从而有效的避免session无效.
6.nginx的代理方式
①轮询
默认的就是轮询的方式,也就是交替代理
②.权重(weight)
对于多台服务器,服务器配置好的配置权重应该较大,反之较小;
③ip_hash
为了避免让session失效,在upstream中配置ip_hash进行代理