一、nginx简介
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
二、nginx+tomcat搭配
1、nginx + tomcat的配置,这个至于版本的选择看你们自己,按理来说应该是通用的… 其中 nginx 配置如下
1 | server { |
2、tomcat server.xml 添加如下配置,tomcat 的webapp下的war包名字改为 planeApi.war
1 | <Context path="/" docBase="C:\software\apache-tomcat-8.5.24\webapps" reloadable="true" /> |
如上,我们在访问 http://localhost:801/planeApi 时会被nginx 转发到 http://localhost:8095 上,即我们访问 http://localhost:801/planeApi/test 就是访问 http://localhost:8095/planeApi/test
有个小方法,我们不需要配置tomcat里面的server.xml文件,那就是直接把 war 包文件的名字修改为 ROOT.war,当然,这样修改的话,访问 http://localhost:801/planeApi/test 就是访问 http://localhost:8095/test
三、nginx 本身配置
1 | server { |
如上,我们访问 http://localhost/plane 时就会访问到 nginx 根目录下的 test/plane目录下的文件,即访问的是 http://localhost/plane/index.html
这里出了一个坑,如下图,nginx 自身有一个默认的server配置,它也是监听的localhost 80 端口,然后因为优先级顺序,以及 location配置的关系,导致我们在访问 http://localhost/plane 时,它去 nginx 的 html 目录下找 plane 目录了,当然,这是肯定找不到的,会报错404……
四、nginx 的 location 常用的配置
1 | location = / { |
五、alias、root 的区别
1 | location /plane { |
如上,访问 /plane/ 里面的文件时,nginx 则会去 /tets/ 目录下找文件,alias 是一个目录别名的定义,alias 后面必须用 / 结束,否则找不到文件,到时候会懵逼的……
1 | location /plane { |
如上,访问 /plane/ 里面的文件时,nginx 则会去 /tets/plane/ 目录下找文件,root 是 最上层根目录的定义,后面的 / 可有可无,不重要,也不影响……