Difference between revisions of "Apache"

From HackerNet
Jump to: navigation, search
m
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Guider]]
+
Apache är en av världens mest använda webbservrar. Och hostar idag ca 35-40% av alla hemsidor i världen. Apache är en väldigt enkel webbserver att konfigurera och har även flera användbara tillägg.
Apache är en av världens mest använda webbservrar. Och hostar idag ca 35-40% av alla hemsidor i världen. Apache är en väldigt enkel webbserver och configurera och har även flera användbara tillägg.
+
 
 +
==Installation==
 +
sudo apt-get install apache2
  
 
=== Apache kommandon ===
 
=== Apache kommandon ===
<code>a2dismod</code> För att stänga av ett tillägg. Aktiverade tillägg finns i mappen <code>/etc/apache2/mods-enabled</code>
+
<code>a2ensite</code> För att aktivera en sida. Tillgängliga sidor finns i mappen <code>/etc/apache2/sites-available</code>
 
 
<code>a2enmod</code> För att aktivera ett tillägg. Tillgängliga tillägg finns i mappen <code>/etc/apache2/mods-available</code>
 
  
 
<code>a2dissite</code> För att inaktivera av en sida. Aktiverade sidor finns i mappen <code>/etc/apache2/sites-enabled</code>  
 
<code>a2dissite</code> För att inaktivera av en sida. Aktiverade sidor finns i mappen <code>/etc/apache2/sites-enabled</code>  
  
<code>a2ensite</code> För att aktivera en sida. Tillgängliga sidor finns i mappen <code>/etc/apache2/sites-available</code>
+
<code>a2dismod</code> För att stänga av ett tillägg. Aktiverade tillägg finns i mappen <code>/etc/apache2/mods-enabled</code>
  
=== vHost ===
+
<code>a2enmod</code> För att aktivera ett tillägg. Tillgängliga tillägg finns i mappen <code>/etc/apache2/mods-available</code>
Virtualhost är bra att använda om man bara har en IP utåt och vill dela port 80/443 med andra hemsidor men endå ha olika domänamn.
 
  
För att få virtualhost att fungera så räcker det att man lägger till denna raden i apache configen.
+
== Konfiguration ==
 +
vHosts är bra att använda om man bara har en IP utåt och vill dela port 80/443 med flera hemsidor men ha olika domännamn. För att få virtualhost att fungera så räcker det att man lägger till denna raden i apache configen.
 +
ServerName hackernet.se
  
ServerName hackernet.se
 
 
Kopiera default filen under sites-available.
 
Kopiera default filen under sites-available.
  cp /etc/apache2/sites-available/default ./hackernet
+
  cp /etc/apache2/sites-available/default /etc/apache2/sites-available/hackernet
Öppna den nya filen och lägg till raden precis under <code>ServerAdmin</code>och över <code>DocumentRoot</code>
+
Öppna den nya filen och lägg till raden precis under <code>ServerAdmin</code> och över <code>DocumentRoot</code>
  
Ändra även <code>DocumentRoot</code> och <code>Directory </code>ifall du vill att en annan hemsida ska visas istället för orginal.
+
Ändra även <code>DocumentRoot</code> och <code>Directory</code> ifall du vill att en annan hemsida ska visas istället för orginal.
  
 
Aktivera sedan sidan med  
 
Aktivera sedan sidan med  
 
  a2ensite hackernet
 
  a2ensite hackernet
 +
 +
=== Apachectl ===
 +
Kolla grundläggande konfiguration:
 +
apachectl -S
 +
 +
Kör ett configtest:
 +
apachectl -t
 +
 +
== Permissions ==
 +
Följande är en bra grund för filrättigheter.
 +
chown root:www-data /var/www/html -R
 +
chmod g+s /var/www/html
 +
chmod o-wrx /var/www/html -R
 +
www-data, apache2′s user, har nu grupp-ägarskapet för default web root och alla filer däri. g+s säger åt filsystemet att alla nya filer som skapas får samma grupp-ägarskap.
  
 
==Log files==
 
==Log files==
 +
tail -f /var/log/apache2/access.log
  
 
==SSL==
 
==SSL==
Generera säker konfiguration.  
+
Enable module
  https://mozilla.github.io/server-side-tls/ssl-config-generator/
+
sudo a2enmod ssl && sudo a2enmod headers && sudo service apache2 restart
 +
 
 +
'''Certifikat''' <br/>
 +
Fixa ett certifikat, antingen från en CA (t.ex. [[Let%27s_Encrypt|Let's Encrypt]]) eller [[Digitala_Certifikat#Self-signed|self-signed]].
 +
 
 +
Konfiguration med säkerhet i fokus.  
 +
  https://cipherli.st/
 +
 
 +
Aktivera vHost
 +
sudo a2ensite hackernet && sudo service apache2 restart
  
 
== Dölj Version ==
 
== Dölj Version ==
Line 36: Line 60:
 
  ServerTokens ProductOnly
 
  ServerTokens ProductOnly
 
  ServerSignature Off
 
  ServerSignature Off
 +
 +
==ApacheBench==
 +
Benchmarking tool
 +
''sudo apt-get install apache2-utils''
 +
ab -n 500 -c 100 http://example.com/
 +
 +
==Known errors==
 +
===[warn] _default_ VirtualHost overlap on port 443, the first has precedence===
 +
 +
Kan man få när man försöker skapa flera vhost på port 443. Man märker också problemet att alla olika vhostar på port 443 pekar på samma sida.
 +
 +
För att fixa lägg till <code>NameVirtualHost *:443</code> i din <code>ports.conf</code> eller <code>httpd.conf</code> fil.
 +
<syntaxhighlight lang=apache>
 +
<IfModule mod_ssl.c>
 +
    # If you add NameVirtualHost *:443 here, you will also have to change
 +
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
 +
    # to <VirtualHost *:443>
 +
    # Server Name Indication for SSL named virtual hosts is currently not
 +
    # supported by MSIE on Windows XP.
 +
    NameVirtualHost *:443
 +
    Listen 443
 +
</IfModule>
 +
</syntaxhighlight>
 +
 +
[[Category:Guider]]

Latest revision as of 17:46, 21 May 2016

Apache är en av världens mest använda webbservrar. Och hostar idag ca 35-40% av alla hemsidor i världen. Apache är en väldigt enkel webbserver att konfigurera och har även flera användbara tillägg.

Installation

sudo apt-get install apache2

Apache kommandon

a2ensite För att aktivera en sida. Tillgängliga sidor finns i mappen /etc/apache2/sites-available

a2dissite För att inaktivera av en sida. Aktiverade sidor finns i mappen /etc/apache2/sites-enabled

a2dismod För att stänga av ett tillägg. Aktiverade tillägg finns i mappen /etc/apache2/mods-enabled

a2enmod För att aktivera ett tillägg. Tillgängliga tillägg finns i mappen /etc/apache2/mods-available

Konfiguration

vHosts är bra att använda om man bara har en IP utåt och vill dela port 80/443 med flera hemsidor men ha olika domännamn. För att få virtualhost att fungera så räcker det att man lägger till denna raden i apache configen.

ServerName hackernet.se

Kopiera default filen under sites-available.

cp /etc/apache2/sites-available/default /etc/apache2/sites-available/hackernet

Öppna den nya filen och lägg till raden precis under ServerAdmin och över DocumentRoot

Ändra även DocumentRoot och Directory ifall du vill att en annan hemsida ska visas istället för orginal.

Aktivera sedan sidan med

a2ensite hackernet

Apachectl

Kolla grundläggande konfiguration:

apachectl -S

Kör ett configtest:

apachectl -t

Permissions

Följande är en bra grund för filrättigheter.

chown root:www-data /var/www/html -R
chmod g+s /var/www/html
chmod o-wrx /var/www/html -R

www-data, apache2′s user, har nu grupp-ägarskapet för default web root och alla filer däri. g+s säger åt filsystemet att alla nya filer som skapas får samma grupp-ägarskap.

Log files

tail -f /var/log/apache2/access.log

SSL

Enable module

sudo a2enmod ssl && sudo a2enmod headers && sudo service apache2 restart

Certifikat
Fixa ett certifikat, antingen från en CA (t.ex. Let's Encrypt) eller self-signed.

Konfiguration med säkerhet i fokus.

https://cipherli.st/

Aktivera vHost

sudo a2ensite hackernet && sudo service apache2 restart

Dölj Version

Skriv följande i Apache.conf/httpd.conf

ServerTokens ProductOnly
ServerSignature Off

ApacheBench

Benchmarking tool

sudo apt-get install apache2-utils
ab -n 500 -c 100 http://example.com/

Known errors

[warn] _default_ VirtualHost overlap on port 443, the first has precedence

Kan man få när man försöker skapa flera vhost på port 443. Man märker också problemet att alla olika vhostar på port 443 pekar på samma sida.

För att fixa lägg till NameVirtualHost *:443 i din ports.conf eller httpd.conf fil.

 <IfModule mod_ssl.c>
     # If you add NameVirtualHost *:443 here, you will also have to change
     # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
     # to <VirtualHost *:443>
     # Server Name Indication for SSL named virtual hosts is currently not
     # supported by MSIE on Windows XP.
     NameVirtualHost *:443
     Listen 443
 </IfModule>