java-Nginx与Tomcat安装,配置及优化
1. java-Nginx安装,配置及优化
1.1 Nginx的安装
linux服务器三种安装方式:
1.rpm(或pkg)安装,类似以与Windows安装程序,是预编译好的程序。
- 使用的是通用参数编译,配置参数部署最佳
- 可控制性不强,比如对程序特定组件的定制性安装
- 通常安装包间有复杂依赖关系,操作比较复杂
2.yum(或者apt-get)安装,改良版的rpm,自动联 下载安装包,自动管理依赖关系
3.编译安装(方式在各类Linux发行版中差异不大)
- 可控制性强,config是可根据当前系统环境优化参数,可定制组件及安装参数
- 易出错,难度略高
1.2 nginx 安装 启动 关闭自动启动
sbin目录下:
启动: ./nginx
关闭: ./nginx -s stop
重载配置文件: ./nginx -s reload
1.3 Nginx的配置
配置文件位置: conf/nginx.conf
全局块
events块
http块
include: 引入配置文件
mime.types
Nginx 会根据mime type定义的对应关系来告诉浏览器如何处理服务器传给浏览器的这个文件,是打开还是下载;如果Web程序没设置,Nginx也没对应文件的扩展名,就用Nginx 里默认的 default_type定义的处理方式。
比如Nginx默认的配置中default_type application/octet-stream; 这个就是默认为下载,浏览器访问到未定义的扩展名的时候,就默认为下载该文件;如果将这个设置改成default_type text/html;那就是告诉浏览器默认的打开方式是把所有未设置的扩展名当HTML文件打开,虽然可能这样设置会很多打不开。
mime type 和文件扩展名的对应关系一般放在 mime.types这个文件里,然后用 include mime.types; 来加载
mime.types文件里是用types指令来定义的,下面是一个完整的定义:
mime.types文件
一般在Nginx的配置文件nginx.conf里面的http{}字段中配置即可,注意mime.types是在你的nginx的安装目录下,如果目录不是下面的,那你要自己手工修改:
参考博客: https://blog.csdn.net/qq_37788558/article/details/78621592
location
url匹配规则
- = : 表示精确匹配后面的url
- ~ : 表示正则匹配,但是区分大小写
- ~* : 正则匹配,不区分大小写
- ^~ : 表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
- @ : “@” 定义一个命名的 location,使用在内部定向时,例如 error_page
上述匹配规则的优先匹配顺序:
- = 前缀的指令严格匹配这个查询。如果找到,停止搜索;
- 所有剩下的常规字符串,最长的匹配。如果这个匹配使用 ^~ 前缀,搜索停止;
- 正则表达式,在配置文件中定义的顺序;
- 如果第 3 条规则产生匹配的话,结果被使用。否则,使用第 2 条规则的结果。
location表达式:
分为两种匹配模式,普通字符串匹配,正则匹配
无开头引导字符或以=开头标识普通字符串匹配
多个location时匹配规则
总体是先普通后正则原则,只识别URI部分,例如请求为/test/1/abc.dorg=xxx
- 先查找是否有=开头的精确匹配,即location = /test/1/abc.do {…}
- 再查找普通匹配,以最大前缀为规则,如有以下两个location
location /test/ {…}
location /test/1/ {…}
则匹配最后一项- 匹配到一个普通格式后,搜索并未结束,而是暂存当前结果,并继续再搜索正则模式
- 在所有正则模式location中找到第一个匹配项后,以此匹配项为最终结果
所以正则匹配项规则受定义前后顺序影响,但普通匹配不会- 如果未找到匹配项,则以3中缓存的结果为最终结果
- 如果一个匹配都没有,返回404
location =/ {…} 与 location / {…}的差别
前一个是精确匹配,只响应/请求,所有/xxx类请求,不会以,前缀匹配形式匹配到它,
后一个正相反,所有请求必然都是以/开头,所以没有其他匹配结果的时候一定会执行到它
因为一个请求在普通匹配规则下没得到其他普通匹配结果时,最终匹配到这里
而这个 ^~指令又相当于不允许正则,相当于匹配到此为止
#精确匹配location =/test {...}#普通字符匹配location /test {...} location / { root html; #指定根目录 绝对路径或者相对路径 index index.html index.htm; #请求到达后没有指定具体文件,默认用index指定的顺序,查找文件 #deny all; 拒绝请求,返回403 #allow all; 允许请求} location ^~ /test/ { deny all;} #正则匹配location ~ /test/.+.jsp$ { #代理 proxy_pass http://192.168.1.62:8080;
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!