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




1、当安装LNMP一体化环境时,MySQL数据库要装在Nginx所在的机器上。如果MySQL和 Nginx不在一台机器上,那么,Nginx服务器上的MySQL数据库软件包只要解压移动 到/usr/local/目录,改名为mysql就可以了,不需要进行后面的初始化配置。



 



这个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打开网页是一片空白是怎么回事_nginx









修改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压缩输出


低于1k的不压缩。


     gzip_buffers 4 16k  : 表示申请4个单位为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存来存储gzip压缩结果。


指定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 : 浏览器中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打开网页是一片空白是怎么回事_负载均衡_02




nginx打开网页是一片空白是怎么回事_nginx_03






使用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.org/en/download.html


     具有高并发(特别是静态资源),占用系统资源少,可以做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{


    


     }


}







nginx打开网页是一片空白是怎么回事_nginx打开网页是一片空白是怎么回事_04




nginx打开网页是一片空白是怎么回事_tomcat_05






./configure --help


#查看支持的模块。


nginx -V


# 查看已经支持的模块



nginx启动:sbin目录下:


./nginx 启动


./nginx -s  stop 停止


查看进程: ps aux | grep nginx


重启服务:./nginx -s reload 




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


nginx打开网页是一片空白是怎么回事_优化_06




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


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



nginx打开网页是一片空白是怎么回事_负载均衡_07





文件描述符:


   在Linux上,当打开一个网络端口,或使用一个设备,或是读取一个磁盘文件的时候,都会返回一个文件描述符的东西。在系统上,每一个进程打开的最大数量是由限制的,一旦超过这个限制就会产生错误,请求会被拒绝,


   如果在Nginx上,如果发起一个连接请求,但是当前系统可使用的文件描述符已经达到了上限,一般会收到一个502的错误。导致访问被拒绝。为了避免这个情况的发生,需要给工作进程,可以打开的最大文件设置一个值,应该让Ningx使用系统最大可打开文件的最大数值,这样的一个限制。


   这个值不会因为,文件描述符打开文件的限制,而导致拒绝连接,




每个进程的最大可用连接数。:指定每一个工作进程,最多可以接收多少个用户的连接,直接影响到Nginx负载量的一个设置,


   为什么做为反向代理时候连接数更少,因为浏览器向服务器发起时候会同时开俩条连接,而作为反向代理服务到后排服务器每条连接还需要代理,又会占用2条连接。这么一来,一个用户就占用了4条连接。


因为在压力测试的时候,发现设置的最大连接数,已经达到的2千,但实际压力测试的时候,最多可能只有500个用户可以访问,超过500就不能并发访问了。这就是Ngin为什么作为反向代理服务时,与设置的连接数相差较大的原因。


  BSD上使用的模型是:kquene;


其实在安装的时候Nginx会识别系统,自动使用合理的模型使用。为什么还手动指定呢?这是能更准确的使用。





nginx打开网页是一片空白是怎么回事_负载均衡_08




在高并发服务时,用户请求时候,日志记录也会产生很大的IO开销,


错误日志也会产生IO的压力,或则将错误级别提高,只记录错误比较严重的,从而减少IO的开销。



sendfile on


   一个磁盘文件,通过Nginx从网络上发送出去,在这个过程中,如果采用普通的模式,会从磁盘上读取到内存里(在内存上有:系统及的内存,用户级的内存,还有网络的内存),会在这些内存中经过一系列的复制,才会发送出去,会造成一定性能的开销。 


    如果开启,就是直接内核复制模式,直接从磁盘最低层的,磁盘IO级别,复制到了网络IO的级别。不经过用户这个层次,减少了几次复制过程,加大了整个响应的速度。



keepalive_teimeout 30s


  连接超时的概念: 在http1.0版本的协议中,当访问一个网页的时候,每次发起请求,获取结果之后,连接都直接被关闭。


   每次建立连接都是性能开销比较大的。1.1http协议后,支持了持久化的连接,支持一个存活的连接,后续大量的请求,复用一个连接,避免了大量创建连接这样的开销。


   但是每个连接的连接时间过长,会导致其他的连接无法进来,


   如果是图片等,资源比较大设置的连接超时  大一些。



nginx打开网页是一片空白是怎么回事_负载均衡_09






nginx打开网页是一片空白是怎么回事_tomcat_10







 gzip 默认是关闭的,生产中打开on。


   作用:将请求返回的内容进行压缩,压缩后返回内容的总体的字节量减少,可以提高网络使用的效率。


 


gzip_min_length  1000; 设置启用压缩的最小长度。


    作用:只有长度超过指定的值才会压缩,


 


gzip_comp_level  4; 设置压缩级别。



gzip_types text/plain text/css application/json


  对压缩类别的设定。哪些内容压缩,哪些内容不压缩,


如果用户在进行文件下载,图片下载,这些二进制的东西,再压缩也压缩不了多少的。但是对一些文本,html页面,json等,可以达到一个很好的压缩效果。   



nginx打开网页是一片空白是怎么回事_tomcat_11







这个默认是没有打开的,需要通过配置打开,


 静态文件缓存作用:


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



  缓存存放数量是由限的,当超过这个数量的时候,会采用一定的算法,把不经常使用的排除掉,经常使用的放进来,提高缓存的命中率。


   命中率:通过第一个存活时间:inactive=20s; 第二个:open_file_cache_min_uses 2;使用次数,2个数值结合起来,一个文件被加载到缓存中时候,在单位时间内,达到了访问次数,才算是命中率有效的文件,如果没有达到就是命中率低的文件。


   检查:open_file_cache_valid 30s; 通过这个参数来查缓存的有效性。这个就是每30秒验证一次,在验证的时候,如果一个文件在20秒时间内,使用的次数低于2次,那么就释放掉缓存中的这个文件。





nginx打开网页是一片空白是怎么回事_nginx打开网页是一片空白是怎么回事_12







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"



nginx打开网页是一片空白是怎么回事_nginx_13