nginx教程
Aug 08, 2016 am 09:23 AMNginx與Lua
火云邪神語錄:天下武功,無堅不破,唯快不破!Nginx的看家本領(lǐng)就是速度,Lua的拿手好戲亦是速度,這兩者的結(jié)合在速度上無疑有基因上的優(yōu)勢。
最先將Nginx,Lua組合到一起的是OpenResty,它有一個ngx_lua模塊,將Lua嵌入到了Nginx里面;隨后Tengine也包含了ngx_lua模塊。至于二者的區(qū)別:OpenResty是Nginx的Bundle;而Tengine則是Nginx的Fork。值得一提的是,OpenResty和Tengine均是國人自己創(chuàng)建的項目,前者主要由春哥和曉哲開發(fā),后者主要由淘寶打理。
至于OpenResty和Tengine孰優(yōu)孰劣,留給大家自己判斷,如下資料可供參考:
- ngx_openresty: an Nginx ecosystem glued by Lua
- 淘寶網(wǎng)Nginx應(yīng)用、定制與開發(fā)實戰(zhàn)
推薦看看春哥在Tech-Club上關(guān)于『由Lua粘合的Nginx生態(tài)環(huán)境』的演講實錄,有料!
安裝
需要最新版的Nginx,LuaJIT,ngx_devel_kit,ngx_lua等安裝文件。
安裝Lua或者LuaJIT都是可以的,但是出于效率的考慮,推薦安裝LuaJIT。
因為安裝在缺省路徑,所以LuaJIT對應(yīng)的lib,include均在/usr/local目錄里。
下面就可以編譯Nginx了:
試著啟動一下Nginx看看,如果你運氣不好的話,可能會遇到如下錯誤:
cannot open shared object file: No such file or directory
這是神馬情況?可以用ldd命令來看看:
此類問題通常使用ldconfig命令就能解決:
再試著啟動Nginx看看,應(yīng)該就OK了。
應(yīng)用
我們先用一個簡單的程序來暖暖場:把下面的代碼加入到Nginx的配置文件nginx.conf,并重啟Nginx,然后瀏覽,就能看到效果了。
在深入學(xué)習(xí)ngx_lua之前,建議大家仔細閱讀一遍春哥寫的Nginx教程。
這里我就說關(guān)鍵的:Nginx配置文件所使用的語言本質(zhì)上是『聲明性的』,而非『過程性的』。Nginx處理請求的時候,指令的執(zhí)行并不是由定義指令時的物理順序來決定的,而是取決于指令所屬的階段,Nginx常用的階段按先后順序有:rewrite階段,access階段,content階段等等。演示代碼中的set指令屬于rewrite階段,content_by_lua指令屬于content階段,如果試著把兩條指令的順序交換一下,會發(fā)現(xiàn)程序依然能夠正常運行。
下面我們嘗試結(jié)合Redis寫個更實戰(zhàn)一點的例子。
首先,我們需要創(chuàng)建一個Redis配置文件config.json,內(nèi)容如下:
然后,我們創(chuàng)建一個解析配置文件的腳本init.lua,其中用到了Lua CJSON模塊:
說明:代碼里用到了共享內(nèi)存,這樣就不必每次請求都解析一遍配置文件了。
接著,我們創(chuàng)建一個渲染內(nèi)容的腳本content.lua,用到了Resty Redis模塊:
說明:建議把Resty Redis模塊放到vendor目錄下,稍后在Nginx中統(tǒng)一設(shè)置。
最后,我們需要在Nginx配置文件里設(shè)置一下:
說明:為了方便調(diào)試,我關(guān)閉了lua_code_cache,如果是生產(chǎn)環(huán)境,應(yīng)該開啟它。
另外,安裝CJSON的時候,需要注意Makefile文件里頭文件的路徑,缺省是:
如果安裝的是LuaJIT的話,最好把頭文件拷貝到相應(yīng)目錄:
…
我最近參與的一個項目,提供了一些用于Web輪詢的接口,都是用Nginx+Lua實現(xiàn)的,雖然總共只有十幾臺服務(wù)器,但是每天可以提供幾十億次的請求量,賊拉拉的強。
最后,讓我引用某位屌絲的語錄做結(jié)束語吧:Lua,未婚男性程序員的最愛。
此條目由老王發(fā)表在Technical分類目錄,并貼了Lua、Nginx標(biāo)簽。將固定鏈接加入收藏夾。《NGINX與LUA》上有29條評論
以上就介紹了nginx教程,包括了方面的內(nèi)容,希望對PHP教程有興趣的朋友有所幫助。

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Bagaimana cara mengkonfigurasi nginx di Windows? Pasang Nginx dan buat konfigurasi hos maya. Ubah suai fail konfigurasi utama dan sertakan konfigurasi hos maya. Mulakan atau Muat semula Nginx. Uji konfigurasi dan lihat laman web. Selektif membolehkan SSL dan mengkonfigurasi sijil SSL. Selektif tetapkan firewall untuk membolehkan trafik port 80 dan 443.

Docker Container Startup Langkah: Tarik Imej Bekas: Run "Docker Pull [Mirror Name]". Buat bekas: Gunakan "Docker Buat [Pilihan] [Nama Mirror] [Perintah dan Parameter]". Mulakan bekas: Jalankan "Docker Start [Nama Container atau ID]". Semak Status Kontena: Sahkan bahawa bekas sedang berjalan dengan "Docker PS".

Anda boleh menanyakan nama kontena Docker dengan mengikuti langkah -langkah: Senaraikan semua bekas (Docker PS). Tapis senarai kontena (menggunakan arahan grep). Mendapat nama kontena (terletak di lajur "Nama").

Bagaimana untuk mengesahkan sama ada nginx dimulakan: 1. Gunakan baris arahan: status sistem sistem nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. Periksa sama ada port 80 dibuka; 3. Semak mesej permulaan Nginx dalam log sistem; 4. Gunakan alat pihak ketiga, seperti Nagios, Zabbix, dan Icinga.

Buat bekas di Docker: 1. Tarik Imej: Docker Pull [Nama Cermin] 2. Buat bekas: Docker Run [Options] [Mirror Name] [Command] 3. Mulailah bekas: Docker Start [Nama Container]

Soalan: Bagaimana untuk memulakan nginx? Jawapan: Pasang Nginx Startup Nginx Verification Nginx adalah nginx mula meneroka pilihan permulaan lain secara automatik Mula nginx

Nginx dan Apache mempunyai kelebihan dan kekurangan mereka sendiri dan sesuai untuk senario yang berbeza. 1.Nginx sesuai untuk senario penggunaan sumber yang tinggi dan rendah. 2. Apache sesuai untuk senario di mana konfigurasi kompleks dan modul yang kaya diperlukan. Dengan membandingkan ciri teras mereka, perbezaan prestasi, dan amalan terbaik, anda boleh membantu anda memilih perisian pelayan yang paling sesuai dengan keperluan anda.

Petua praktikal untuk meningkatkan prestasi phpStorm dalam sistem CentOS Artikel ini menyediakan pelbagai kaedah untuk membantu anda mengoptimumkan prestasi phpstorm dalam sistem CentOS dan dengan itu meningkatkan kecekapan pembangunan. Sebelum melaksanakan sebarang langkah pengoptimuman, pastikan anda membuat sandaran data penting dan mengesahkan keputusan dalam persekitaran ujian. 1. Pengoptimuman peringkat sistem dan menyelaraskan perkhidmatan sistem: melumpuhkan perkhidmatan sistem yang tidak perlu dan daemon untuk mengurangkan penggunaan sumber sistem. Mod Interfaceless: Beralih ke Mod Interfaceless boleh menjimatkan sumber dengan ketara jika anda tidak memerlukan antara muka grafik. Nyahpasang perisian yang berlebihan: Keluarkan pakej dan perkhidmatan perisian yang tidak lagi digunakan dan membebaskan sumber sistem. 2. Pengoptimuman Konfigurasi PHP Dayakan Opcache: Pasang dan Konfigurasi Sambungan Opcache untuk dipaparkan
