2017-12-14
下载PageSpeed模块
下载pagespeed 和psol:
https://github.com/pagespeed/ngx_pagespeed/archive/v[PageSpeed 版本].zip
https://dl.google.com/dl/page-speed/psol/[PageSpeed 版本]-x[系统位数].tar.gz
比如PageSpeed版本1.13.35.1-beta,相应的下载地址则为:
https://codeload.github.com/pagespeed/ngx_pagespeed/zip/v1.13.35.1-beta
https://dl.google.com/dl/page-speed/psol/1.13.35.1-x64.tar.gz
wget https://codeload.github.com/pagespeed/ngx_pagespeed/zip/v1.13.35.1-beta -O ngx_pagespeed-v1.13.35.1-beta.zip
unzip ngx_pagespeed-v1.13.35.1-beta.zip
cd ngx_pagespeed-v1.13.35.1-beta/
wget https://dl.google.com/dl/page-speed/psol/1.13.35.1-x64.tar.gz -O psol-1.13.35.1-x64.tar.gz
tar -xzvf psol-1.13.35.1-x64.tar.gz
下载Nginx
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvzf nginx-1.13.7.tar.gz
cd nginx-1.13.7/
编译安装
./configure --add-module= /root/ngx_pagespeed-1.13.35.1-beta/ \
--with-cc-opt= '-g -O2 -fPIE -fstack-protector-strong \
-Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' \
--with-ld-opt= '-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' \
--prefix= /usr/share/nginx --conf-path= /etc/nginx/nginx.conf \
--http-log-path= /var/log/nginx/access.log \
--error-log-path= /var/log/nginx/error.log \
--lock-path= /var/lock/nginx.lock \
--pid-path= /run/nginx.pid \
--http-client-body-temp-path= /var/lib/nginx/body \
--http-fastcgi-temp-path= /var/lib/nginx/fastcgi \
--http-proxy-temp-path= /var/lib/nginx/proxy \
--http-scgi-temp-path= /var/lib/nginx/scgi \
--http-uwsgi-temp-path= /var/lib/nginx/uwsgi \
--with-debug \
--with-pcre-jit \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_auth_request_module \
--with-http_addition_module \
--with-http_dav_module \
--with-http_geoip_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_image_filter_module \
--with-http_v2_module \
--with-http_sub_module \
--with-http_xslt_module \
--with-stream \
--with-stream_ssl_module \
--with-mail \
--with-mail_ssl_module \
--with-threads
make
make install
测试
2017-12-06
官方文档
ES默认不支持Text类型字段进行分组查询,将fielddata设置为true。
curl -XPUT '172.16.88.100:9200/capture-2017.06.19/_mapping/capture' -d'
{
"properties": {
"host": {
"type": "text",
"fielddata": true
}
}
}'
2017-12-05
之前,在公司内部给大家做了java培训后,要考一考大家,关于初始化方面,想了一个综合涵盖继承、静态等各个方面的代码。
题目
说出下面程序运行结果:
class Language {
static {
System . out . println ( "language static block" );
}
{
System . out . println ( "language block" );
}
public Language () {
System . out . println ( "language constructor" );
}
public Language ( String name ) {
System . out . println ( name );
}
}
public class Python extends Language {
private String name ;
public Python ( String name ) {
this . name = name ;
System . out . println ( "python constructor" );
System . out . println ( this . name );
}
{
System . out . println ( "python block" );
}
static {
System . out . println ( "python static block" );
}
public static void main ( String [] args ) {
new Python ( "hello python" );
}
答案
language static block
python static block
language block
language constructor
python block
python constructor
hello python
2017-12-05
logstash的异常信息并不像elastichsearch那样可以打印出详细的java堆栈错误,方便出错后排查问题。
在使用logstash中遇到_grokparsefailure,实在是太难调试,只能一点点去试、去分析。
之前在解析一个标准的syslog日志竟然也出错。用的官方的标准的pattern。
下面这行日志grok解析失败了:
从官方模版 中的正则可以看出对于HOSTNAME的解析不支持"_";。
SYSLOGHOST %{ IPORHOST}
IPORHOST ( ?:%{ HOSTNAME} | %{ IP})
HOSTNAME \b ( ?:[ 0-9A-Za-z][ 0-9A-Za-z-]{ 0,62})( ?:\. ( ?:[ 0-9A-Za-z][ 0-9A-Za-z-]{ 0,62})) *( \. ?| \b )
找到问题,解决就容易了,要么改主机名要么不用官方的pattern。
ps_office改为ps-office,一切ok了。
2017-12-05
官方文档
Logstash是一个接收,处理,转发日志的工具。包含input、filter、output三大组件。分别实现收集->过滤->输出三个功能。
每个组件下面都包含丰富的插件,下图列举一些常见的。
intput
主要负责从数据源接收数据。常见的如:
file:从文件系统中读取一个文件,类似UNIX命令"tail -0a"。
syslog:监听514端口,按照RFC3164标准解析日志数据。
redis:从redis服务器读取数据,支持channel(发布订阅)和list模式。redis一般在Logstash消费集群中作为"broker"角色,保存events队列共Logstash消费。
filter
主要承担对接收的数据解析、过滤。常用的有:
grok:通过正则匹配,非常灵活,官方自带常用的配置
ruby:随心所欲的ruby,直接写代码。
output
作为输出端,常用的有:
elasticsearch:输出到搜索引擎。
file:将数据保存到文件中。
codes
基于数据流的过滤器,它可以作为input,output的一部分配置。可以帮助你轻松的分割发送过来已经被序列化的数据。
json:使用json格式对数据进行编码/解码。
multiline:将汇多个事件中数据汇总为一个单一的行。比如java异常信息和堆栈信息。
插件安装
插件市场
./bin/logstash-plugin install logstash-output-elasticsearch
2017-11-22
2017-11-22
一:利用mysql_install_db生成数据库
mysql_install_db --datadir=/var/db/my3307/data --user=mysql
mysql_install_db --datadir=/var/db/my3308/data --user=mysql
二:配置文件
[ mysqld_multi]
[ mysqld3307]
server-id = 3307
datadir = /var/db/my3307/data
socket = /var/db/my3307/mysql.sock
pid-file = /var/db/my3307/mysqld.pid
log-bin = /var/db/my3307/logs/mysql-bin.log
log-error = /var/db/my3307/logs/mysqld.log
[ mysqld3308]
server-id = 3308
datadir = /var/db/my3308/data
socket = /var/db/my3308/mysql.sock
pid-file = /var/db/my3308/mysqld.pid
log-bin = /var/db/my3308/logs/mysql-bin.log
log-error = /var/db/my3308/logs/mysqld.log
三:启动
/usr/local/bin/mysqld_multi --defaults-extra-file= /etc/my_multi.cnf stop| start| report
遇到的问题:
FATAL ERROR: Could not find ./bin/my_print_defaults
If you compiled from source, you need to run make install to
copy the software into the correct location ready for operation.
If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the basedir option
解决方案:
在/usr/local下执行或者指定basedir。
/usr/local/bin/mysql_install_db
--user= mysql
--basedir= /usr/local
--datadir= /var/db/my3307/data
--defaults-file= /etc/my.cnf
2017-11-22
.htaccess为空
不需要再做rewrite处理。
CI配置
application/config/config.php
$config['uri_protocol'] = 'REQUEST_URI';
nginx配置
server {
listen 80 ;
server_name 127.0.0.1 ;
root /usr/local/****** ;
index index.php index.html index.htm ;
rewrite_log on ;
location / {
root /usr/local/****** ;
index index.php index.html index.htm ;
try_files $uri $uri//index.php?$query_string ;
}
location~\.php($ | /) {
fastcgi_pass 127.0.0.1 : 9000 ;
fastcgi_index index.php ;
fastcgi_split_path_info ^ (.+\.php)(.*) $;
fastcgi_param PATH_INFO $fastcgi_path_info ;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ;
include fastcgi_params ;
}
location~/\.ht {
deny all ;
}
}