1 minute read

Web Server

Nhiệm vụ của web server là đưa website lên internet, hoạt động như một người trung gian giữa client và (internal) server thông qua giao thức HTTP.

Apache

/handbook/assets/images/apache/Untitled.png

Apache (abbr for Apache HTTTP Server) is open-source web server.

Ưu điểm:

  • Reliable
  • Dễ cấu hình, dễ học.
  • Linh hoạt vì có nhiều module

Nhược điểm:

  • Do sử dụng cơ chế thread nên không xử lý được quá nhiều kết nối cùng một lúc (c10k problem)

Virtual Hosts

Apache Virtual Hosts allows you to run more than one website on a single machine. With Virtual Hosts, you can specify the site document root (the directory which contains the website files), create a separate security policy for each site, use different SSL certificates and much more.

Directory Structure:

/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html
├── domain3.com
│   └── public_html

Create a Virtual Hosts

By default on Ubuntu systems, Apache Virtual Hosts configuration files are stored in /etc/apache2/sites-available directory and can be enabled by creating symbolic links to the /etc/apache2/sites-enabled directory.

Example:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/example.com/public_html

    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
  • ServerName: the domain that should match for this virtual host configuration. This should be your domain name.
  • ServerAlias: All other domains that should match for this virtual host as well, such as the www subdomain.
  • DocumentRoot: The directory from which Apache will serve the domain files.

Enable the virtual host:

# The easiest way
sudo a2ensite example.com

# Another option
sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/

Test the configuration for any syntax errors with:

sudo apachectl configtest

Restart the Apache service:

sudo systemctl restart apache2

Other web server

Nginx được sinh ra để giải quyết “c10k problem” (10000 kết nối client). Nó sử dụng cơ chế event, không phải tạo process mới cho mỗi truy vấn, xử lý truy vấn trong một thread duy nhất.

Tìm hiểu chi tiết về Nginx tại đây.

References:

Contributor

Comments