Nginx+Lua開発環境のインストール
7536 ワード
まず、Nginxコアに多くのサードパーティモジュールを追加したOpenRestyを使用します.最大のハイライトは、Lua開発環境をデフォルトで統合し、NginxをWebサーバとして使用できるようにすることです.Nginxのイベントドライバモデルと非ブロックIOにより、高性能なWebアプリケーションを実現できます.またOpenRestyはMysql、Redis、Memcachedなど多くのコンポーネントを提供し、Nginx上でWebアプリケーションを開発するのがより便利で簡単です.現在、京東ではリアルタイム価格、秒殺、ダイナミックサービス、単品ページ、リストページなど、Nginx+Luaアーキテクチャが使用されており、他の会社ではタオバオ、どこへ行くかなどが使用されています.
インストール環境
インストール手順を参照http://openresty.org/#Installation.
1、ディレクトリ/usr/serversを作成し、その後、すべてのソフトウェアをこのディレクトリにインストールします.
2、インストール依存(私の環境はubuntuで、以下のコマンドでインストールできます.その他はopenrestyインストール手順を参照できます)
3、ngx_をダウンロードするopenresty-1.7.7.2.tar.gzと解凍
ngx_openresty-1.7.7.2/bundleディレクトリにはnginxコアと多くのサードパーティモジュールが格納されています.例えば、私たちが必要とするLuaとLuaJITがあります.
3、LuaJITを取り付ける
4、ngx_をダウンロードするcache_purgeモジュールnginxキャッシュをクリーンアップするためのモジュール
5、ダウンロードnginx_upstream_check_moduleモジュールustream健康診断用
6、ngx_をインストールするopenresty
--with***内蔵/統合モジュールをインストール--with-http_realip_moduleはユーザーの実際のipモジュール-with-pcre Perl互換性のある達式モジュール--with-luajit集積luajitモジュール--add-moduleはカスタムサードパーティモジュールを追加し、このようなngx_che_purge 7、/usr/serversディレクトリの下
インストールに成功した/usr/servers/luajit:luajit環境、luajitはjavaのjitに似ています.すなわち、インスタントコンパイルです.luaは解釈言語で、luajitを通じてluaコードをマシンコードに即時コンパイルすることができ、優れた性能を得ることができます./usr/servers/lualib:使用するluaライブラリには、redis、jsonライブラリなどのデフォルトのluaライブラリが用意されています.自分で開発したものやサードパーティのものをここに置くこともできます./usr/servers/nginx:インストールされたnginx;/usr/servers/nginx/sbin/nginx-Vでnginxバージョンとインストールされたモジュールを表示
8、nginxを起動する
次にnginx+lua開発環境を構成します
環境の設定
構成およびNginx HttpLuaModuleドキュメントの表示http://wiki.nginx.org/HttpLuaModule.
1、nginxを編集する.confプロファイル
2、http部分に以下の構成を追加する
3、開発を容易にするために、/usr/servers/nginx/confディレクトリの下にluaを作成します.conf
4、nginx.confのhttp部分にinclude luaを追加する.confにはこのファイルクリップが含まれています
5、テストが正常か
次のように表示される場合は、構成に成功しました.
nginx: the configuration file/usr/servers/nginx/conf/nginx.conf syntax is ok nginx: configuration file/usr/servers/nginx/conf/nginx.conf test is successful
HelloWorld
1、lua.confのserverセクションには、次の構成が追加されています.
2、構成が正しいかどうかをテストする
3、nginxを再起動する
4、アクセスhttp://192.168.1.6/lua(自分の機器は実際の状況に応じてipを交換します)
hello world
5、luaコードファイル
私たちはluaコードをnginx構成に置くと、luaのコードが増加するにつれて構成ファイルが長く維持されにくくなるので、luaコードを外部ファイルに移動して格納する必要があります.
そしてlua.confをに変更
ここでconf/lua/test.luaは、絶対パス/usr/servers/nginx/conf/lua/testを用いることもできる.lua.
6、lua_code_cache
デフォルトではlua_code_Cacheはオープン、すなわちluaコードをキャッシュする、すなわちluaコードの変更のたびにreload nginxが有効になる必要があり、開発段階でlua_code_cache off;キャッシュを閉じて、デバッグ時にluaコードを変更するたびにreload nginxを必要としません.ただし、本番環境ではキャッシュをオンにすることを忘れないでください.
オンにするとreload nginxに次のようなアラームnginxが表示されます:[alert]lua_code_cache is off; this will hurt performance in/usr/servers/nginx/conf/lua.conf:8 7、エラーログ実行中にエラーが発生した場合は、エラーログの表示を忘れないでください.
ここで私たちの基本的な環境を構築しました.nginx+luaプロジェクト構築
今後、私たちのnginx lua開発ファイルはますます多くなります.私たちはそれをプロジェクト化し、開発しやすいようにしなければなりません.プロジェクトディレクトリの構造は次のとおりです:example example.conf---このプロジェクトのnginxプロファイルlua---私たちのluaコードtest.lua lualib---lua依存ライブラリ/サードパーティ依存*.lua *.soではlualibもプロジェクトに置くメリットは、後で導入するときに一緒に導入し、依存のコピーを忘れて依存が欠けているサーバを防ぐことです.プロジェクトを/usr/exampleディレクトリの下に配置します. /usr/servers/nginx/conf/nginx.confプロファイルは次のとおりです(ここではプロファイルを最小化します).
絶対パスには、lua依存ライブラリとnginxプロジェクトプロファイルが含まれています. /usr/example/example.confプロファイルは次のとおりです.
luaファイルは絶対パス/usr/example/lua/testを使用します.lua.
これでexampleをsvnに投げることができます.
では、Nginx+Lua開発環境のインストール構成について今日お話しします.その後、nginx+lua開発の内容を引き続き説明します.
インストール環境
インストール手順を参照http://openresty.org/#Installation.
1、ディレクトリ/usr/serversを作成し、その後、すべてのソフトウェアをこのディレクトリにインストールします.
mkdir -p /usr/servers
cd /usr/servers/
2、インストール依存(私の環境はubuntuで、以下のコマンドでインストールできます.その他はopenrestyインストール手順を参照できます)
apt-get install libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl
3、ngx_をダウンロードするopenresty-1.7.7.2.tar.gzと解凍
wget http://openresty.org/download/ngx_openresty-1.7.7.2.tar.gz
tar -xzvf ngx_openresty-1.7.7.2.tar.gz
ngx_openresty-1.7.7.2/bundleディレクトリにはnginxコアと多くのサードパーティモジュールが格納されています.例えば、私たちが必要とするLuaとLuaJITがあります.
3、LuaJITを取り付ける
cd bundle/LuaJIT-2.1-20150120/
make clean && make && make install
ln -sf luajit-2.1.0-alpha /usr/local/bin/luajit
4、ngx_をダウンロードするcache_purgeモジュールnginxキャッシュをクリーンアップするためのモジュール
cd /usr/servers/ngx_openresty-1.7.7.2/bundle
wget https://github.com/FRiCKLE/ngx_cache_purge/archive/2.3.tar.gz
tar -xvf 2.3.tar.gz
5、ダウンロードnginx_upstream_check_moduleモジュールustream健康診断用
cd /usr/servers/ngx_openresty-1.7.7.2/bundle
wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/v0.3.0.tar.gz
tar -xvf v0.3.0.tar.gz
6、ngx_をインストールするopenresty
cd /usr/servers/ngx_openresty-1.7.7.2
./configure --prefix=/usr/servers --with-http_realip_module --with-pcre --with-luajit --add-module=./bundle/ngx_cache_purge-2.3/ --add-module=./bundle/nginx_upstream_check_module-0.3.0/ -j2
make && make install
--with***内蔵/統合モジュールをインストール--with-http_realip_moduleはユーザーの実際のipモジュール-with-pcre Perl互換性のある達式モジュール--with-luajit集積luajitモジュール--add-moduleはカスタムサードパーティモジュールを追加し、このようなngx_che_purge 7、/usr/serversディレクトリの下
cd /usr/servers/
ll
インストールに成功した/usr/servers/luajit:luajit環境、luajitはjavaのjitに似ています.すなわち、インスタントコンパイルです.luaは解釈言語で、luajitを通じてluaコードをマシンコードに即時コンパイルすることができ、優れた性能を得ることができます./usr/servers/lualib:使用するluaライブラリには、redis、jsonライブラリなどのデフォルトのluaライブラリが用意されています.自分で開発したものやサードパーティのものをここに置くこともできます./usr/servers/nginx:インストールされたnginx;/usr/servers/nginx/sbin/nginx-Vでnginxバージョンとインストールされたモジュールを表示
8、nginxを起動する
/usr/servers/nginx/sbin/nginx
次にnginx+lua開発環境を構成します
環境の設定
構成およびNginx HttpLuaModuleドキュメントの表示http://wiki.nginx.org/HttpLuaModule.
1、nginxを編集する.confプロファイル
vim /usr/servers/nginx/conf/nginx.conf
2、http部分に以下の構成を追加する
#lua , ”;” , ”;;” , /usr/servers/nginx
lua_package_path "/usr/servers/lualib/?.lua;;"; #lua
lua_package_cpath "/usr/servers/lualib/?.so;;"; #c
3、開発を容易にするために、/usr/servers/nginx/confディレクトリの下にluaを作成します.conf
#lua.conf
server {
listen 80;
server_name _;
}
4、nginx.confのhttp部分にinclude luaを追加する.confにはこのファイルクリップが含まれています
include lua.conf;
5、テストが正常か
/usr/servers/nginx/sbin/nginx -t
次のように表示される場合は、構成に成功しました.
nginx: the configuration file/usr/servers/nginx/conf/nginx.conf syntax is ok nginx: configuration file/usr/servers/nginx/conf/nginx.conf test is successful
HelloWorld
1、lua.confのserverセクションには、次の構成が追加されています.
location /lua {
default_type 'text/html';
content_by_lua 'ngx.say("hello world")';
}
2、構成が正しいかどうかをテストする
/usr/servers/nginx/sbin/nginx -t
3、nginxを再起動する
/usr/servers/nginx/sbin/nginx -s reload
4、アクセスhttp://192.168.1.6/lua(自分の機器は実際の状況に応じてipを交換します)
hello world
5、luaコードファイル
私たちはluaコードをnginx構成に置くと、luaのコードが増加するにつれて構成ファイルが長く維持されにくくなるので、luaコードを外部ファイルに移動して格納する必要があります.
vim /usr/servers/nginx/conf/lua/test.lua
#
ngx.say("hello world");
そしてlua.confをに変更
location /lua {
default_type 'text/html';
content_by_lua_file conf/lua/test.lua; # nginx
}
ここでconf/lua/test.luaは、絶対パス/usr/servers/nginx/conf/lua/testを用いることもできる.lua.
6、lua_code_cache
デフォルトではlua_code_Cacheはオープン、すなわちluaコードをキャッシュする、すなわちluaコードの変更のたびにreload nginxが有効になる必要があり、開発段階でlua_code_cache off;キャッシュを閉じて、デバッグ時にluaコードを変更するたびにreload nginxを必要としません.ただし、本番環境ではキャッシュをオンにすることを忘れないでください.
location /lua {
default_type 'text/html';
lua_code_cache off;
content_by_lua_file conf/lua/test.lua;
}
オンにするとreload nginxに次のようなアラームnginxが表示されます:[alert]lua_code_cache is off; this will hurt performance in/usr/servers/nginx/conf/lua.conf:8 7、エラーログ実行中にエラーが発生した場合は、エラーログの表示を忘れないでください.
tail -f /usr/servers/nginx/logs/error.log
ここで私たちの基本的な環境を構築しました.nginx+luaプロジェクト構築
今後、私たちのnginx lua開発ファイルはますます多くなります.私たちはそれをプロジェクト化し、開発しやすいようにしなければなりません.プロジェクトディレクトリの構造は次のとおりです:example example.conf---このプロジェクトのnginxプロファイルlua---私たちのluaコードtest.lua lualib---lua依存ライブラリ/サードパーティ依存*.lua *.soではlualibもプロジェクトに置くメリットは、後で導入するときに一緒に導入し、依存のコピーを忘れて依存が欠けているサーバを防ぐことです.プロジェクトを/usr/exampleディレクトリの下に配置します. /usr/servers/nginx/conf/nginx.confプロファイルは次のとおりです(ここではプロファイルを最小化します).
#user nobody;
worker_processes 2;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type text/html;
#lua , ”;;” , /usr/servers/nginx
lua_package_path "/usr/example/lualib/?.lua;;"; #lua
lua_package_cpath "/usr/example/lualib/?.so;;"; #c
include /usr/example/example.conf;
}
絶対パスには、lua依存ライブラリとnginxプロジェクトプロファイルが含まれています. /usr/example/example.confプロファイルは次のとおりです.
server {
listen 80;
server_name _;
location /lua {
default_type 'text/html';
lua_code_cache off;
content_by_lua_file /usr/example/lua/test.lua;
}
}
luaファイルは絶対パス/usr/example/lua/testを使用します.lua.
これでexampleをsvnに投げることができます.
では、Nginx+Lua開発環境のインストール構成について今日お話しします.その後、nginx+lua開発の内容を引き続き説明します.