Posts Tagged ‘internet’

Webserver switched from lighttpd to nginx

Saturday, December 5th, 2009

For some time now, I have been experiencing weird bugs with my webserver. I was running a lighttpd, version 1.4.22. Two annoying bugs occurred:

The first was more a nuisance when uploading files through a POST, which resulted in error 417 "Expectation failed" on the first attempt (while on the second it worked).

The second bug resulted in a reproducible denial-of-service, as it crashed the webserver. It occurred whenever a firefox-webbrowser attempted to connect to the server through HTTPS.

I hoped these bugs to be solved by upgrading from 1.4.22 to 1.4.23 and 1.4.24, but that did not happen. As I needed a solution to these bugs, I decided to switch from lighttpd to nginx.

The transition went surprisingly smooth. The configuration is a bit more complicated as it was with lighttpd, but easily set up and quite good explained on nginx's website, too.

Now, nginx runs all my websites, interacts with PHP through FastCGI, and problems seem to be gone.

Smartphone-Experiments, Part 1

Sunday, March 30th, 2008

Over the last two days, I finally found a few hours to experiment with my Windows Mobile driven smartphone, an HTC Touch (ok, it's branded, so it's aka MDA Touch).

With Windows, it syncs out-of-the-box, what a surprise, but with linux, things are a bit more interesting. I am running a Debian/Lenny on my laptop, an old Acer Travelmate 732TL, a Pentium III-500 with 256MB RAM. My intention was to enable the laptop to synchronize with the phone through a USB-cable-connection, and to use the phone for internet-connections. I installed the SynCE-suite packages, along with multisync, and tried my luck. Well, what shall I say, it failed. After looking at the SynCE-manpages, I found out why: Windows Mobile smartphones require a special kernel-module to work properly. So I downloaded the module-sources from the SynCE-website, compiled and installed them, and tried again, running the following commands:

modprobe rndis_host
synce-serial-config ttyUSB0
synce-serial-start
pls

This time, it worked. I got my directory-listing. An ifconfig showed me this:

ppp0      Link encap:Point-to-Point Protocol
          inet addr:192.168.131.102  P-t-P:192.168.131.201  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:13 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:994 (994.0 B)  TX bytes:119 (119.0 B)

The two ip-addresses are the default-values of windows-mobile-phones. As far I as can tell, one should leave them as they are, since it does not seem to work with different ip-addresses (at least not for me, that is). Of course, you are free to try and comment on this ;) .

Internet-Connections

The next thing I tried now was to establish an internet-connection through the smartphone. From the phone's manual I knew there was a program for a shared internet-connection, where the telephone connected itself into the internet by using GPRS/EDGE, and acted as a router/nameserver for the connected computer. I activated that program from the programs-folder (in german, this program is called "Internetfreigabe"), selected "USB" for the connection to the computer, and the GPRS-profile, and then let the program connect to the internet. Though the telephone complained about ActiveSync being "active", it connected me to the internet. An ifconfig gave me now this output:

rndis0    Link encap:Ethernet  HWaddr 80:00:60:0f:e8:00
          inet addr:192.168.0.102  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::8200:60ff:fe0f:e800/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:8050  Metric:1
          RX packets:59 errors:53 dropped:0 overruns:0 frame:0
          TX packets:102 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6848 (6.6 KiB)  TX bytes:19488 (19.0 KiB)

I tried to ping my server using its ip the first time, and its name the second, and both worked fine: I was connected. However, further experiments showed that simply connecting the phone and loading the modules, and then activating the internet-connection on the phone would not work. And rndis0-interface would show up, yes, but it will look like this:

rndis0    Link encap:Ethernet  HWaddr 80:00:60:0f:e8:00
          inet addr:169.254.2.2  Bcast:169.254.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:8050  Metric:1
          RX packets:12 errors:9 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1124 (1.0 KiB)  TX bytes:7168 (7.0 KiB)

Take a good look at the ip-address, you will notice that it is different from the first two ifconfig-dumps, which used the same ip-adress. A connection will not be possible this way, it has to be set-up and established through synce-serial-config and synce-serial-start before.

Though I have installed Evolution, multisync, and several plugins/modules for both programs, I was not yet able to synchronize my telephone's address-book, calender, todo-list etc. with the laptop. May be Debian/lenny uses packages which are not as up-to-date as I would need it, I have take a further look into this, still. The most important two things, anyhow, being able to transfer files between telephone and laptop, as well as establishing an internet-connection for the laptop by using the telephone as a router/modem, are working now, and quite without an effort, too.

I will continue with my smartphone-experiments, so stay tuned! ;)