Web Servers Architecture and Functionality
Server is very similar to our daily used computers. It consists of a mother platinum, processor, operative memory and hard disk. Unlike our computers, however, it is more powerful. The main characteristic of the server is the remote work with many clients. It answers to the all requests coming from the different corners, develops them and sends a response.
Our computers can also be a server. You need to install a server on computer (for example` Apache web server). Ask Internet Provider to supply static IP address and then obtain Domain. However, our computers cannot handle many requests because they have weak parameters. Additionally, computer must be turned on for 24 hours, otherwise it will be unavailable for remote clients. The server can be one powerful computer, as well as a set of computers that connect to one another and are considered to be one server.
Dedicated server – When a hosting company provides the client a single server with all of its parameters.
Shared server – Is a powerful server which consists of many virtual parts and gives an opportunity to the client to choose, for example what Operation System and Operative memory they want.
Operational System in Server – Generally, the most used is Linux Operation System especially CentOS, which has flexible configuration possibilities and security system. In servers are also used Windows server Operation System which is created for working with servers and is quite different from daily used Operation Systems (for example` Windows 10).
Web server – Web Servers gets requests from client tool, develops them and sends an response.
Apache vs Nginx
Apache and Nginx are web servers, let’s consider their differences:
1.Apache consists of two parts: Apache Core and Apache modules. After setting an Apache we can turn on or turn off modules, but it is impossible in Nginx, we should choose them before the setting. Unlike Apache Nginx is working more quickly.
2.These two Web Servers are quite different from each other in cultivating requests. Apache does this due to these 3 modules: mpm-prework, mpm-worker, mpm-event. Nginx is working with forkers and all forkers are working in the cycle asynchrony.
3.Apache has a possibility to make a configuration at the directory level, which does by .htaccess. In this case, every time Apache checks each directory, it checks whether the directory has the .htaccess and configuration. Nginx makes configurations only at the level of root directory. That’s why it works faster because it does not spend time for extra checking.
HTTP-Hyper Text Transfer Protocol – Due to this protocol, the server receives information and sends a response. It is default for 80 ports. This is the protocol that is used in order to send and receive information from the server. This is the protocol that the Apache Web Server Understands and it is what it uses to send information back to the client Machine. This is the general back and forth between the server and the browser.
HTTPS- Hyper Text Transfer Protocol Secure – This is the same HTTP protocol, only it works more secured. It is default for 443 ports. It uses SSL certificate.
SSL – Secure Sockets Layer – This is a certificate for transferring information to server. It is a cryptographic protocol and sends the data via cashed variant. SSL has private and public keys and sends and understands that cashed information through this. You can obtain SSL certificate not only from separate companies but also from all hosting companies.
FTP-File Transfer Protocol – By this protocol you can remotely connect to the server, see all the files and directories, make changes. Works with 21 ports.
SSH-Secure Shell – This protocol can be remotely connected to the server and work by the terminal. Works with 22 ports. It is a secure communication with server. You need to install SSH on server in order to connect to SSH via server. Also in computer you need to install a SSH server and create public and private keys. It can be done in the terminal by using this command: $ ssh keygen
After that, the generated public key must be installed on the server to confirm the connection. You need to do this command in order to connect the SSH server: $ ssh user$server-ip
After this command, computer will have access to the server files in the terminal or it will require a password that will be accessible to the server in case of filling out correctly.