Featured post

Learn Basics of Computer

What is Computer ? Computer is an electronic data processing machine which accepts input data from the user, stores the input data in its memory, processes the input data according to given instructions and finally gives us the desired output. What are Data ? Data are the raw facts and figures in the form of bits and bytes. What is information ? Information is processed data. Components of Computer Computer has two components. Such as: Hardware Software What is Hardware ? All the parts of computer that we can see and touch are known as hardware. Example - Keyboard, Mouse, Monitor, etc. What is Software ? A set of statements written in a programming language is known as a instruction. A set of instructions is known as a program. A set of programs is known as a software. Example - Microsoft Windows, Adobe Photoshop, Typing Master, etc. Classification of Computers Computers can be classified into three categories. Those are: According to type of dat...

Installation and configuration of the Apache HTTP server


This articles contains information about the Apache HTTP server.




1. Apache HTTP




The Apache HTTP server project develops and maintains an open-source HTTP server. The Apache HTTP web server is one of the most used web server worldwide.




1.1. Installation




On Ubuntu you can install the Apache HTTP server with the following command.




sudo apt-get install apache2



1.2. Starting Apache




To start the Apache service, use the following command.




sudo service apache2 start



Use the following commands to check if the Apache configuration is valid and to reload.




sudo apache2ctl configtest
sudo service apache2 reload



Use the following command to list the available modules of the Apache HTTP server.




/etc/init.d/apache2 -l



1.3. Configuration Files




The main configuration file for the Apache Http server is the /etc/apache2/apache2.conf file. The error log of Apache is located in the /var/log/apache2/error.log file.




1.4. Multi-Processing-Module (MPMs)




Apache HTTP can run in different modes. These modes determine how the web requests of users are answered. There are called Multi-Processing-Module (MPMs).




The selected mode is compiled into the server and can be seen via the following command.




sudo apachectl -V | grep -i mpm



The configuration for the event mpm is stored in /etc/apache2/mods-available/mpm_event.conf. Configure only the module which your server is using.




The following listing shows a configuration for a high traffic web server using the event module.




<IfModule mpm_event_module>
StartServers 200
ServerLimit 600
MinSpareThreads 600
MaxSpareThreads 2000
ThreadLimit 64
ThreadsPerChild 50
MaxRequestWorkers 15000
MaxConnectionsPerChild 10
</IfModule>



1.5. Checking for Apache HTTP problems




The error.log file contains the error messages of the Apache HTTP server. For example to check for too many simultaneous request you can run.




grep MaxClients /var/log/apache2/error.log
// If there are problems you might get something like this:
// server reached MaxClients setting, consider raising the MaxClients setting



1.6. Apache Configuration via .htaccess




Use the file ".htacess" to configure certain behavior of Apache HTTP. One major application of this file is to redirect an URL to other URL’s.




The following .htacess file reroutes http://vogella.com to http://www.vogella.com. It also redirect access to a certain webpage (/articles/SpringFramework/article.html) to another webpage via a 301 redirect. The 301 redirect will tell search engines that this side has moved and is the recommended way to move webpages.




RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.vogella\.de$
RewriteRule ^(.*)$ https://www.vogella.com/$1 [L,R=301]
redirect 301 /articles/SpringFramework/article.html https://www.vogella.com/tutorials/SpringDependencyInjection/article.html



1.7. Using modules on Apache Http




Apache Http supports the usage of modules. To enable modules use the a2enmod command, e.g. a2enmod rewrite to enable the rewrite module.




1.8. Performance - Turn on gzip compression




To optimize the download time of your webpages you can turn on gzip compression. This requires the Apache module "mod_deflate" which can be installed by the following command:




a2enmod deflate
sudo /etc/init.d/apache2 restart



The compression can be activated in the default configuration file for this module located in /etc/apache2/mods-available/deflate.conf or via the ".htaccess" file.




# compress all text & html:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript



[[Other Apache modules]] == Supporting php and wordpress




sudo apt-get install libapache2-mod-fcgid
sudo apt-get install php5-cgi



Afterwards activate the corresponding modules.




sudo a2enmod fastcgi
sudo a2enmod proxy
# required for wordpress blog
sudo a2enmod rewrite



1.9. Using the pagespeed module




You should also install the pagespeed module from Google, as this compresses the content of the website and results in a much faster download. See http://tecadmin.net/install-apache2-with-mod-pagespeed-on-ubuntu/ for the setup.




1.10. Migration of servers




In case you are migrating your server from one server to another you can tell your local computer to resolve to the new server, even though you did not yet change the DNS setting. This way, you can test if the new server works fine.




2. Configuring virtual hosts in Apache




2.1. What are virtual hosts in Apache?




Virtual hosts allow Apache2 to be configured for multiple sites that have separate configurations.




This allows you to have one Apache HTTP web server running on one IP serving multiple domains.




2.2. How to configure vhosts under Ubuntu




Under Ubuntu you create a configuration file in the /etc/apache2/sites-available folder, for example the vogella.conf.




<VirtualHost *:80>
ServerName www.vogella.com
ServerAdmin test@test.com
ServerAlias vogella.de www.vogella.de vogella.com www.vogella.org vogella.org
DocumentRoot /var/www/vhosts/vogella/www
<Directory /var/www/vhosts/vogella/www>
Options -Indexes
AllowOverride all
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
CustomLog ${APACHE_LOG_DIR}/www.vogella.com-access.log combined
</VirtualHost>



You enable or disable virtual hosts with the following command.




#enable the vhost
sudo a2ensite vogella.conf
#disable the vhost
sudo a2dissite www.vogella.com

Comments

Popular posts from this blog

CakePHP 3.10 Content Management Tutorial

How to Install Croogo CMS on Ubuntu 18.04 LTS

How to Build a Dedicated Web Server : 4 Steps