Nginx是什么
nginx是一款轻量级的web服务器,主要反向代理或者电子邮件(imap/pop3)代理服务等。
其特有优势:框架轻量级,占用内存少,并发能力强。可做前端请求的负载均衡(当然这些都是废话,如果你有需求要使用nginx时,你肯定会弄明白的)。
Nginx环境构建
安装Nginx:这里是在虚拟机上的Centos7.4上进行安装
1 : wget下载: http://nginx.org/download/nginx-1.4.2.tar.gz
2 : 进行安装: tar -zxvf nginx-1.6.2.tar.gz
3 : 下载安装nginx需要的依赖库文件如下
- 3.1、yum install pcre
- 3.2、yum install pcre-devel
- 3.3、yum install zlib
- 3.4、yum install zlib-devel
4 : 进行configure配置:cd nginx-1.6.2 && ./configure --prefix=/usr/local/nginx 查看是否报错(这里是两个指令使用 &&连接 可以拆分两个执行,指令作用是构建nginx配置到目录/usr/local/nginx下)
5 : 编译安装 make && make install
6 : 启动Nginx,
- 6.1 指令进入目录如下:cd /usr/local/nginx ,存在如下4个目录
conf 配置文件
html 网页文件
logs 日志文件
sbin 主要二进制程序
启动时,只需要sbin下 运行nginx的指令文件,具体命令如下:./nginx+具体操作
start(启动)| 关闭(stop)|重启(reload)
正常启动时,控制台不会出现异常信息(这里一系列安装截图不在展示,相信你应该能够搞定),随后访问:http://ip:80端口(nginx的默认端口号是80)出现成功界面如下图(当然这里还是没有图)- 6.2 这里在centos上构建nginx时正常操作的一些可能出现的bug、当然我希望你那边不会出现,还是把我这边经历的一些坑,以及解决方式记录一下,仅供参考
1、出现错误、首先去目录logs下查找,对应解决问题
2、nginx启动错误时,确认端口不要本占用,建议修改一些不常用的端口。
7 :到此为止nginx安装完毕[现在开心还为时过早],我这里最少构建两个节点(如果需要做集群处理,至少需要三个节点,当然是三台服务器的不同节点,一台服务器的三个节点的话会出现服务器宕机你的应用就挂掉的尴尬场景)。
Nginx demo
核心配置文件标签
- 在nginx下有一个核心配置文件:ningx.conf 重点关注:关于nginx的一切使用都与更改这个文件的便签配置分不开,类似你要启动spring容器就要在web.xml中指定spring的DispatcherServlet一样。
- 这是下我本地的config文件配置(已经配置好反向代理多个Tomcat以及每个tomcat的负债均衡)如下图
具体每个标签每个的含义这里不在做过多解释,因为想要完全掌握nginx以及能够处理各种问题的话,还是需要花一点点时间的。
构建反向代理tomcat的
- 1、通过maven构建项目war包,置入多个tomcat下的webapp下,如果在一台机器上需要修改tomcat的端口,启动tomcat项目启动成功(为了说明问题,项目可以只是一个jsp文件)。
- 修改nginx.conf的配置文件
- 代理两台tomcat的时只需要写入两个server以及指明代理的:proxy_pass http://127.0.0.1:8080/test
- 访问nginx中各个server的地址,页面显示jsp页面元素,代理功能构建成功。
构建nginx代理的多个tomcat的负载均衡
- 在nginx.conf的root节点下对标签:upstream 设置就好了,如下图所示两个tomcat节点对请求的个数进行平均分配操作
通过访问页面,展示不同tomcat的元素得到验证,刷新一下浏览器,展示不同内容的jsp页面
总结:这里只是写概念,不做具体操作,也是因为太懒了,来的去截图等,当然后续会持续更新,nginx还有很多细节需要整理以及构建使用keepalive+nginx集群构建高可用。