18 September, 2025
So, I've been running my website using nginx for quite some time now, and overall I'm very happy with its performance! I haven't run into any issues that I didn't cause, let's put it that way. Isn't that really the best that we can ask for? To be honest, I was initially one of the Apache faithful, since I like the idea of using such an old-school icon of internet functionality, but for whatever reason I found nginx easier to configure on my server. The server is also very underpowered running on a Pi Zero W v1, so nginx's fame for being lightweight and efficient is probably doing me some favors.
I've also been wanting to get more practice coding with Lua, because Second Life is preparing to roll out a new version of their scripting language called SLua which is a modification of Roblox's Luau language. I talk about all of this in a lot more detail here. Lucky for me, there's a Lua plugin for nginx! Now I know, I know, somebody out there is yelling at their screen right now telling me that I should just run OpenResty since that's basically nginx and Lua married together for all eternity, but here's the thing - the Pi Zero W is a 32-bit ARM system, so there's no official build of OpenResty for it. But nginx+Lua works fine, and let me tell you: It really works! It's nice and responsive even on my extremely modest hardware, and has plenty of little plugins in case I need some additional functionality. All you need to do in order to get it started working with your basic nginx installation is to download the libnginx-mod-http-lua package on Debian, nginx-mod-lua for Arch.
So, what have I been doing with nginx+Lua? Just sitting there staring at the screen? Adding some live-generated content onto my dead-HTML site? Nope! (Not yet, anyway...) I wrote a telnet proxy for Second Life! Basically, the webserver connects to a requested telnet address and relays the messages and responses through HTML. On the other side of things, I wrote a script in Second Life (in LSL, no SLua, since it's still not out yet) to send messages and print the responses to the resident's chat window. As far as I know, this kind of functionality has never existed in Second Life before, at least as far as I can see from the Marketplace. Not that there's a huge mass of people who were clamoring for telnet access, but I think it's kind of neat to add a new capability to my favorite virtual world. In case you're interested, the Marketplace link for the telnet terminal is here.
Overall, this whole experiment has been what I would consider a success! Some people have been playing with the new toy, which I offered for free on the Marketplace, and the little single-core 512MB server has been handling the load like a champ. There are some improvements that I can envision (multiple sessions through the same object in SL? A HUD-based attachment that secures communications and redirects chat using RLV so that you don't have to type a channel number before each message...), but I decided to release it as-is, and if anyone needs additional functionality I'm open to adding it. I also want to find some other projects to tune my Lua skills with. Basically, the possibilities are endless! I even wrote a little shell script using Lua yesterday instead of bash. It's a shame, because I kind of enjoy bash scripting, but I need to have some sort of preferences, I suppose...
What else could I do? There's a lot of little things that you can serve from a server, isn't there? I'll try to think of something a bit more complicated for my next project, maybe. I'm going to do my very best to keep this central site as simple as possible though, the css stylesheet that it uses is about as complex as I'm willing to go. Although...