一:对于tomcat问题
- 错误页面配置:测试[/conf/web.xml]文件内容,判断错误页重定向配置.期望:配置了403,404,500,java.lang.NullPointerException的错误重定向
解决方案:由于我们的系统只有静态页面,所以错误页面配置在tomcat里面,如果有动态Web工程,可以配置的动态Web工程里面,配置如下:去tomcat的conf目录找到web.xml文件,在文件中<web-app>标签中添加
<error-page>
<error-code>403</error-code>
<location>/WEB-INF/403.html</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/404.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/500.html</location>
</error-page>
由于我这里配置的是到WEB-INF目录下面寻找错误页面,所以然后到\webapps\ROOT\WEB-INF下面添加对应的错误页面文件
- 系统Banner信息
问题:测试[/lib/catalina.jar ServerInfo.properties]文件内容,判断Banner信息.期望:server.info,server.number的值均为X,测试[/server/lib/catalina.jar ServerInfo.properties]文件内容,判断Banner信息(Tomcat5.5).期望:server.info,server.number的值均为X
解决方案:找到tomcat的lib目录中的catalina.jar,使用压缩软件打开此jar包,找到\org\apache\catalina\util目录下的ServerInfo.properties文件,将文件中server.info和server.number的值都修改为X,如:server.info=X server.number=X ,此处相当于隐藏了tomcat的版本号。
二:nginx相关问题
- 启用日志功能
问题:测试[nginx.conf]文件内容,error_log日志配置.期望:正则表达式匹配 ^\s*error_log[^\n]*$,测试[nginx.conf]文件内容,access_log日志配置.期望:正则表达式匹配 ^\s*access_log[^\n]*$
解决方案:在nginx.conf文件中添加
error_log logs/error_log.log error;
error_log logs/error_log.log warn;
error_log logs/error_log.log crit;
log_format main '$remote_addr - $remote_user [$time_local] '
'fwf[$http_x_forwarded_for] tip[$http_true_client_ip] '
'$upstream_addr $upstream_response_time $request_time '
'$http_host $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_accept_language" "$http_user_agent" ';
access_log logs/access_log.log main;
- 控制超时时间
问题:测试[nginx.conf]文件内容,client_header_timeout值.期望:正则表达式匹配 ^\s*client_header_timeout[^\n]*$,测试[nginx.conf]文件内容,client_body_timeout值.期望:正则表达式匹配 ^\s*client_body_timeout[^\n]*$,测试[nginx.conf]文件内容,keepalive_timeout值.期望:正则表达式匹配 ^\s*keepalive_timeout[^\n]*$,测试[nginx.conf]文件内容,send_timeout值.期望:正则表达式匹配 ^\s*send_timeout[^\n]*$
解决方案:在nginx.conf文件中添加
client_header_timeout 60;
client_body_timeout 60;
keepalive_timeout 65;
send_timeout 60;
- 自定义错误信息
问题:测试[nginx.conf]文件内容,是否设置error_page 400.期望:正则表达式匹配 ^\s*error_page[\s\d]*400,测试[nginx.conf]文件内容,是否设置error_page 502.期望:正则表达式匹配 ^\s*error_page[\s\d]*502,测试[nginx.conf]文件内容,是否设置error_page 404.期望:正则表达式匹配 ^\s*error_page[\s\d]*404,测试[nginx.conf]文件内容,是否设置error_page 413.期望:正则表达式匹配 ^\s*error_page[\s\d]*413,测试[nginx.conf]文件内容,是否设置error_page 504.期望:正则表达式匹配 ^\s*error_page[\s\d]*504
解决方案:nginx默认fastcgi_intercept_errors为关闭状态,一次需要在http{}里面添加fastcgi_intercept_errors on;然后在server{}里面添加
error_page 400 /400.html;
error_page 404 /404.html;
error_page 413 /413.html;
最后将这些异常页面放入nginx/html目录下面
- 隐藏nginx服务信息头
问题:测试[nginx.conf]文件内容,是否设置server_tokens off.期望:正则表达式匹配 ^\s*server_tokens\s*off[^\n]$
解决方案:在nginx.conf文件中的http{}里面添加server_tokens off;#隐藏版本号
- 下载限制并发和速度
问题:测试[nginx.conf]文件内容,是否设置limit_conn和limit_rate.期望:所有的location都能匹配正则表达式 ^\s*limit_conn[^\n]*$和^\s*limit_rate[^\n]*$
解决方案:在ngin.conf文件中的http{}里面添加
#限制同一客户端ip地址
limit_conn_zone $binary_remote_addr zone=perip:10m;
#限制同一server最大并发数
limit_conn_zone $server_name zone=perserver:10m;
在servcer{}里面添加
#下载限速
limit_rate 1024k;
#每个IP使用10个连接
limit_conn perip 10;
#限制与服务器的总连接数
limit_conn perserver 100;
- 限制IP访问
问题:测试[nginx.conf]文件内容,IP限制配置.期望:所有的location都存在正则表达式匹配 ^\s*(deny|allow)\s*\S*[^\n]*$
解决方案:在nginx.conf文件中的server{}里面添加
#禁止该ip访问,此处ip并非是真实的自己本机电脑ip
#可在nginx日志处查看 access_log.log实际ip
deny 192.168.123.1;
#允许所有的ip访问
allow all;
当启动或者关闭nginx的时候出现异常:nginx: [error] open() "/home/app/application/nginxs/logs/nginx.pid" failed (2: No such file or directory)
首先kill掉nginx进程,然后使用/home/app/application/nginxs/sbin/nginx -c /home/app/application/nginxs/conf/nginx.conf命令。