What is Apache?

If you are delving into the world of web servers, chances are you will eventually come across the product name “Apache. Many have heard this name before but have no idea what exactly Apache is. Especially for these people, we have prepared this article. This article will explain what Apache is and which famous modules Apache has to offer.

Overview of Apache

Apache is also known as Apache HTTP Server. This is a product of the Apache Software Foundation. Apache is an open-source web server, which you can use with Windows, macOS, Linux, and other Unix operating systems. You use this webserver to combine various databases, scripting languages, programming languages, and template languages.

At the point when Apache was simply presented, the opensource webserver was not exceptionally famous. This changed when Apache 2.0 showed up available. What makes this form significantly better and consequently substantially more well known than Apache’s principal adaptation is the way that Apache 2.0 has a superior secluded design. Since the 2.0 arrival of Apache, it is additionally conceivable to utilize the worker as a strung web worker. Particularly on Windows, this gives better execution.

Apache’s market share

At the end of 2014, about 37 percent of all websites used Apache. In Belgium, the web server’s market share is the highest. As many as 65 percent of Belgian domains use this server. Therefore, Apache’s market share can certainly be called large.

Popular modules for Apache

Apache has many modules. Some popular modules for Apache, are the following:

  • mod_php – This is a module to run PHP web applications on the server.
  • mod_wsgi – This is a module to run Python web applications on Apache. Previously, this module was also called mod_python.
  • mod_proxy – This is a module to turn Apache into an HTTP proxy.
  • mod_perl – This is a module to run CGI in Perl, on the Apache webserver.
  • mod_ssl – This is a module to give Apache support for SSL, for an encrypted connection between you and the webserver.
  • mod_rewrite – provides a flexible and powerful way to manipulate URLs using an unlimited number of rules.

In addition to these modules, Apache has many other modules. These modules make the server absolutely complete.

Why do I need sitemap.xml and what is it for?

To make your website work for your business, you need to work in detail on many of its parts. Visibility on the Internet can be ensured in different ways, for example, by engaging on social networks or paying for advertising. But one of the main methods of presenting the site to potential customers – is still indexing the pages in search engines.

You can have a beautifully designed site with many features and a well-designed interface by a professional UX/UI designer’s hands. You can regularly publish expert articles filled with keywords according to all canons of SEO, use plugins for optimization and correctly write meta tags. But there is another factor that must take into account – this file sitemap.xml. Experienced webmasters are well aware of what it is. And if you are creating your site and have not heard of Sitemap, this article is for you.

What is sitemap.xml?

Sitemap.xml is a sitemap that lists all the pages that need to be indexed by search engines. It is a file with a list of links with the extension .xml. By the way, you can create a Sitemap and in the form of a text file. Txt, but we’ll talk about it a little later.

Sitemap.xml is designed exclusively for search engines. Robotic systems can see what pages should be indexed, their priority, and the last update date with its help.

What are the components of the sitemap.xml file, and what does it look like?

A sitemap looks like a list of links with tags. The sitemap.xml file must always include the location of the page. Besides, you can specify the update frequency and priority.

Let’s try to model a sitemap. Suppose you have a simple single page. In the simplest case, if you write the Sitemap yourself in notepad, it will look something like this:






Here <urlset>, <url> and <loc> are required tags.

But you can also add how often the page is updated and when it was last modified. Then the Sitemap will look like this:








Let’s dwell on the newly introduced attributes:

<lastmod>. showed when changes were last made to the page.

<changefreq> defines the frequency of changes to the page. In our example, it says daily, which means daily changes. We can define any frequency, such as hourly, monthly, yearly, or always. You can also specify that the page never changes. This option is appropriate for old archived pages that search engines will still index.

You’ve decided to create another page for your blog. Now you can prioritize them. With it, the search robot will rank the pages according to the priority you set. There is a scale for this, with a minimum priority of 0.1 and a maximum of 1. If you do not prioritize yourself, the search engine will do it for you, and the priority of each page will be equal to 0.5.

The final view of the site map:















The <priority> attribute is responsible for the priority. This code search engine will consider the main page of the site as a priority and not the blog.

But there is a second option. If Sitemap – a text document with the extension .txt, links will go in a row in a column. In this case, the file will be called sitemap.txt, and it will look as follows:

  • https://location-of-your-website.com/home
  • https://location-of-your-website.com/blog

For such a one-page site, you can use this option. But if you need to specify the frequency of updates or highlight higher-priority pages, the only sitemap.xml will do.

Are there any limitations for sitemap.xml?

Yes, and there are several:

  • The number of links. It is allowed up to 50 thousand links in one file.
  • File size. The file must not weigh more than 50 MB.
  • Location; will place the file in the root folder. The main nuance here is that the site map should be in the same directory with its links. For example, the file is located at https://location-of-your-website.com/catalog/sitemap.xml. This means that it can not be a link https://location-of-your-website.com/blog, but https://location-of-your-website.com/catalog/blog – can. And if the Sitemap is located at the link https://location-of-your-website.com/sitemap.xml, then it can include any page with the same domain.
  • Domain. From the previous point comes one more limitation. The domain of the Sitemap and all links in it must be the same. You can not specify the address https://location-of-your-website.com
  • /sitemap.xml in the file, following the link https://location-of-another-website.net

Protocol. If the link to the Sitemap looks like https://location-of-your-website.com/sitemap.xml, then the addresses specified in the file must have the HTTPS protocol. In the above case, it is correct – https://location-of-your-website.com/home, wrong – http://location-of-your-website.com/home.

The file should also include the robots.txt file. To do this, add a line with the file address. In the example in our article, it would look like this:

Sitemap: https://location-of-your-website.com/sitemap.xml

So Sitemap will be able to find robotic systems, which is the purpose of its creation.

How to create a sitemap.xml?

If your site is a business card with three pages, you can create a sitemap manually. For such resources will be sufficient and a text file with a list of links. For large resources, this option is not suitable. But the routine is easy to automate. To do this, you can use:

  • Site map generator in CMS. If you use a content management system, the Sitemap will be generated automatically.
  • A third-party sitemap generator. If you suddenly do not use a content management system or have your engine, you can use the generator sitemap.xml. There are many such proposals on the Internet, so you can safely choose a resource with good reviews. For small and simple sites are free versions of generators. And if your resource hundreds of thousands of pages, you have to pay, albeit a small amount of $ 2. Some service providers offer monthly payment plans so that the site map can be updated and dynamic. The costs will also not be high and will hardly exceed 5$/month. There are more expensive programs starting at $20, so you should check the price.
  • Plugin. You can generate a sitemap with the help of an SEO-plugin. For example, YoastSEO. This is, without exaggeration, the most popular plugin for SEO optimization of a site on WordPress. You can also use narrowly targeted plugins, such as Google XML Sitemaps, it automatically generates a file, after which you only need to send a link to it to Google Search Console. We have already written about them in more detail when dealing with SEO-plugins for WordPress.

You can also create your script to generate a sitemap if you don’t want to use ready-made solutions.

How much does a sitemap affect its indexing in search engines?

We will not confidently state that the mere presence of a sitemap.xml file will bring your resource to the top of search results. However, Sitemap – is an essential component. It facilitates the scanning of your resource search engine crawlers, i.e., it works as a clue to the search engines.

Our verdict: the presence of sitemap.xml not always leads pages to the first lines in search results but helps them not fall to the last. Without it, you can not do it, especially if you are serious about promoting your site. And you can not do without good hosting. If your resource is not enough of shared hosting resources and you are looking for more powerful options. We offer VPS/VDS hosting and offer several rates depending on your website needs – contact us to choose the best variant for you!

What is a web server, and which one to choose?

We often talk about servers and tell you which are the best to choose for business purposes. As a reminder, you can rent a cloud VPS/VDS server on QuantumHost for your business or other purposes. But today, we will discuss another important thing – the webserver. Let’s understand what it is, how it works, and which option is better to choose for your website.

What is a web server?

A web server is a server that receives a request from a user in the form of a URL, processes it, and sends the necessary data in the form of HTML pages, documents, media files, and media streams. It refers to both software and hardware. Like software, a web server consists of several components necessary to process user requests. Among them, the HTTP server is a must. Suppose we consider the web server as “hardware,” the computer hardware on which the documents are stored (the user sends a request to retrieve them). The hardware must be connected to the network so that the client can retrieve the requested data from the server.

Web servers often get confused with application servers or use these terms as synonyms. In part, they can be called analogs, but not really. There are several differences between web servers and application servers. A web server is HTTP-only and is intended mostly for sending static data. An application server supports HTTP and other protocols such as RPC and others, and their primary purpose is to transmit dynamic, i.e., always changing, content. Initially, they had different tasks. Now web servers often support PHP, Python, and other scripting languages to interact with static and dynamic data. And among the components of the majority of application servers, there are web servers used as proxy servers.

But this is a topic for a separate article. Within this publication framework, it is essential to understand how a web server works and what algorithm is used to interact with the user.

How does the webserver work?

Let’s look at a typical example that all Internet users encounter daily.

A user wants to go online and visit a particular site. To do this, he opens the browser on his computer or phone. When the program opens, he enters the desired URL into the address bar, goes to the saved address in the bookmarks, or clicks on a link to an already open resource. It doesn’t matter how, but it goes to the site. After a few seconds, the requested page appears on the screen with text, pictures, videos, and other content.

This is what the process looks like from the point of view of any ordinary person. Now let’s understand the necessary internal procedures.

The user opens the client application. It is often a regular browser from Google Chrome or Mozilla Firefox, installed on any device that supports this feature. It can be a PC, smartphone, tablet, or even a game console that can install a web browser. The client transmits a request via the HTTP protocol, which goes to the webserver. Going to the URL is the process of sending the request. The web server processes it and sends the user the requested data. It can be an ordinary HTML page, images, or other media files. The web server sends resources to the user using the same HTTP protocol.

If we briefly describe the procedure, we get the following sequence:

  • The client sends an HTTP request.
  • The web server receives the request and processes it.
  • The web server sends an HTTP response.
  • The client receives the requested resources.

The above steps cover the fundamental way web servers work. Now that sites are not limited to simple static pages, the transfer of resources is a more complicated process. For example, web servers provide the ability to securely receive and send data via HTTPS protocol, support scripting languages to send dynamic content, etc.

Thus, every Internet user unknowingly comes into contact with web servers daily.

An overview of the three most popular web servers

The first web server in history was CERN’s httpd, launched in 1991. Now there are many of them, so it is not so easy to decide on the choice.

If we consider the Russian-language Internet statistics, then in 2020, Nginx, Cloudflare, and Apache held leadership among web servers. Nginx accounts for more than half of the sites – 66.21%. Cloudflare takes second place – it is used in 8.51% of cases. Apache web server is used on 5.45% of platforms.

The top three most popular servers in 2020 are:

  • Apache.
  • Nginx.
  • IIS.

Given world statistics, we will consider these web servers as the most popular.


Apache HTTP Server was introduced by developers back in 1996. This is one of the first web servers on the market. After launching the software in free access, Apache surpassed all competitors and continues to lead today. Apache is used for 40.89% of sites.

About ten years ago, Apache was used as the primary and only web server. Now, with more data and with them increased the number of connections, it is always enough. Apache is often used as the main webserver and combined with other solutions. The web server is freely available and can be used for free.

Apache is a cross-platform software. It supports all major operating systems, including Microsoft Windows, Mac OS, and UNIX-like operating systems. Architecturally, Apache consists of a kernel, which performs the necessary tasks and many add-ons. The kernel is always running. The modules can be plugged in and unplugged so that we have some control over the server’s functionality.


Nginx was created by a Russian developer Igor Sysoyev who released the product in 2004. It is the only Russian web server on this list, which is popular in other countries – it accounts for 23.77% of all sites worldwide. Nginx is used by ordinary website owners and market giants, such as Facebook, Pinterest, Netflix, Tumblr, Instagram, and many others. Like Apache, Nginx is open-source. But it can only be used on UNIX-like operating systems.

During the development were taken into account some major shortcomings of existing web servers, including Apache. Thanks to this, Nginx perfectly copes with the increasing load and can easily handle several thousand requests at a time.

When it comes to flexibility, however, Nginx lags behind other products. For example, the modules have to be selected and compiled with the kernel-they are not mounted dynamically. However, plugging the modules themselves can be considered a plus because users can choose only necessary modules and avoid installing other modules manually.


IIS, or Internet Information Services, is a product of Microsoft. Therefore, it can only be used on the Windows operating system. Version 1.0 was released in 1995. Now a web server IIS is used on 16.45% of all sites in the world.

Technically, this is a package of servers with the main component in the form of a web server. Unlike Apache and Nginx, IIS is not freely available but is bundled with the Windows NT operating system.

In terms of functionality and performance, IIS is approximately on par with the more popular free solutions. The developers pay great attention to security and improve it with the release of each new version – in this matter, IIS surpasses Apache and Nginx. Because the solution is a commercial one, users can count on Microsoft support, which is especially important for large businesses. Significant disadvantages – work only on one platform and the need to buy a license Windows. Although the second factor indicates that IIS is conditionally free, it is already in the package.

If you own a site without a web server, you can not do it. It is good that there are many products on the market and they can be combined. For example, many believe that the best combination of Apache + Nginx. The main task is to choose the right option in terms of performance, security, and cost.

How do I migrate my site from shared hosting to a virtual or dedicated server?

You have been developing your website for several years, brought it to a higher level, and now you do not have enough power of a regular shared hosting solution. Or you want to launch a new project. In both cases, website owners need to choose an optimal and high-performance hosting option. This can be a virtual or dedicated server for frequently used websites.

Switching from shared hosting to a virtual or dedicated server is an essential step for the business. After the transfer of the site, you will immediately notice the changes. Site performance will improve, security and reliability will be higher, and the owner will have more control over resources.

You have already chosen VPS/VDS hosting or a dedicated server (we have already written here to understand that this variant is right for you), decided on the pricing plan with optimal cost, and decided on your needs. But to begin to take advantage of a virtual or dedicated server, you need to at least move your website to it.

And here’s where many people have a question about how the data is transferred. On the one hand, it may seem that it is easy. Nothing new to implement, no need – just take all the previously hosted data on virtual hosting and move to a virtual or dedicated server.

But there is another side to the issue, the site can not be transported automatically. For those going to move from shared hosting to a virtual or dedicated server, we have prepared a small tutorial, with which the transfer of your site will not take much time and effort.

How do I migrate a website from shared hosting to a private server?

First of all, contact your old host and notify them that the site is moving. Pay for the last months of use and fulfill all the contract clauses, which specify information about the termination of cooperation.

Then you have two options. You can ask for help in transferring the site from the hoster who provides the server for rent or do it yourself. In the first case, the transition to a virtual or dedicated server is smooth and easy. In the second case, there may be some difficulties. But consider both situations in detail.

Porting the site by the hoster

If you decide to use VPS/VDS-hosting or rent a dedicated server, you can get support from your hoster. For example, we at QuantumHost offer our clients help in transferring a site from shared hosting to our server infrastructure. Our team will help you move your website, and you do not have to spend a lot of time and effort.

Independent Website Migration.

In some cases, website owners must handle the migration process by themself. Often all the work falls on the shoulders of administrators. But if you are faced with the transition to a virtual or dedicated server for the first time, there may be some difficulties.

Indeed, you can not move the site to another server for 5 minutes. But in fact, the process is not complicated.

The self-transfer method means manually. First, you must make sure that the service is activated, and you have the right to transport all your data. Then you can proceed directly to the transfer of the site. To do this:

  • Download all of your site’s files. All images, pages, and other components need to be downloaded from your old hosting service so you can export them to the new one. Perhaps your previous hosting provider backs up your sites regularly. In that case, it is enough to download the latest backup via SFTP. You can also create and download a site backup yourself. To do that, you can use one of the available FTP clients. For example, you can download a backup copy using FileZilla or the Total Commander file manager with a built-in FTP-client.
  • Create a database dump. Technically, at this step, you also need to download the database for further export, but we will put it as a separate item. A database dump is essentially the same backup copy in the form of a downloaded file. For example, the MySQL database dump is a file with the extension .sql. After downloading, you do not need to recreate the database manually – it is enough to upload the existing database to the server.
  • Upload the downloaded files to the new server. When all the necessary data of your site is already uploaded as a backup, you need to place them on the new hosting. To do this, gain access to the server (log in using the username and password sent to you earlier) and upload the site archive. The process is the reverse of downloading a backup copy, but the essence is the same. In the first stage, you downloaded the backup file to your device from the server; now, you need to do the opposite. This can be done using the same SFTP connection.
  • Import the database dump. First, you need to create a new database on the server and enter the login and password you received from the hoster to manage it. Then upload the previously created database dump by SFTP.

After the transfer of the site, data should be tested for performance.

Then, to fully transition to a virtual or dedicated server from the old hosting need to transfer your site’s domain name. To do this, contact the domain registrar and reassign DNS-servers. Domain name transfer can take quite a long time – at least a day.

Deal with the domain transfer is after you have transferred the files and databases on the new server. Sometimes you can meet and cardinally opposite recommendations. But if you are first engaged in transferring the domain to the new server, the visitors will come to your site before debating its work. So first, we move the backups and then – the domain.

After you have transferred the domain name, recheck your site’s performance and make sure that all pages, mail, and database are working correctly. If everything is in order, you have successfully moved to a new server and can proceed to further work.

Server administration and technical support from QuantumHost

You have moved your site to a Cloud VPS/VDS and are ready to further develop your business. But in the process of using them, problems may arise that need to be promptly corrected. Also, the major part of the work is server administration, and if you hire an administrator, the costs will increase.

server administration.

404, Bad Gateway, or what do the most well-known mistakes on sites mean?

You probably encountered a situation where, when trying to enter the site instead of the desired page, it gave the error 404, 503, 500, 403. What do all those magic numbers mean, and what should the site owner do if users encounter them? Solve all the mysteries in this material.

A bit about HTTP status codes

First, a little basic theory. When you visit a website, your browser sends an HTTP request to the server hosting the site. Each HTTP request received by the server gets an HTTP status code – a three-digit number. But the number is not simple; it’s remarkable – it belongs to one of five classes of states:

1**: informational;

2**: successful;

3**: redirections;

4**: client-side errors;

5**: errors on the server-side.

This article will focus on error classes 4**, 5** and tell you how to solve them if your site is hosted on shared hosting.

HTTP status codes in class 4** indicate that the problem was caused by the user visiting the site (for example, by browser problems or typographical errors in the links). However, it’s always good to know what kind of error the user has encountered – the problem might actually be on the site. And class 5** codes are returned by the webserver when it encounters an error and probably can’t handle the client request.

Let’s see what the site administrator can do to solve common errors when accessing a web resource.

Client Errors

400: Bad Request

The code “Invalid request” means that there is a syntax error in the HTTP request. A few examples of when this can happen and what actions you should take:

User has corrupted cookies – advise cleaning cache and cookies.

Internal browser error – you can try upgrading or reinstalling the browser.

A typo when manually typing a request (for example, in console commands like wget or curl).

401: Unauthorized

The “Not Authorized” code appears when there are problems with authentication or authorization on the site. For example, the visitor is trying to view his online store profile but has not entered his username and password or has entered them incorrectly. In this case, a 401 response code is sent until the visitor provides the correct credentials.

If the error does not go away, the site administrator should check that the .htpasswd file containing the user’s login credentials is intact.

403: Forbidden

The “Forbidden” site connection error indicates that the visitor has no access to the requested resource, file, or page. This situation usually occurs for a variety of reasons:

  • No permissions to open the files. Make sure the user has the rights to read the file (chmod command to help you).
  • Access denied in .htaccess. You may have restricted access to the site to some IP addresses in the .htaccess file.
  • There is no index file in the requested directory. Try to create an index file or enable directory listing in the webserver configuration.

404: Not Found

Perhaps the most well-known error that most Internet users have encountered. It means that the server cannot find the requested resource, or, to put it simply, “this page does not exist”.

If you are sure that the error 404 on the site should not occur, check the link for typos and ensure that the page file is not moved or deleted. The problem can also be a lack of user access to the folder where the file is located – to enable it; you need to add read and execute permission for the directory.

Server errors

500: Internal Server Error

“Internal server error” often appears when the failure cannot be attributed to any other known class 5** error. A site error code 500 means that the problem most likely lies in the server settings.

The most common causes of failure are:

  • An error in the .htaccess file. Try renaming it and check if the website is working.
  • Lack of necessary packages, incorrectly selected version of PHP. Possibly you should change the PHP version or install the required modules.
  • A bug in the site code. If it worked before, restore the site from a backup copy.

502: Bad Gateway

If error 502 occurs regularly, you should contact your web hosting provider’s technical support service when opening the site. Describe in detail the actions that lead to the problem and specify the time at which it was detected (if you contact QuantumHost’s technical support)

503: Service Unavailable

The code “Service unavailable” on shared hosting means that the limit on the number of HTTP requests has been exceeded (you can read about all limits in the hosting specifications). This error may occur if your code makes many calls to images, stylesheets, and other files when generating the page. Possible solutions – either optimize the code, reduce the number of HTTP-queries, or switch to a more effective hosting plan or consider moving those intensively used websites to a Cloud VPS.

504: Gateway Timeout

The error can be decoded as “server response time has expired.” It occurs when the webserver cannot receive a response from the site in a set amount of time.

This usually happens when the site scripts take too long to execute (e.g., database uploads). In this case, you can bypass the webserver and access the site through port 8081 (for sites running on the ISPmanager control panel) or 8080 (for cPanel and Plesk), or 2222 (for DirectAdmin). If you want to configure the intervals for waiting for the site response manually, it can be done only on VPS, where more flexible server settings are available.

Now you know what errors can occur on the client and server sides, where to look for problems, and how to troubleshoot them. There are many more HTTP status codes, and we have listed only the most basic ones.

Also, don’t forget that if you can’t fix any problem with your site, you can search for a solution in our Knowledge Base or contact Technical Support – we are always ready to help.

If you know of any other possible solutions for the errors mentioned in this article, please post them in the comments.