Nginx初始及优化参数及Tomcat优化

初始Nginx,后面Ngxin优化参数,及Tomcat


1、当安装LNMP一体化环境时,MySQL数据库要装在Nginx所在的机器上。如果MySQL和 Nginx不在一台机器上,那么,Nginx服务器上的MySQL数据库软件包只要解压移动 到/usr/local/目录,改名为mysql就可以了,不需要进行后面的初始化配置。
 
2、在非一体的LNMP环境(Nginx和MySQL不在一台机器上),编译PHP环境时,也是需要 MySQL数据库环境的,但是高版本的PHP,例如5.3版本以上,内置了PHP需要的MySQL程序,因此,对于此类版本就不需要在Nginx服务器上安装MySQL软件了,只需要在编译PHP时 指定相关参数即可。 这个PHP的编译参数为--with-mysql=mysqld,表示PHP程序在编译时会 调用内置的MySQL的库。

可能会有问题:
error: Cannot find MySQL header files under mysqld. Note that the MySQL clie 
    第一修改:--with-mysql=/usr
error: Cannot find libmysqlclient under /usr. Note that the MySQL client library is not bundled anym 
问题是64位系统中 libmysqlclient 默认安装到了 /usr/lib64/MySQL/ 目录下,而/usr/lib 目录下没有相应文件,但是PHP编译时,要去 /usr/lib目录下查找
解决方法:
ln -s /usr/lib64/mysql/libmysqlclient.so.15.0.0  /usr/lib/libmysqlclient.so
    

全局配置项说明:
   user nobody : 运行用户未nobody
   worker_processes 1 : 工作进程数量为1,若服务器有多块CPU或者使用多核处理器,可参考CPU核心总数来指定工作进程数
   error_log logs/error.log : 错误日志文件的位置为: logs/error.log
# 错误级别: debug info notice warn error crit 
   pid logs/nginx.pid : PID文件的位置为:logs/nginx.pid
   如果配置项已注视掉,表示采用默认设置。

I/O事件配置:
  用 “events{}” 界定,指定Nginx进程的I/O响应模型,每个进程的连接数等。
  2.6及以上版本的内核,建议使用epoll模型以提高性能;每个进程的连接数应根据实际需要来定,一般在10000以下,默认为1024.
events{
     use     epoll; //使用epoll模型
     worker_connections     4096; //每个进程处理4096个连接
}
若工作进程数为8,每个进程处理4096个连接,则允许Nginx正常提供服务的连接数已超过3万个(4096*8=32768),具体的看服务器硬件,网络带宽等物理条件的性能表现。


HTTP配置:
   用 “http{}” 界定,设置访问日志,HTTP端口、网页目录、默认字符集、连接保持,虚拟Web主机、PHP解析等,server{}配置段设置特定的网站


HTTP配置项说明:
     access_log : 指定访问日志位置
     sendfile : 是否保持文件发送(下载)
     keepalive_timeout : 连接保持超时
     listen 80 : 监听地址及端口
     server_name : 设置网站名称(FQDN)
     location : 根目录配置
     root : 网站根目录的位置   /usr/local/nginx/html/ 相对于这个位置
     index : 默认首页(索引页)
     error_page : 内部错误的反馈页面

访问Nginx时候出现状态码 “403 forbidden” 的原因:
1、Nginx配置文件里没有配置默认首页参数,或首页文件在站点目录下没有如下内容:
     index index.php index.html index.htm;
2、站点目录或内部的程序文件没有Nginx的访问权限。
3、Nginx配置文件中设置了 allow、deny 等权限控制,导致客户端没有访问权限。





修改Nginx的用户及用户组:
在主配置文件中,起始位置:
     user   nginx nginx;
#第一个指定的是:用户,第二个指定的是用户组。

构建静态网页步骤:
构建静态网页步骤:
     1、修改主配置文件,新建 wwww.test.com网站
     2、准备网站目录与测试网页
     3、配置本地解析或DNS解析
     4、启动并检测服务是否正常

修改Nginx读取本地文件的个数:
修改Nginx读取本地文件的个数:
     ulimit -n
# 查看允许打开的个数数量
     ulimit -n 65350
# 设置打开的数量为:65350

查看系统日志分析:
查看系统日志:
     Nginx内置了  HTTP_STUB_STATUS状态统计模块
     修改nginx.conf配置文件,指定访问位置 /status并打开 stub_status 配置
     在浏览器中访问 /status , 看统计信息。

日志分割:
#!/bin/bash
date=$(date -d "-1 day" "+%Y%m%d")
logs_path="/var/log/nginx"
pid_path="/usr/local/nginx/logs/nginx.pid"
[ -d $logs_path ] || mkdir -p $logs_path
mv /usr/local/nginx/logs/access.log ${logs_path}/kun.cc.access.log-$date
kill -USR1 $(cat $pid_path)
find $logs_path -mtime +30 | xargs rm -rf 

设置日志分割:
   kill -s USER1 Nginx进程号
# 分割Nginx日志信号
   kill -s USER2 Nginx进程号
# 平滑升级Nginx

Nginx隐藏版本号:
   1、配置文件中:server_tokens选项的值设置为 off , 如果没有该配置项,加上即可。
1-1、在http模块中添加。
1-2、便以前-修改源码:然后再编译安装。
     nginx-1.12.1解压后的目录中,src/core中:nginx.h 文件中修改。
 #defline NGINX_VERSION  "1.12.1" //修改版本号信息
 #defline NGINX_VER  "nginx/" //软件类型也可以修改。  

   2、如果php配置文件中配置了 fastcgi_param SERVER_SOFTWARE 选项,则编辑 php-fpm配置文件,将fastcgi_param SERVER_SOFTWARE对应的值修改为:fastcgi_param SERVER_SOFTWARE ngxin 

Nginx连接超时:
   keepalive_timeout : 设置连接保持超时时间,一般可只设置参数,默认为75秒,可根据网站的情况设置,或者关闭,可在 http、server、或 location 段设置
   client_header_timeout : 指定等待客户端发送请求头的超时时间
   client_body_timeout : 设置请求体读 超时时间。

cat /proc/cpuinfo | grep -c "physical"
# 查看系统CPU核数。显示了多少行。
1、修改配置文件的 worker_processes 参数,一般设置为CPU的个数或核数,在高并发情况下可设置为CPU个数或核数的2倍。
2、运行进程数多一些,响应客户端访问请求时,Nginx就不会临时启动新的进程提供服务,减少了系统的开销,提升了服务速度。
3、修改完后,重启服务,使用 ps   aux 查看运行进程数的变化情况。

在一台4核物理服务器,可进行配置,将进程分配在指定的CPU上,从而减少CPU之间的切换消耗。
     worker_cpu_affinity 0001 0010 0100 1000;

Nginx网页压缩:
压缩参数:
     gzip on  : 开启gzip压缩输出
     gzip_min_length 1k  : 用于设置允许压缩的页面最小字节数; 低于1k的不压缩。
     gzip_buffers 4 16k  : 表示申请4个单位为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存来存储gzip压缩结果。
   zip_http_version 1.0  : 用于设置识别http协议版本,默认是1.1,目前大部分浏览器已经支持gzip解压,但处理慢,也比较消耗服务器CPU资源。 指定http协议的版本号
   gzip_comp_level 2  : 指定gzip压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理速度最慢,根据实际情况设置适当的值。
   gzip_types text/plain  : 压缩类型,对哪些网页文档启用压缩功能。
   gzip_vary  on  : 可以让前端的缓存服务器缓存经过gzip压缩的页面。

Nginx防盗链:rewrite
location ~* \.(jpg|png|swf|jpeg)$ {
     valid_referers none blocked *.kun.cc kun.cc;
     if ($invalid_referer) {
          rewrite ^/ http://www.kun.cc/error.html;
          #return 403;
     }
}

valid_referers none blocked *.kun.cc kun.cc; 详解:
  valid_referers :设置信任的网站,即能引用相应图片的网站。
  none : 浏览器中referer为空的情况,就是直接在浏览器访问图片
  blocked : referer不为空的情况,但是值被代理或防火墙删除了,这些值不以 http:// 或  https:// 开头
  后面的网址或域名 : referer中包含相关字符串的网址
  if语句 : 如果连接的来源域名不在valid_referers所列出的列表中, $invalid_referer 为 1 ,则执行后面的操作,即进行重写或返回403页面。
rewrite跳转标记 flag 使用总结:
例如: rewrite ^/(.*) http://www.baidu.com/$1 permanent;
后面的:permanent就是flag标记。
flag标记符号 说明
last 本条规则匹配完成后,继续向下匹配新的location URI规则
break 本条规则匹配完成即终止,不再匹配后面的任何规则
redirect 返回302临时重定向,浏览器地址栏会显示跳转后的RUL地址
permanent 返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
1、在以上的flag标记中,last和break用来实现URL重写,浏览器地址栏的URL地址不变,但在服务器端访问的程序及路径发生了变化。redirect和permanent用来实现URL跳转,浏览器地址栏会显示跳转后的URL地址。
2、last和break标记的实现功能类似,但二者之间有细微的差别,使用alias指令时必须用last标记,使用proxy_pass指令时要使用break标记。last标记在本条rewrite规则执行完毕后,会对其所在的server{...}标签重新发起请求,而break标记则会在本条规则匹配完成后,终止匹配,不再匹配后续的规则。


1、在根 location(即:location / {...})中 或 server {...} 标签中编写rewrite规则,建议使用last标记。
2、在普通的location(例:location /test/ {...}) 或 if{} 中编写rewrite规则,建议使用break标记。

Nginx的PHP解析功能:FPM模块参数优化:
FPM优化参数:
     pm : 使用那种方式启动fpm进程,可以是static 和 dynamic,前者将产生固定数量的fpm进程,后者将以动态的方式产生fpm进程。
     pm.max_children : static 方式下开启的fpm进程数。
     pm.start_servers : 动态方式下初始的fpm进程数量。
     pm.min_spare_servers : 动态方式下最小的fpm空闲进程数
     pm.max_spare_servers : 动态方式下最大的fpm空闲进程数
     
FPM优化参数调整举例:
     优化原因:服务器为晕服务器,运行个人论坛,内存为1.5G,fpm进程数为20,内存消耗为1G,处理比较慢。
优化参数调整:
     pm=dynamic
     pm.start_servers = 5
     pm.min_spare_server = 2
     pm.max_spare_servers = 8

Nginx优化
当前系统处理的什么业务,服务最大能支撑多少并发。
 1、通过top命令查看CPU负荷,内存使用,进程使用,
 2、通过系统工具判断系统性能。
 3、分析日志查看请求的数量。
 4、通过Nginx的stub_status模块查看Nginx处理的用户请求,连接情况等。

考虑点:
 1、档期那系统结构瓶颈
 2、了解业务模式
    接口业务类型,系统层次化结构,(类似抢票)
 3、性能与安全。

ab接口压力测试工具:
  yum install httpd-tools
使用:
  ab -n 2000 -c 200 http://127.0.0.1/
-n 总的请求书
-c 并发数
-k 是否开启长连接
##需要注意的使: 如果单纯的 RUL,后面必须跟 / 才可以。 

Nginx优化-修改文件句柄
默认的使 1024 个: ulimit -a 查看。
全局修改配置文件: 
   /etc/security/limits.conf
格式:
 root soft nofile 65535
 root hard nofile 65535
 *    soft nofile 65535
 *    hard nofile 65535
## root设置用户打开的文件句柄个数,*代表所有。
nginx中设置打开的文件句柄数:
   在http模块中设置:
  worker_rlimit_nofile 65535;

开启keepalive_timeout 65;
tcp_nodeny on;结合与keepalive_timeout 65;结合使用。
如果作为静态资源服务器:tcp_nopush on;打开。

开启了gzip on;
如果对于IE6以下设置 :gzip_disable "MSIE [1-6]\.";
gzip_http_version 1.1; 

这个值也可以设置成 auto 即可。



使用Nginx搭建虚拟主机服务器:
     每个虚拟Web站点拥有独立的 “server{}” 配置段,各自监听的IP地址、端口号可以单独指定,当然网站名称也是不同的。
     基于域名的虚拟主机
     基于IP的虚拟主机
     基于端口的虚拟主机


netstat -antup | grep nginx

编译安装需要的:
   gcc gcc-c++ automake autoconf

动态数据能力取决于 PHP(Java)和后端数据库的服务能力。
   一般PHP引擎支持的并发连接参考值:300~100
   Java和数据库的并发连接数参考值:300~1500
Nginx与Apache:(WEB服务)

Nginx与tomcat:

Nginx与LVS:

Nginx与Squid(Memcached):(缓存功能)
   Squid 和 Memcached 采用的是epoll模型。

Nginx与Haproxy:(反向代理)
   Nginx可以通过自身的 proxy_cache 模块实现类似Squid等专业缓存软件功能。

Ningx与Lighttpd:






什么是Nginx?
     具有高并发(特别是静态资源),占用系统资源少,可以做HTTP反向代理及加速缓存,即:负载均衡
     是一种服务器软件,最基本的功能是可以与服务器硬件集合,让程序可以在Nginx服务器上发不出去,让用户浏览。Nginx也是一种高性能HTTP和反向代理服务器。也是一个代理邮件服务器。也就是:Nginx上可以发布网站,也可以实现负载均衡的功能,还可以作为邮件服务器实现手法邮件功能等。
    负载均衡: 通过Nginx反向代理的性能,从而实现Nginx负载均衡。
   反向代理:负载均衡。
  Tomcat服务器面向的是Java语言,是一种重量级的服务器,而Nginx是轻量级服务器,Tomcat与Nginx不具备可比性,
  Apache优点:
    稳定、开源、跨平台等等。但是不支持高并发。
网站服务器在单位时间内能够处理的最大连接数。  
Nginx优点:
    可以实现高并发、部署简单、内存消耗少、成本低等等。
    内置对RS节点服务器健康检查功能。
    可以通过自身的proxy_cache模块实现类似Squid等专业缓存软件的功能。
 缺点:
     rewrite功能不够强大,模块没有Apache的多。

gcc、gcc-c++、make 编译,
   需要依赖库:pcre pcre-devel ;  zlib  zlib-devel

   ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx 
--with-http_stub_status_module
pcre-devel :为了Nginx支持http的rewrite,网页重写机制,

--with-http_stub_status_module:网页访问的状态记录统计。

编译后Nginx启动:
   /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
停止:(根据Nginx主进程号)

从容停止:
   ps -ef | grep nginx
   kill -QUIT 2043 
# QUIT  3)SIGQUIT

快速停止:
   kill -TERM 2041
# TERM  15)SIGTERM
   kill -INT 2044
# INT  2)SIGINT

强制停止:
   kill -9 2045
# 按进程号强杀

检测配置文件是否正确:
方法一:
   cd /usr/loca/nginx/sbin/  然后执行: ./nginx -t 即可。
方法二:
   /usr/loca/nginx/sbin/nginx -t -c /usr/loca/nginx/conf/nginx.conf

重启Nginx服务:
方法一:
   cd /usr/local/nginx/sbin/ 然后执行:./nginx -s reload
# 如果没有开启Nginx服务会报错
方法二:
   kill -HUP 主进程号
# HUP  1)SIGHUP


Nginx的反向代理与负载均衡:
   正向代理:明确知道要访问的网站。
   反向代理:有集群中提供相同服务的RS节点提供服务,并不知道具体是哪一个服务器主机。


Nginx配置文件:
  user
# 设置使用的用户 
  worker_processes
# 工作衍生进程,同时可以处理多少个进程。CPU核数或核数2倍
  error_log  logs/error.logs
# 错误日志文件存放路径
  pid   logs/nginx.pid
# 设置PID存放路径-控制文件。
  events{
      worker_connections  1024;
  }
# 设置最大连接数
  http{
     
       gzip on;
    # 如果不压缩off,用户访问时按文件原有大小传输,如果on开启,则访问的时压缩
       server{
           charset koi8-r;
          # 设置nginx字符编码, gb2312
       }   
  }

worker_processes 1;
events{
    worker_connections 1024;
}
http{
     upstream mypro {
          ip_hash;
          server 192.168.88.11 weight=2;
          server 192.168.88.12 weight=1;
     }
     server{
 
     }
     server{
    
     }
}







./configure --help
#查看支持的模块。
nginx -V
# 查看已经支持的模块

nginx启动:sbin目录下:
./nginx 启动
./nginx -s  stop 停止
查看进程: ps aux | grep nginx
重启服务:./nginx -s reload 


Nginx优化: top命令中 按数字 1 查看CPU核心数。


如果是4核CPU则,每组数字都4位数字组成。有多少个进程就设置多少组数字。则表示:进程绑定在CPU的哪个位置。从而避免进程在CPU之间切换造成性能的开销。CPU有多少核就多少个0组成。
这个值也可以设置成 auto 即可。


文件描述符:
   在Linux上,当打开一个网络端口,或使用一个设备,或是读取一个磁盘文件的时候,都会返回一个文件描述符的东西。在系统上,每一个进程打开的最大数量是由限制的,一旦超过这个限制就会产生错误,请求会被拒绝,
   如果在Nginx上,如果发起一个连接请求,但是当前系统可使用的文件描述符已经达到了上限,一般会收到一个502的错误。导致访问被拒绝。为了避免这个情况的发生,需要给工作进程,可以打开的最大文件设置一个值,应该让Ningx使用系统最大可打开文件的最大数值,这样的一个限制。
   这个值不会因为,文件描述符打开文件的限制,而导致拒绝连接,


每个进程的最大可用连接数。:指定每一个工作进程,最多可以接收多少个用户的连接,直接影响到Nginx负载量的一个设置,
   为什么做为反向代理时候连接数更少,因为浏览器向服务器发起时候会同时开俩条连接,而作为反向代理服务到后排服务器每条连接还需要代理,又会占用2条连接。这么一来,一个用户就占用了4条连接。
    因为在压力测试的时候,发现设置的最大连接数,已经达到的2千,但实际压力测试的时候,最多可能只有500个用户可以访问,超过500就不能并发访问了。这就是Ngin为什么作为反向代理服务时,与设置的连接数相差较大的原因。
  BSD上使用的模型是:kquene;
其实在安装的时候Nginx会识别系统,自动使用合理的模型使用。为什么还手动指定呢?这是能更准确的使用。



在高并发服务时,用户请求时候,日志记录也会产生很大的IO开销,
错误日志也会产生IO的压力,或则将错误级别提高,只记录错误比较严重的,从而减少IO的开销。

sendfile on :启用内核复制的选项,默认就是开启的。
   一个磁盘文件,通过Nginx从网络上发送出去,在这个过程中,如果采用普通的模式,会从磁盘上读取到内存里(在内存上有:系统及的内存,用户级的内存,还有网络的内存),会在这些内存中经过一系列的复制,才会发送出去,会造成一定性能的开销。 
    如果开启,就是直接内核复制模式,直接从磁盘最低层的,磁盘IO级别,复制到了网络IO的级别。不经过用户这个层次,减少了几次复制过程,加大了整个响应的速度。

keepalive_teimeout 30s : 设置连接的超时时间。
  连接超时的概念: 在http1.0版本的协议中,当访问一个网页的时候,每次发起请求,获取结果之后,连接都直接被关闭。
   每次建立连接都是性能开销比较大的。1.1http协议后,支持了持久化的连接,支持一个存活的连接,后续大量的请求,复用一个连接,避免了大量创建连接这样的开销。
   但是每个连接的连接时间过长,会导致其他的连接无法进来,
   如果是图片等,资源比较大设置的连接超时  大一些。






 gzip 默认是关闭的,生产中打开on。
   作用:将请求返回的内容进行压缩,压缩后返回内容的总体的字节量减少,可以提高网络使用的效率。
 
gzip_min_length  1000; 设置启用压缩的最小长度。
    作用:只有长度超过指定的值才会压缩,
 
gzip_comp_level  4; 设置压缩级别。

gzip_types text/plain text/css application/json
  对压缩类别的设定。哪些内容压缩,哪些内容不压缩,
如果用户在进行文件下载,图片下载,这些二进制的东西,再压缩也压缩不了多少的。但是对一些文本,html页面,json等,可以达到一个很好的压缩效果。   




这个默认是没有打开的,需要通过配置打开,
 静态文件缓存作用:
   如果经常访问一个网页文件的话,每次都从磁盘读取,显然要消耗大量的IO。性能不会太高,所以对一些经常访问的静态文件,把它放在内存中,然后用户请求的时候,直接从内存取出返回给用户,从而提高服务器的响应能力,也会提高服务器的负载量。

  缓存存放数量是由限的,当超过这个数量的时候,会采用一定的算法,把不经常使用的排除掉,经常使用的放进来,提高缓存的命中率。
   命中率:通过第一个存活时间:inactive=20s; 第二个:open_file_cache_min_uses 2;使用次数,2个数值结合起来,一个文件被加载到缓存中时候,在单位时间内,达到了访问次数,才算是命中率有效的文件,如果没有达到就是命中率低的文件。
   检查:open_file_cache_valid 30s; 通过这个参数来查缓存的有效性。这个就是每30秒验证一次,在验证的时候,如果一个文件在20秒时间内,使用的次数低于2次,那么就释放掉缓存中的这个文件。






Tomcat的运行需要Java的支持,在服务器上为了获得更全的功能,一般安装JDK版本。

对Tomcat的优化一般做2个事情:
  1、内存使用配置。
因为JVM在默认启动的时候,使用的内存都不大,为了充分的利用系统内存,所以需要配置JVM所使用的内存大小。
设置启动内存,也就是设置JVM启动参数。在 bin目录下,有个catalina.sh 的脚本文件,有设置JVM启动参数的部分, 大概在中间的位置,默认是注释的 :JAVA_OPTS=
JAVA_OPTS=$JAVA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=256m
-server : 以server模式启动,启动较慢,运行还是较高的。所以指定-server模式来提升性能。
堆内存,最小堆内存,最大堆内存。
-Xms2048m : 
-Xmx2048m : 

错误提示:OutOfMemoryError:PermGen 错误的提示,用于存放类定义的相关信息,占用之后会释放的,当项目使用的jar包比较多的时候,或则使用了一些框架能够自动生成类,因为默认分配的很小,就有可能会出现这个错误提示的信息。所以可以适当加大这个值的空间大小。
  一个是默认启动时候的大小,另一个是可以使用的最大值。
如果是1.8以后的,这项配置就无效了,因为JDK1.8已经修改了内存模型,已经不存在Perm内存这么个概念,取而代之的是:MetaspaceSize代替。原空间与堆内存共享的,
-XX:PermSize=256m
-XX:MaxPermSize=512m

跟Linux相关的参数,在使用一些绘图操作的时候,设置当前的显示模式,是一种headless,表示:无图形显示器,这么个模式、。
  作用:
  当程序中使用一些跟绘图有关的API的时候,如果正确声明了这个模式,才能正确的调用API。否则会抛出一些异常信息。
作用就是宣布,当前的Java是运行在一种,无图形显示这样的模式下, 才能保证绘图API,正确执行,一般在Linxu系统上需要加上这一项。
-Djava.awt.headless=true


  2、最大连接数配置。
因为默认的值也是比较小的。所以需要适当加大。

在server.xml中配置
   Connector 标签,就是设置端口的位置,
protocol="org.apache.coyote.httpll.HttpllNioProtocol"
设置Tomcat的网络模型,
支持3种,
   1、传统的BIO阻塞模型,
   2、新的模型,nio的模型,基于异步轮询,
   3、使用系统级IO的,apr网络模型。arp网络模型因为是利用系统级的,所以在进行一些大文件处理的时候,有异性比较明显,
 
大多数情况使用 nio 模型。也可以获得很好的性能。

设置并发量参数:
正在工作的线程数:
  maxThreads="500" #最大线程数,Tomcat可以同时工作的线程数量,也就是当前可以处理的用户请求的数量

让线程池保持一个有效的线程数量,从而快速响应用户的请求。
  minSpareThreads="100" #配置线程池,准备就绪的线程,最小空闲数量
  maxSpareThreads="200" #配置线程池。最大空闲数量。

当所有线程都启用之后,还允许一部分用户连接进来,当前没有线程为其服务,就处于等待状态,一旦前面有某个用户释放了某个线程,就迅速接收过来,来完成工作。 也就是等待工作的线程数。
  acceptCount="200"

前面正在工作的线程数,后面等待工作的线程数,加起来就是总的可连接的线程数。如果超过了这个数量,新的连接就不会被接受,就会产生一个http错误。,

是否允许DNS反查。
作用:
  当在应用中使用,获取远程主机名这样的操作时,Tomcat会自动将客户端连接的IP,进行一个DNS反查,查出所对应的主机名,因为在服务端没必要知道客户端的主机名,所以可以把这个功能关闭。避免DNS的反查,从而在一定程度上提高Tomcat的响应性能。
enableLookups="false"





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值