Use Redis via Python
Memorandum
The below codes is how to use redis via Python.
1 | #!/usr/bin/python |
Thanks.
The below codes is how to use redis via Python.
1 | #!/usr/bin/python |
Thanks.
1 | cd ~ # depending on your preference. |
1 | About to write to /Users/kenzo/go/src/github.com/flag/public/package.json: |
1 | npm install -g grunt-cli |
With --save-dev
option, add install module infomation to package.json.
1 | npm install -g grunt --save-dev |
Module | Detail |
---|---|
grunt-contrib-watch | Monitoring update files. |
grunt-contrib-copy | Copy file or directory. |
grunt-contrib-clean | Clean file or directory. |
grunt-contrib-cssmin | Minify CSS files. |
grunt-contrib-uglify | Uglify & Compress Javascript files. |
grunt-contrib-image | Optimize image files (jpeg, jpg, gif, png, swf, etc…). |
grunt-contrib-htmlmin | Minify HTML files. |
grunt-jsbeautifier | beautify Javascript files. |
grunt-cssbeautifier | beautify Javascript files. |
1 | cat package.json |
1 | cd /path/to/project/public/ |
1 | tree |
1 | vim Gruntfile.coffee |
1 | module.exports = (grunt) -> |
1 | cd <path where Gruntfile.coffee exist> |
1 | cd <path where Gruntfile.coffee exist> |
grunt cssmin
Thakns.
備忘録です。
1 | # cd /usr/local/src |
1 | # wget http://production.cf.rubygems.org/rubygems/rubygems-2.2.2.zip |
以上
サービス公開前にNginxで
Basic認証を掛ける必要がありました
ちょうど社内公開したときでもあり
Basic認証のポップアップが出るのが鬱陶しいのもあって
社内だけオフりたい、というときに以下のような設定をしました。
1 | # yum install -y httpd-tools |
1 | # cd /etc/nginx |
1 | # vim /etc/nginx/conf.d/default.conf |
1 | location / { |
1 | # vim /etc/nginx/conf.d/default.conf |
1 | location / { |
あとは 許可IPを随時増やせば良いです。
Webアプリケーション開発におけるNginxあるあるかなと思います♪
以上です。
Nginxで以下のようなエラーが発生
[warn]
とあるしものものしさは否めない汗
要求されるバッファサイズが設定量より多く、一時ファイルを利用しますよ、
という警告です。
1 | [warn] 1493#1493: *210 a client request body is buffered to a temporary file /var/cache/nginx/client_temp/0000000001 ... request: "POST /article/save HTTP/1.1", |
そのバッファサイズの設定量
を変更をしてまず対策しました。
取り急ぎ、t2.microで最小構成でとりあえず作れ!というミッションだったので
50kくらいにしておきました。
1 | http { |
取り急ぎは上記設定でwarn は吐き出されないようになりました。
もしまた吐き出されるようになった場合は、
その数値を元にインスタンスのスケールアップも検討しようと思います。
ちなみにバッファのキャッシュ先ディレクトリ(client_body_temp_path
)はデフォルトで/var/cache/nginx/client
となっていたので設定しませんでした。
以上です。
Elasticsearch のインストールされているサーバ内での作業を想定しています。
1 | curl -XGET localhost:9200/_aliases?pretty |
1 | { |
pretty
をクエリストリングに指定すると1 | $ curl -XGET localhost:9200/_mapping?pretty |
1 | { |
1 | $ cd /etc/elasticsearch/ |
以下のように設定し保存
1 | { |
1 | curl -X PUT localhost:9200/_template/template_1 --data @el_mapping.json |
1 | curl -X GET localhost:9200/_template/?pretty |
1 | curl -X DELETE localhost:9200/_template/template_1 |
1 | "dynamic_templates":[{ |
インデックスを指定し削除します。
1 | curl -X DELETE localhost:9200/logstash-2015.09.22 |
1 | $ curl -XDELETE 'http://localhost:9200/*' |
サービス開始前で試行錯誤してるときに何度か利用しました。
極力使わない。
1 | $ curl -XDELETE 'http://localhost:9200/.kibana' |
各フィールド設定は以下まとめていただいている方がいらっしゃいました。
ありがとうございます♪
ある日、Kibana > Discover にアクセスすると以下のようなエラー表示で
Searchingが完了できない状態に陥った。
1 | tail -f /var/log/elasticsearch/elasticsearch.log |
キャストがうまくいってないバグ出てました。
マッピングがうまくいってないのかな?
と問題を想定して色々設定変更していたらここにたどり着いた。
これで治った!
GithubでもClose Issueとして残ってましたね。
エラーログをslackに通知させるようにしてるとほんと便利。
時たまなんですが、なんだこれ?というのが送られてくる。
その一つが掲題のエラー。
1 | duplicate MIME type "text/html" in /etc/nginx/nginx.conf |
nginx.confを見てみると
gzip_typesで設定した text/html
でした。
直訳すると
1 | /etc/nginx/nginx.confでMIMEタイプ「text/html」が重複しています。 |
じゃ、消せばいいかなってことなので消せば解決しました。
/etc/nginx/nginx.conf
1 | gzip on; |
結論を言うと
ngx_http_gzip_module
をインストールしておりgzip on
としているtext/html
がMIMEタイプが指定されます。以下公式サイトを見るとわかります。
text/html
タイプは常に圧縮対象としているそうです。
なので、gzip で圧縮処理をする場合はtext/html
が不要です。
ということでした。
GeoIP Libraryを設定後、access.logにアクセスポイントを表示
GeoIPライブラリを提供しているMaxMindサイトから取得可能です。
有料版もありますが、取り急ぎは無料版で試します。
1 | # mkdir -p /usr/share/GeoIP/ |
※ログのフォーマットはltsv
にしています。
1 | # vim /etc/nginx/nginx.conf |
1 | http { |
1 | # systemctl restart nginx |
1 | # tail -f /var/log/nginx/access.log |
取得できました♪
これをfluentdで流してKibanaでかっこよく表示しましょう。
以上です。
元々yumでNignxをインストールしていましたが
IP制限やfluentdでip情報を割り出す必要があり
geoIPが必要になりました。
その為には
新たにNginxをソースからダウンロードしLibrary追加しコンパイルし直す必要があります。
1 | # nginx -V |
--with-http_geoip_module
がない!
ので geoIPをインストールしてNginxをコンパイルし直します。
1 | $ sudo yum install -y GeoIP GeoIP-devel |
※今回はNginxは1.8.0なのでnginx-1.8.0.tar.gzをダウンロードします。
1 | $ cd /usr/local/src |
先ほどnginx -V
で確認したconfigure arguments
をコピって
そこに--with-http_geoip_module
を追加してコンパイルする。
1 | $ cd /usr/local/src/nginx-1.8.0 |
1 | nginx -V |
--with-http_geoip_module
が
利用可能なモジュールとして設定されていることが確認できました。
以下設定ファイルも特に変更することなくsystemctl restart nginx
しても問題なかったです。
1 | /etc/nginx/nginx.conf |
以上です。