|
||||
Morning Web Site Problems By Richard Rost 3 years ago Sorry for any trouble you guys might have experienced this morning. Long story short: I upgraded the firewall on my web server and it caused a whole bunch of other stuff to break. Everything seems to be OK now, but I just wanted to apologize to anyone who was inconvenienced. Long story coming up... You might not have asked for it, but dammit, I'm venting and you're gonna get it. So the order form that I use is one that I built myself almost 20 years ago. It works, but it's got some limitations. Since most of you are Access nerds, I'll clue you in how how I built it. I didn't know much about web-based database design 20 years ago so I generate HTML pages in my Access database where the course information is stored, and then I FTP those pages up to the web server. It happens with one click. The HTML pages are server-side #include'd into my ASP pages so it's seamless to the end user. It has worked great for many years with minor upgrades (mostly cosmetic). I've known for a while now that I would be needing to upgrade it soon because as I have added lots of courses over the years, these files are starting to get pretty big. Every HTML page has the code for EVERY course in my database in it. Not really the best way to do it. So a problem exists whenever I post a new update. Since the HTML pages are static files on the server, GoDaddy tends to cache them. When I post an update, I have to sometimes wait a day, maybe two for the updated file to show up. That sucks when I release a new class. So last night I started building a new shopping cart. It's been a long time coming. Spent a few hours on it. It's coming along nicely. Earlier in the day, I emailed GoDaddy support and I asked them if there's a way to turn that cache off. Of course there is, if I upgraded to a better firewall service for $10 a month. OK, fine. Upgrade me. I still need to build the new shopping cart anyways (to join the 21st Century) but at least I can get the old shopping cart working right now and people can actually order Developer 25. So I told them to set up the new firewall. They said, "OK, we'll have it up and running by tomorrow." Great. This morning I'm awaken to a server alarm in my office (which is right next to my bedroom) and on my phone. Plus I've got a dozen emails from you kind folks telling me the site is down. One thing I didn't plan on is that the new firewall is translating the IP addresses of everyone who visits my site. So when you hit my server, you all look like you're coming from the same IP address. That's bad. I use that for separating out junk traffic on my server. Years ago I wrote my own bot filtering software. Bots that misbehave tend to request dozens, sometimes hundreds of pages per minute. When my server sees this, it blocks the IP address. Well, since you all look to my server like you're coming from the same IP address now, you see the problem. To compound this mess, I couldn't log in via FTP to my web site to disable my own bot software. The firewall was blocking FTP. So I had to figure out how to get around that. Turns out I have to now FTP direct to the IP address of the server. OK, not a big deal. I can live with that, provided they don't change my IP. So now I've got to figure out how to deal with this IP problem. Granted, I could just disable my IP blocker, but I like it. Plus, I like knowing where my traffic is coming from. It's important for verifying credit cards (if my site sees someone use an address in New York but their IP address says some other country, the order gets flagged for manual approval). Turns out that when they install the firewall the service adds a new variable to the ASP server variables that you can read called HTTP_X_SUCURI_CLIENTIP. So now I have to go through my entire website and change whatever code looks for a real IP address to this new server address. That's going to be fun. So that is how I spent my morning today instead of recording video which is what I should be doing, especially since I'm behind on several projects. How's your day been?
|
||
| |||