Website construction kit vs. web space or your own web server?

Diese Seite gibt es auch in Deutsch

If you want to operate a website yourself, you have more than one option for it nowadays. In addition to a simple HTML page, various programming languages, frameworks or content management systems (CMS) such as WordPress, Joomla or Typo3 or other webservices can be used. In addition, there are various providers of so-called website construction kits on the Internet, with which even laymen can quickly click together a website.

Operate a website yourself

In addition to the software used, there are countless hosting providers and several hosting options for operating a website:

Variant 1: Website construction kit

Probably the easiest way to create a website is with so-called website construction kit systems from providers such as Wix, Jimdo or Squarespace. The providers promise ease of use and allow even beginners to create and manage a website via a simple interface. Experience shows that these systems usually offer only limited options and are relatively expensive or financed through advertising. An own website should always use an own domain (URL) and be registered on the own name, because otherwise the website belongs to the operator and not to oneself.

Variant 2: Webspace

A little more flexibility at lower costs can be achieved by using a web space of a web provider. With this variant, the web space and mainly a MySQL database can be rented, which allows the uploading and operation of almost any website or web system. Many of the providers offer a simplified setup for well-known CMS systems such as WordPress for their web space. With classic web hosting, there is an additional maintenance effort, since the web software used should be regularly checked, backed up and updated if necessary.

Variant 3: own web server

Even more flexible is the operation of your own web server, and at the latest when hosting multiple websites,this variant is also very attractive in terms of price. When operating an own web server, there is an additional maintenance effort for the host operating system besides the maintenance of the web software. And from time to time the need to move the web pages to a new server, at the latest when security updates for the host operating system are no longer offered. As an example, WordPress can be run on your own server in addition to other web services If you are running or want to run a web server yourself, you have to think a bit about how a web server works:

the basis: TCP/IP and DNS

Every web server needs a unique address, the IP address and an associated port for answering requests: 80 for http and 443 for HTTPS. Since IP addresses are hard to remember, there are also the name servers: DNS. The DNS servers translate the known domain names to IP addresses, after which the TCP transport protocol ensures that the packets are delivered.

Domain and its management

A domain like this one “libe.net” can most easily be ordered from one of the countless hosting providers. A DNS server must be specified during domain registration:

 

📢 A new post will be linked here shortly: Domain transfer Hosteurope to Hetzner allow push notifications?

The provider usually provides a DNS administration for their registered domains. Via the DNS administration A-entries for the main domain and subdomains can be added, these then point to a specific IP address:

DNS entry at the provider in the zone as an example libe.net Call in browser
Type Name Value
A   83.169.23.37 http://libe.net or https://libe.net
A www 83.169.23.37 http://www.libe.net or https://www.libe.net
A test-domain 83.169.23.37 http://test-domain.libe.net or https://test-domain.libe.net

The IP address used is the address of the web server used, or in the case of a home network, the address of the Internet connection, see: Website on your own computer. The web server must provide the corresponding web service, as the actual website, when a request is made to the URL (https://www.libe.net).

Multiple Web sites on one server

First of all, each TCP port can only provide one web service, and each web server can only occupy the common port 443 once. If a website were to be published directly to a port, this would mean that only one website could be provided on one IP address. This is remedied by the so-called host header. When operating several websites on one server, the Host Header ensures that the web service answers or forwards the request correctly. The hostheader is filled with the host name of the called website (= domain name, as example libe.net) each time a website is called (HTTP call), which enables the web service to answer the request or to assign it to another web service.

As an addition to the example given with the zone libe.net and the A-records for www and test-domain, www.libe.net could be answered by one web service and test-domain.libe.net by another web service on the same server with the same TCP network port. Of course, multiple domains can point to the same server. In principle, it does not matter on which server the domains are hosted. Thus, the operation of a website would also be conceivable via a normal Internet connection on one's own PC.

As a concrete example, this website works as follows:

For the operation of the site www.libe.net a virtual server of a hosting provider is used, originally by Host Europe, currently by Hetzner, see: Provider Change HostEurope vs Hetzner, vServer vs Cloud Server. The virtual server, also called a cloud server, has a public IP address that can be accessed via the www.libe.net domain. In order for the domain www.libe.net to use the public IP address of the virtual server, the domain libe.net was registered with the DNS servers of the hosting provider and a corresponding A-record was created in the DNS administration of the provider in the domain zone libe.net: www -> 83.169.23.37.

The connection setup from a terminal looks like this: When calling the domain www.libe.net in the browser, the request is first routed to the DNS, which responds for www.libe.net with the IP address 83.169.23.37, whereupon a connection takes place via this IP address to the actual web server and its web service. The web service accepts the connection and uses the Host Header Information (www.libe.net) to forward the request to another web service, which provides the actual website libe.net.

Website on your own computer?

If you have installed a web server or web service on your own computer, you can access it via http://localhost , see: access localhost: IP address "127.0.0.1", "::1" | what is localhost? For example, Laragon or a Docker container with a web service can be used as a web server in Windows.

For a test, without public DNS the access via the internet can also take place via the IP address, normally no special requirements are necessary for this. Only the Internet access could still operate a firewall on the part of the provider, which prohibits access to the web server ports 80 and 443, or there are Internet accesses, where several computers share an IP address (NAT): In both cases, the test would not work.

If neither of these is the case: Which is very likely, a web server can be installed on any computer connected to the Internet and port-forwarding can be set up for access at the router, see: port-forwarding.

(Source: port-forwarding)

To find out which IP address is used on the Internet, you can visit this page with the computer running the website: Your current public IP for accessing the Internet is:

After communication to the web server is done via IP, it is possible to view it here. But there are other sites that can show your IP: just google “show my ip” …

Run a website on your own computer?

So that access does not have to take place via the IP address, but a domain (URL, e.g. libe.net) can beused, this can be requested from an Internet provider and registered on its DNS. An A record with the public IP address of the private Internet access can then be created in the DNS zone of the domain in the provider's administration interface. Theprerequisite for this is also that the IP address of the Internet connection either does not change or that the DNS adjusts the IP in the event of a change. This would then require another service on the Internet, which updates the DNS entry when the IP changes: something like the DynDNS service. In my opinion, a public website should not be published on a computer at home. The purpose is rather to publish one's own web services, such as one's own private cloud or an access to the smart home or to one's own password manager.

Simulate DNS: Hosts file

A DNS entry can also be simulated without an internet provider and without a DNS zone managed there on the own computer by storing a DNS entry in the Hosts file on the computer. In Windows, the Hosts file can be edited with an editor (as administrator):

In the search field: notepad, right “Run as administrator” and open the following file: c:\windows\system32\drivers\etc\hosts

Example entry in the hosts file:
127.0.0.1 one-invented-domain.test

Instead of 127.0.0.1 public IP address can be used for access from the Internet, as already mentioned port forwarding at the router is required for this. 127.0.0.1 stands for localhost, see: call localhost: IP address “127.0.0.1”, “::1” | what is localhost?

The call in the browser is then done with DNS names entered in the hosts file:

Existing domains can also be entered, redirected or blocked in the hosts file, see: blocking certain websites

http / https SSL TLS

For the operation of a website should use a SSL certificate, because the connection without a certificate is classified as “Not secure”:

If HTTPS is used as the protocol instead of HTTP, the connection is encrypted. A certificate installed on the web server also ensures that the DNS entry is really the server and that the requested page is not redirected to a fake page. SSL certificates are standard today and mostly free thanks to Let's Encrypt, but not all providers offer free certificates for their web space. This is different when using a virtual server, here Let's Encrypt certificates can be provided via Plesk (if available), via appropriate packages or with an appropriate Docker container, see: secure https connection: Traefik Reverse Proxy + Let's Encrypt.

Conclusion

If you don't want to worry about the operation or updates of a website and simply need a web presence without special features, you are probably in good hands with a provider of a website builder. Those who don't mind a little maintenance can rent a web space or their own virtual server to build a more flexible and cost-effective environment. Additionally, the website could be tested on the own computer. When publishing the homepage, an attention should be paid to HTTPS, which today can be implemented via Docker and a reverse proxy without additional costs, very easily, see: Traefik in Docker | multiple web servers incl. certificate SSL.

positive Bewertung({{pro_count}})
Rate Post:
{{percentage}} % positive
negative Bewertung({{con_count}})

THANK YOU for your review!

Updated: 2022-09-07 von Bernhard


Top articles in this section


Running Docker Mailserver yourself | a field report
With the help of a suitable Docker image, it is relatively easy to run a mail server yourself. I originally used the integrated mail server of the Host Europe vServer (Plesk) and came across a very simple Docker container while looking for a replacement. The lightweight container provides a mail server without a graphical management interface, but can be managed with a few simple commands. Any email client can be used to send and receive the mails, for this POP3 or IMAP is offered for receiving...

Nextcloud Server Docker | Setup + https: Let's Encrypt [ssl]
To synchronize contacts, appointments, and photos of my NAS, I tested Nextcloud and thus turned my back on other cloud providers for my private data. Thanks to Docker, the installation is easier and more flexible than ever, allowing Nextcloud to run on almost any hardware.

Nginx-LetsEncrypt reverse proxy in practice
In addition to Traefk, the Nginx Proxy Automation project can be used to run multiple web services with corresponding SSL certificates on one server . The setup involves several Docker containers that together provide an Nginx reverse proxy including certificate management and SSL offloading. Once the containers are started via Docker Compose, they take care of serving multiple websites over a common IP and its certificate management: for issuing certificates for new containers and renewing the...

Questions / Comments


By continuing to browse the site, you agree to our use of cookies. More Details