Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

luaに関するJxckのブックマーク (13)

  • Goでプロビジョニングツールを作った - オープンソースこねこね

    GitHub - kohkimakimoto/cofu: Minimum configuration management tool written in Go.github.com CofuというサーバプロビジョニングツールをGoで実装しました。Itamaeを参考に作りました。実装言語の違い(ItamaeはRubyによる実装)はありますが、外部仕様、内部実装、共にかなり似せて作ってあるので、ItamaeまたはItamaeが参考にしているchefを使ったことがあると、理解は簡単かと思います。特徴をざっくり説明すると、 ローカルでのプロビジョニングのみ対応。SSHなどでのリモートサーバのプロビジョニングはサポートしない Goなので実行ファイル一個で動く。導入が簡単 レシピはLuaのDSLで記述する 今のところ動作プラットフォームはRedHat(CentOS)のみをサポート あたりでしょうか。

    Goでプロビジョニングツールを作った - オープンソースこねこね
  • 自作でイベント駆動型サーバ作るのツライ問題とlua-nginx-module - NaCl Blog

    何の因果かわかりませんが、お仕事でちょっと賢いリバースプロキシサーバ(以降、RPサーバ)を作る機会が2回ありました。 HTTPヘッダの内容によってプロキシ先のサーバを動的に切り替えるようなものです。 この要件を満たすため、RPサーバには以下のようなプログラムが必要になります。 HTTPヘッダの内容を知るためにHTTPリクエストをパース プロキシ先のサーバへHTTPリクエストをプロキシ プロキシ先のサーバはRedisから取得 レスポンスをクライアントへ返す 大量のリクエストも捌ける 1回目はRubyとI/O多重化のライブラリを使ってイベント駆動型のRPサーバを自作してみました。 が、振り返ってみるとこれは失敗でした。 なぜ失敗だったのか? Rubyでイベント駆動型のサーバを書こうとすると様々なものが途端に大変になります。 イベント駆動型サーバではほとんどの箇所でブロックする処理を書けません。

    Jxck
    Jxck 2016/03/24
    lua-nginx-module でイベント駆動ノンブロッキングバランサの話
  • ハイパフォーマンスngx_lua | メルカリエンジニアリング

    Site Reliability Engineering(SRE) Teamの@cubicdaiyaです。 今回は数あるnginxのサードパーティモジュールの中でも一際強力で、メルカリでも活用しているngx_luaの便利な活用方法や最適化集について紹介します。 ngx_luaは軽量スクリプト言語のLuaでnginxを拡張できるモジュールです。 nginxの設定ファイル内にLuaのコードを埋め込んだり、nginxの拡張モジュールをCではなくLuaで開発することができます。以下はngx_luaにおける「Hello, World!」です。 location / { content_by_lua 'ngx.say("Hello, World!")'; } 上記のロケーションにHTTPでアクセスするとnginxはボディが「Hello, World!」のレスポンスを返します。 なお、先月末にリリースさ

    ハイパフォーマンスngx_lua | メルカリエンジニアリング
    Jxck
    Jxck 2015/11/25
  • Lua 5.1 言語仕様メモ - Qiita

    Lua 5.1 リファレンスマニュアル の第2章と Programming in Lua プログラミング言語Lua公式解説書 の気になった部分のメモです。 間違いや誤解があるかもしれないので、正確な情報はリンク先か原文を参照することをお勧めいたします。 書籍の方は通販で手に入れるのが難しいようなので、リアル書店で見つけた場合は入手しておくとよいかもしません。 -- メモ 値と型 Lua は動的型付け 変数は型を持たない 値が型を持つ 型定義の構文はない 全ての値がファーストクラス いかなる値も変数に格納できる 他の関数に引数として与えられる 全ての値は関数の戻り値にできる 基型8種 nil nil値の型 というか、この型の値は nil しかない 役に立つ値がない、ということを表す テーブル要素の削除や、グローバル変数の削除にも使われる ただの Null値 という感じではない ブーリアン

    Lua 5.1 言語仕様メモ - Qiita
    Jxck
    Jxck 2014/05/08
  • Lua:LuaRocksでパッケージ管理

    ふと Lua を使いたくなったので、まずはパッケージ管理ツールの LuaRocks をインストールしてみた(RubyRubyGems、Python の pip のようなもの)。 最終目標 LuaRocks で md5 のライブラリをインストールし、Lua から md5 ライブラリを呼び出す。 環境は 64 ビットの Ubuntu と CentOS。 $ echo -n | md5sum d41d8cd98f00b204e9800998ecf8427e - $ lua -lmd5 -e 'print(md5.sumhexa(""))' d41d8cd98f00b204e9800998ecf8427e Ubuntu(64 bit) & apt-get 編 まずは 64-bit の Ubuntu で  LuaRocks を apt-get でインストールする方法。 LuaRocks のイン

    Lua:LuaRocksでパッケージ管理
    Jxck
    Jxck 2013/12/23
  • Nginx + Lua から MySQL を使う - 昼メシ物語

    この記事は MySQL Casual Advent Calendar 2013 の 12 日目です。 みんな大好き Nginx + Lua ですが、その Lua から MySQL が叩けるとなると、Nginx だけでウェブアプリケーションが書けちゃうという夢が広がりますね。 難しそうというイメージがあるかもしれませんが、実は OpenResty を使うと、そんな環境が簡単に作れてしまうので、今日はその方法を紹介します。 ngx_openresty のインストール 今回は Ubuntu 12.04 での例ですが、ほとんど同様の手順で CentOS 6.5 でも動くことを確認しています。 *1 $ sudo apt-get -y install gcc make libpcre3-dev libssl-dev perl5 wget $ sudo apt-get -y install libmy

    Nginx + Lua から MySQL を使う - 昼メシ物語
    Jxck
    Jxck 2013/12/12
  • Nginx lua

    4. Luaとは ブラジルの Pontifical Catholic University of Rio で開発されているプログラミング言語 埋め込み型のプログラミング言語として開発され、 ゲーム業界を中心に浸透、現在は汎用的なプログラ ミング言語として一定の地位を得ている ガーベジコレクション、コルーチン 6. OpenResty nginx-lua の現在のメンテナの agentzh (章亦春さ ん) が提供しているバンドル つぎのモジュールが全部入り array-var / auth-request / coolkit / echo / encrypted-session / forminput / headers-more / iconv-nginx / lua / memc / postgres / redis / redis2 / set-misc / srcache / xss

    Nginx lua
    Jxck
    Jxck 2013/12/04
  • OpenResty® - Open source

    OpenResty® is a full-fledged web platform that integrates our enhanced version of the Nginx core, our enhanced version of LuaJIT, many carefully written Lua libraries, lots of high quality 3rd-party Nginx modules, and most of their external dependencies. It is designed to help developers easily build scalable web applications, web services, and dynamic web gateways. By taking advantage of various

    Jxck
    Jxck 2013/09/03
  • lua-nginx-module の紹介 ならびに Nginx+Lua+Redisによる動的なリバースプロキシの実装案 - hibomaの日記

    Nginxは非常に強力なhttpdですが、独自のモジュールを実装しようとするとこれまた非常に敷居が高い印象です。 追記 この記事よりも前に http://openresty.org/#DynamicRoutingBasedOnRedis でほとんど同じ内容のエントリが書かれていました。こちらも参照ください モジュールの開発はむずかしい まず開発用のドキュメントはほとんどありません。必然 既存のモジュールをお手としますが、コメントも少ないのでソースだけが頼りです。 {ファイル,ネットワーク} I/O を伴う処理では、Nginxのノンブロッキング/イベントドリブンのアーキテクチャにのっとってコールバックを駆使したCで実装する必要があり、LLで育ったゆとり脳では太刀打ちできませんでした lua-nginx-module が代わりになるかも なんらかのNginxモジュールを開発しなければならない

    lua-nginx-module の紹介 ならびに Nginx+Lua+Redisによる動的なリバースプロキシの実装案 - hibomaの日記
    Jxck
    Jxck 2013/09/03
  • RedisのLuaで時間のかかる処理をするとどうなるか? - (ひ)メモ

    Redis は基的にシングルスレッド、イベントドリブンモデルなので、時間のかかるLua スクリプトを実行したらどうなるかというのは想像に難くないのですが確認してみました。 Redis は 2.6.14 です。 redis-cli eval 'while true do print("hello") end' 0な感じのを実行します。 実行中に、別クライアントから GET, INFO, PING すると全てブロックされて結果が返ってきません。 redis.conf で lua-time-limit 5000 と設定している場合は、5秒後に redis-server のログに [18068] 22 Jul 13:51:23.798 # Lua slow script detected: still in execution after 5000 milliseconds. You can t

    RedisのLuaで時間のかかる処理をするとどうなるか? - (ひ)メモ
    Jxck
    Jxck 2013/07/23
  • WebSocket アプリの負荷分散 : DSAS開発者の部屋

    最近 SPDY と WebSocket がアツいですね。 再来週の SPDY & WS 勉強会 も、定員100名に対して 参加者が 247 名とかなりアツいことになっています。 その予習というわけでもないですが、最近 WebSocket を実サービスへの 導入方法を考えながら遊んでいたので、 WebSocket の負荷分散方法について 考えていることを書いておこうと思います。 ステートフルな WebSocket アプリケーション HTTP サービスは基的にステートレスな実装になっており、リクエストが来るたびに DBサーバーや memcached などのバックエンドから情報を取得して返していました。 この構成では Web アプリ自体は完全にステートレス化することができているので、 負荷分散機はラウンドロビン等のアプリケーションを無視した負荷分散をすることができました。 しかし、 WebSo

    WebSocket アプリの負荷分散 : DSAS開発者の部屋
  • 1日1億超のトラフィックをさばく広告配信システム「AdStir」を支える技術とエンジニアの実態を探る

    そんな中、モーションビートが提供する「AdStir」(アドステア)は、特にスマートフォン向けに特化した広告配信サービスとして注目を集めているものの一つである。AdStirは、アドサーバ機能、複数のアドネットワークを一元管理して広告配信の最適化を行うイールドオプティマイゼーション(SSP)機能を持ち、近年特に関心が高いリアルタイム入札(RTB)にも対応したサービスとなっている。 スマートフォンユーザーの急激な増加に伴う多様な広告配信ニーズの増大により、その基盤となるシステムに対しては高い信頼性と可用性、そして高速性が求められている。AdStirでは、どのような技術と体制によって、その要求に応えているのだろうか。モーションビート、メディアプラットフォーム事業部でAdStirの開発に携わる、メディアプラットフォーム事業部の落合省治氏とfukata氏に話を聞いた。 LVSをベースにnginxとLu

    1日1億超のトラフィックをさばく広告配信システム「AdStir」を支える技術とエンジニアの実態を探る
    Jxck
    Jxck 2012/10/31
    パフォーマンスは lua で解消な時代なのかな。
  • プログラマならば使うべき:GitHubでDNS管理ができる Luadns | Everyday Deadlock

    さきほどTwitterで流れてきたのでたまたま見つけたのですが、LuadnsというDNSホスティングサービスがかなり凄いです。Luaスクリプトでゾーン設定を書いてGitHubにpushするだけで即座にDNS設定ができてしまいます。 DNSホスティングサービスというと、多くの場合ブラウザを開いてログインしてコントロールパネルからポチポチと入力して送信して、、、という手順を踏まないと設定が更新できないわけですが、Luadnsは違います。example.com.lua ファイルをEmacsやVim(やその他エディタ)で開いてLuaスクリプトを書き、git commit & git push で設定が完了してしまいます。push にフックして Luadns の設定が自動的に更新されます。 マウスまで手を動かすのが無限に遠く感じられるプログラマにとっては、これほど素早く簡単にDNSが設定できるのはか

    Jxck
    Jxck 2012/02/28
    これすごくない?
  • 1