Nginx日志和监控

作者:JerryXia | 发表于 , 阅读 (0)
我们可以通过error_log指令设置nginx日志,nginx日志分为很多级别[debug | info | notice | warn | error | crit | alert | emerg],如下面的配置将会把warn级别以上的日志输出到{prefix}/logs/error.log,prefix为安装nginx时指定的--error-log-path,若未指定,则使用--prefix。error_log支持多个上下文: main, http, server, location。如果在同一上下文中定义了多个error_log,那么日志将被记录到所有日志文件中(Nginx1.5.2+)。error_log logs/error.log warn;...阅读全文

Java单元测试

作者:JerryXia | 发表于 , 阅读 (0)
在开发中, 单元测试是必不可少的, 个人觉得越是庞大复杂的系统, 就越应该具有良好的测试覆盖, 也许一开始会觉得很费时和多余,但这无疑是能把问题暴露在上线之前的有利保障。按照一般的系统架构, 通常会将系统垂直分为Dao, Service, Controller三层,所以我们需要单独对这几层进行。
Dao层测试这是系统功能最基础的支持, 必然保证准确无误。对于DB类型, 我们无非就是RDBS(如MySQL)和NoSQL(如Redis),那我们要怎么比较优雅进行Dao的单元测试呢?个人觉得不依赖任何环境, 是最优雅的。 先说关于RDBS类型的测试, 我们可以利用Java实现的数据库H2这种内嵌数据库就能完成,即在单元测试中使用H2作为数据库(这需要忽略其与对应RDBS的差异),对应的Spring配置大概为
<!-- MyBatis 配置 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/...阅读全文

Nginx全局基本且高效的配置

作者:JerryXia | 发表于 , 阅读 (0)
user www-data;pid /var/run/nginx.pid;# 定义了nginx对外提供web服务时的worder进程数。最优值取决于许多因素,包括(但不限于)CPU核的数量、存储数据的硬盘数量及负载模式。# 不能确定的时候,将其设置为可用的CPU内核数将是一个好的开始(设置为“auto”将尝试自动检测它)worker_processes auto;# 更改worker进程的最大打开文件数限制。如果没设置的话,这个值为操作系统的限制。# 设置后你的操作系统和Nginx可以处理比“ulimit -a”更多的文件,所以把这个值设高,这样nginx就不会有“too many open files”问题了worker_rlimit_nofile 100000;events {#设置可由一个worker进程同时打开的最大连接数。如果设置了上面提到的worker_rlimit_nofile,我们可以将这个值设得很高。worker_connections 2048;#告诉nginx收到一个新连接通知后接受尽可能多的连接。multi_accept on;#设置用于复用客户端线程的轮询方法...阅读全文

Nginx访问日志统计

作者:JerryXia | 发表于 , 阅读 (0)
生产中,我们需要Nginx访问日志,查一些需要的数据,这里作一些收集。
假定配置nginx日志格式为log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for" $request_length $request_time $bytes_sent ''"$upstream_cache_status"';...阅读全文