{"id":851,"date":"2010-09-09T10:54:53","date_gmt":"2010-09-09T15:54:53","guid":{"rendered":"http:\/\/icesquare.com\/wordpress\/?p=851"},"modified":"2012-08-14T18:24:32","modified_gmt":"2012-08-14T23:24:32","slug":"comments-on-running-webservers-at-home-part-1","status":"publish","type":"post","link":"https:\/\/icesquare.com\/wordpress\/comments-on-running-webservers-at-home-part-1\/","title":{"rendered":"Comments on running webservers at home &#8211; Part 1"},"content":{"rendered":"<p>I like to experiment all kind of computer technologies especially server applications. I am not one of those who is satisfied with just making a website and putting it in somewhere. I like the full control of the server because I like to try different combination of applications for performance tuning. For example, I doubt regular web hosting company allows you to host the entire system on a ram disk with a reasonable price tag. That&#8217;s why I choose to host a server at home. That&#8217;s a lot cheaper, plus I have the full control. However, running server application may generate lots of upstream traffic. That&#8217;s why most internet server providers (such as Charter) do not allow their customers to run any server related applications using their internet connection service. They do it by blocking most service related common ports, e.g., 80 (HTTP), 21 (FTP), 22 (SSH) etc. So there is really nothing you can do other than hosting your applications on different ports.<\/p>\n<p>Two years ago, I started hosting all of my websites using my own computers. I found a number of benefits.<\/p>\n<h2>Benefits of hosting websites at home<\/h2>\n<h3><strong>1. It saves me tons of money.<\/strong><\/h3>\n<p> I was paying $72\/year per domain for web hosting. Since I have more than ten domains, the total running costs per year is pretty high. This amount is really nothing comparing to the cost of the electricity.<\/p>\n<p>Monthly cost for web hosting:<\/p>\n<pre>\r\n$72 per domain\/yr * 10 domains \/ 12 months\r\n= $60 per domain \/ month\r\n<\/pre>\n<p>My monthly electricity cost at home, which includes everything such as running 10 non-gaming computers, washer, dryer, lighting etc:<\/p>\n<pre>\r\n$80 \/ month\r\n<\/pre>\n<p>I haven&#8217;t tried measuring the exact energy but you can imagine the electricity used by computers should be under $10 \/ month.<\/p>\n<h3><strong>2. It is fun (and environmental friendly too).<\/strong><\/h3>\n<p>I have few stone-age computers including a Pentium II laptop, a Mac G3 (speed wise similar to Pentium II), a Pentium M Celeron laptop etc. I integrated them to a web server farm (web clusters). Since running a web server does not require a lot of CPU power, they are doing okay for hosting low-traffic websites. Also, it is cool to show off my friends the <strong>global data center <\/strong>that I build for my websites.<\/p>\n<h3><strong>3. Your data is secured!<\/strong><\/h3>\n<p>Have you ever heard of any bank host their web sites on web hosting? No matter what type of encryption you use for your web applications, you still need to process the raw, original, and unencrypted data on the server side at one point. Processing confidential information on a shared server is like talking your secrets in a study room in a public library. You think you are in an isolated environment, but you can be surveillanced, it&#8217;s very simple and easy.<\/p>\n<p>Here is an example:<br \/>\nSupposes I have a web application which accepts the confidential information from my users, and all traffics are encrypted. After the confidential information is decrypted on the server-side, my web application processes the raw information and do further things.<\/p>\n<p>Let&#8217;s say the server environment is Apache + PHP + MySQL, the most popular combination of web application environment. Since they are all open-source, it is very easy to modify the source codes and log every single thing into a file, including the raw, original, unencrypted data processed by my web application.<\/p>\n<p>You may think this may require lots of work and it will never happen on you. What if your competitor wants your confidential information? It doesn&#8217;t cost much to hire someone to do it.<\/p>\n<p>Sounds scary?<\/p>\n<p>More scary things come along. Shared web hosting (hosting multiple domains on one single server) always come with lots of trouble that many people are ignored. <strong>In theory, every website on a shared hosting lives in a virtual, independent environment<\/strong>, think about it as a virtual machine like VMWare or Hyper-V. Practically, it is not easy to set up such environment (e.g., FreeBSD Jail) and many web hosting companies choose to go with a less difficult path, because customers will not realize it anyway. Now here is the interesting part, supposes my domain and your domain are hosted on the same server. I can access the resource at the operating system level first (which will required some hacking), then access your file after that. Now I have access your source code and I can do whatever I want.<\/p>\n<p style=\"font-size:1.1em; font-weight:bold;\">The most secure place in the world is the place that can be accessed by you, and no body else, i.e., your home, or any place you have full control<\/p>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I like to experiment all kind of computer technologies especially server applications. I am not one of those who is satisfied with just making a website and putting it in <a class=\"more-link\" href=\"https:\/\/icesquare.com\/wordpress\/comments-on-running-webservers-at-home-part-1\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[94,144,6],"tags":[8,171,48,9,57,172,82,77,84],"class_list":["post-851","post","type-post","status-publish","format-standard","hentry","category-computer-problems-computer-help-pc-support","category-sever-problem","category-technology","tag-apache","tag-freebsd","tag-linux","tag-mysql","tag-nginx","tag-php","tag-security","tag-webhosting","tag-webhostings"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/p1sqzr-dJ","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":3023,"url":"https:\/\/icesquare.com\/wordpress\/freebsdmysql-server-could-not-start\/","url_meta":{"origin":851,"position":0},"title":"[FreeBSD]MySQL server could not start","author":"Derrick","date":"November 22, 2012","format":false,"excerpt":"Today, I noticed that the MySQL server on my FreeBSD server is down for unknown reason, and today is Thanksgiving. Initially, I tried to restart the MySQL server using the following command, but it didn't help to restart the MySQL: sudo \/usr\/local\/etc\/rc.d\/mysql-server restart and it gives me the following error\u2026","rel":"","context":"In &quot;Computer Problems&quot;","block_context":{"text":"Computer Problems","link":"https:\/\/icesquare.com\/wordpress\/category\/technology\/computer-problems-computer-help-pc-support\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3134,"url":"https:\/\/icesquare.com\/wordpress\/php-network-error\/","url_meta":{"origin":851,"position":1},"title":"PHP Network Error","author":"Derrick","date":"February 21, 2013","format":false,"excerpt":"One of my PHP web applications stopped working today. After I investigated the issues, I noticed that this is a very famous, yet unsolved error. I have no idea why it happens, but I do have a work around solution for it. Basically, this article applies to you if you\u2026","rel":"","context":"In &quot;Computer Problems&quot;","block_context":{"text":"Computer Problems","link":"https:\/\/icesquare.com\/wordpress\/category\/technology\/computer-problems-computer-help-pc-support\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3474,"url":"https:\/\/icesquare.com\/wordpress\/the-easiest-way-to-improve-the-performance-of-mysql-server-on-freebsd\/","url_meta":{"origin":851,"position":2},"title":"The easiest way to improve the performance of MySQL server on FreeBSD","author":"Derrick","date":"February 2, 2014","format":false,"excerpt":"There are many different ways to improve the MySQL performance. In general, it breaks down into two different categories: Server side and client side. On the server side, we can optimize the database and table structure, such as indexing the columns etc. On the client side, we can optimize the\u2026","rel":"","context":"In &quot;Computer Problems&quot;","block_context":{"text":"Computer Problems","link":"https:\/\/icesquare.com\/wordpress\/category\/technology\/computer-problems-computer-help-pc-support\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/icesquare.com\/wordpress\/wp-content\/uploads\/2014\/02\/speedometer.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/icesquare.com\/wordpress\/wp-content\/uploads\/2014\/02\/speedometer.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/icesquare.com\/wordpress\/wp-content\/uploads\/2014\/02\/speedometer.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/icesquare.com\/wordpress\/wp-content\/uploads\/2014\/02\/speedometer.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/icesquare.com\/wordpress\/wp-content\/uploads\/2014\/02\/speedometer.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":3412,"url":"https:\/\/icesquare.com\/wordpress\/how-to-remote-desktop-to-linux-from-windows-xrdp\/","url_meta":{"origin":851,"position":3},"title":"How to Remote Desktop To Linux From Windows Using XRDP","author":"Derrick","date":"January 24, 2014","format":false,"excerpt":"If you are looking for ways to remote desktop to Linux from Windows, and you are sick of VNC, you are in the right place. I have been looking for a solution to do something very simple. I want to remotely access the desktop of my Linux servers from Windows\u2026","rel":"","context":"In &quot;Computer Problems&quot;","block_context":{"text":"Computer Problems","link":"https:\/\/icesquare.com\/wordpress\/category\/technology\/computer-problems-computer-help-pc-support\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2207,"url":"https:\/\/icesquare.com\/wordpress\/how-to-keep-the-server-running-when-the-cpu-fan-is-dead\/","url_meta":{"origin":851,"position":4},"title":"How to keep the server running when the CPU fan is dead (and without buring the CPU)?","author":"Derrick","date":"December 27, 2011","format":false,"excerpt":"Few days ago, I found that the CPU fan of this server (i.e., icesquare.com) was having some troubles. It was spinning slowly and making some weird noise. After opening the computer case and had a brief investigation, I found that the fan needed to be replaced. Unlike the computer case\u2026","rel":"","context":"In &quot;Computer Problems&quot;","block_context":{"text":"Computer Problems","link":"https:\/\/icesquare.com\/wordpress\/category\/technology\/computer-problems-computer-help-pc-support\/"},"img":{"alt_text":"","src":"\/wordpress\/wp-content\/uploads\/2011\/12\/fire_small.png","width":350,"height":200},"classes":[]},{"id":1811,"url":"https:\/\/icesquare.com\/wordpress\/how-to-setup-tftp-on-ubuntu\/","url_meta":{"origin":851,"position":5},"title":"How to Setup TFTP on Ubuntu 11.10","author":"Derrick","date":"November 23, 2011","format":false,"excerpt":"Recently I decide to jump into the pool of using diskless Ubuntu. Basically the client computer downloads the necessary files from the Ubuntu server every time during the boot. To keep things simple and easy, Ubuntu does that by using TFTP. So the first step is to set up a\u2026","rel":"","context":"In &quot;Computer Problems&quot;","block_context":{"text":"Computer Problems","link":"https:\/\/icesquare.com\/wordpress\/category\/technology\/computer-problems-computer-help-pc-support\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/icesquare.com\/wordpress\/wp-json\/wp\/v2\/posts\/851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/icesquare.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/icesquare.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/icesquare.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/icesquare.com\/wordpress\/wp-json\/wp\/v2\/comments?post=851"}],"version-history":[{"count":70,"href":"https:\/\/icesquare.com\/wordpress\/wp-json\/wp\/v2\/posts\/851\/revisions"}],"predecessor-version":[{"id":2894,"href":"https:\/\/icesquare.com\/wordpress\/wp-json\/wp\/v2\/posts\/851\/revisions\/2894"}],"wp:attachment":[{"href":"https:\/\/icesquare.com\/wordpress\/wp-json\/wp\/v2\/media?parent=851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/icesquare.com\/wordpress\/wp-json\/wp\/v2\/categories?post=851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/icesquare.com\/wordpress\/wp-json\/wp\/v2\/tags?post=851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}