appcluster-hosting

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
appcluster-hosting [2017/05/01 16:57] – ↷ Links adapted because of a move operation matthiasappcluster-hosting [2026/05/27 14:01] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Hosting bij NPO ICT ======+====== Appcluster hosting bij NPO Hosting en Streaming ======
  
-Wij bieden twee types hosting aan en een testomgeving:+Appcluster hosting bij NPO Hosting en Streaming is een vorm van 
 +managed hosting. Wij beheren de 
 +hardware, het OS, loadbalancers, webservers, applicatieservers en databases. 
 +De applicatie zelf (denk aan php, ruby, java of python code) wordt door u beheerd. 
 +We bieden twee types webhosting aan en een testomgeving:
  
-  * __[[http://hosting.omroep.nl/omgevingen#shared_plus_hosting|Shared Plus Hosting]]__+  * [[:omgevingen#shared_plus_hosting|Shared Plus Hosting]] 
 +  * [[:omgevingen#cell_block_hosting|Cell Block Hosting]] 
 +  * gratis((bij afname van een hosting pakket zit standaard ook een testomgeving))  [[:omgevingen#testomgeving|Testomgeving]]
  
-  * __[[http://hosting.omroep.nl/omgevingen#cell_block_hosting|Cell Block Hosting]]__+Prijzen kunnen opgevraagd worden via https://support.npohosting.nl of hosting@npo.nl.
  
-  * __gratis* [[http://hosting.omroep.nl/omgevingen#cell_block_hosting|Testomgeving]]__ +Wij richten ons op hosting van:
-//* bij afname van een hostingspakket zit standaard ook een testomgeving//  +
- +
-Prijzen kunnen opgevraagd worden via onze servicedesk. +
- +
-Wij richten ons op het hosten van:+
   * Apache en Nginx   * Apache en Nginx
-  * PHP(-fpm), Rails, Java (Tomcat), Python, NodeJS+  * PHP(-fpm), Ruby (Rails), Java (Tomcat), Python, NodeJS
   * Mysql, Redis, Postgresql en couchDB databases   * Mysql, Redis, Postgresql en couchDB databases
  
  
 Andere setups kunnen we vaak ook hosten, afgelopen jaren hebben wij waar nodig passend maatwerk geleverd.  Andere setups kunnen we vaak ook hosten, afgelopen jaren hebben wij waar nodig passend maatwerk geleverd. 
 +
 +Het kan zijn dat deze vorm van managed hosting "te veel" voor uw
 +doeleinden is, omdat u zelf dieper wilt kunnen ingrijpen in het OS,
 +bijvoorbeeld door zelf makkelijk extra software te kunnen installeren.
 +In dat geval is ons [[:chp]] misschien geschikter voor u.
  
  
- ====== Quick Start ====== +====== Quick Start ====== 
 Om ons platform (goed) te kunnen gebruiken is het belangrijk om van een aantal dingen op te hoogte te zijn.  Om ons platform (goed) te kunnen gebruiken is het belangrijk om van een aantal dingen op te hoogte te zijn. 
  
Line 27: Line 33:
   * [[sterretje-cluster:cluster-hosting_filesystem-layout|De layout van het filesystem]]; waar kan ik alles vinden en waar plaats ik mijn site/applicatie?   * [[sterretje-cluster:cluster-hosting_filesystem-layout|De layout van het filesystem]]; waar kan ik alles vinden en waar plaats ik mijn site/applicatie?
   * [[sterretje-cluster:appcluster-hosting_netwerkbeveiliging| De netwerkbeveiliging van ons platform en wat voor impact het op u heeft]]   * [[sterretje-cluster:appcluster-hosting_netwerkbeveiliging| De netwerkbeveiliging van ons platform en wat voor impact het op u heeft]]
-  * [[appcluster-hosting#de_uploadserver| De upload-(sites) server, hoe deze werkt en hoe deze te gebruiken]]+  * [[:appcluster-hosting#de_upload-sites-server| De upload-(sites) server, hoe deze werkt en hoe deze te gebruiken]]
   * [[:schaalbare-website|Lees vooral onze tips voor een goed schaalbare website eens door]]   * [[:schaalbare-website|Lees vooral onze tips voor een goed schaalbare website eens door]]
 +  * [[:dns:authorative | Domeinnamen registreren]]
 +  * [[:file-system-permissies | Filesystem permissies ]]
  
  
Line 37: Line 45:
   * [[sterretje-cluster:appcluster-hosting_ruby-on-rails| Het aanleveren van een Ruby on Rails applicatie]]   * [[sterretje-cluster:appcluster-hosting_ruby-on-rails| Het aanleveren van een Ruby on Rails applicatie]]
   * [[sterretje-cluster:appcluster-hosting_aanleveren-van-java-applicatie| Het aanleveren van een Java applicatie]]   * [[sterretje-cluster:appcluster-hosting_aanleveren-van-java-applicatie| Het aanleveren van een Java applicatie]]
 +  * [[sterretje-cluster:appcluster-hosting_wordpress|Het installeren van een Wordpress applicatie]]
  
  
  
-===== Standaard Software =====+====== Standaard Software ======
 Alle omgevingen zijn zoveel mogelijk gebaseerd op open source software Alle omgevingen zijn zoveel mogelijk gebaseerd op open source software
 componenten: Linux, Apache, MySQL, PHP, Tomcat, Ruby, Rails, etcetera. componenten: Linux, Apache, MySQL, PHP, Tomcat, Ruby, Rails, etcetera.
-Wij zijn namelijk overtuigd van de kracht van open source en bij NPO ICT is er de nodige kennis aanwezig van de gebruikte open source componenten.+Wij zijn namelijk overtuigd van de kracht van open source en bij NPO Hosting en Streaming is er de nodige kennis aanwezig van de gebruikte open source componenten.
  
-^ Component ^ Versie ^ Opmerkingen ^ +^ Component ^ Gebruikte software ^ Opmerkingen ^ 
-| OS | Scientific Linux 6, 64 bit | Scientific Linux is gebaseerd op Redhat Enterprise Linux. Vergelijkbaar met CentOS 6 [[https://www.scientificlinux.org/|kijk op hun website]] | +| OS | CentOS 8 stream, 64 bit | [[https://www.centos.org/|CentOS]] 8 Stream is compatible met Redhat Enterprise Linux 8 
-| HA-Loadbalancer | Keepalived-1.2.x | Loadbalancing wordt verzorgd door Keepalived dmv Direct Routing.  We draaien de loadbalancers in een master-slave configuratie, waarin de slave het overneemt als de master er mee ophoudt.  Het loadbalancen gebeurt op basis van direct routing, wat betekent dat retour verkeer niet door de loadbalancers heen hoeft, waardoor deze grote aantallen verkeer kunnen verwerken. | +| HA-Loadbalancer | Keepalived | Loadbalancing wordt verzorgd door Keepalived dmv Direct Routing.  We draaien de loadbalancers in een master-slave configuratie, waarin de slave het overneemt als de master er mee ophoudt.  Het loadbalancen gebeurt op basis van direct routing, wat betekent dat retour verkeer niet door de loadbalancers heen hoeft, waardoor deze grote aantallen verkeer kunnen verwerken. | 
-| Statische webserver / front-Proxy | Apache-2.4.x + mod_worker of Nginx | Deze front-proxies kunnen statische data (html, plaatjes, .css, .js etc.) snel en efficient uitserveren; vele malen sneller en efficienter dan een 'backend' applicatieserver. Daarnaast zorgen ze voor loadbalancing en failover tussen 2 of meer applicatieservers In geval van java sites kan de proxy ook caching verzorgen. Php, jsp en railsapplicaties worden geproxied naar een applicatieserver. | +| Statische webserver / front-Proxy | Apache-2.4 + mod_worker of Nginx | Deze front-proxies kunnen statische data (html, plaatjes, .css, .js etc.) snel en efficient uitserveren; vele malen sneller en efficienter dan een 'backend' applicatieserver. Daarnaast zorgen ze voor loadbalancing en failover tussen 2 of meer applicatieservers In geval van java sites kan de proxy ook caching verzorgen. Php, jsp en railsapplicaties worden geproxied naar een applicatieserver. | 
-Dynamische webserver voor PHP sites | Apache-2.4.x + mod_prefork of php-fpm | PHP sites draaien onder apache-2.4 Wij geven er de voorkeur aan om de PHP webservers achter een proxy te zetten, waarbij de proxy de statische content zelf kan uitserveren. +Applicatieserver | Apache-2.4 + mod_preforkphp-fpm, passenger, tomcat | PHP kan zowel in apache onder mod_php als fastcgi draaien. Ruby en Python applicaties draaien onder Passenger en Java applicaties draaien in een tomcat container 
-| PHP | php(-fpm)5.6 of nieuwer | Voor PHP kunnen wij [[sterretje-cluster:appcluster-hosting_php-modules|deze]] modules leveren   | +| PHP | php(-fpm) | Voor PHP kunnen wij [[sterretje-cluster:appcluster-hosting_php-modules|deze]] modules leveren   | 
-| Database | MySQL(tegenwoordig MariaDB) of Postgresql | | +| Database | MySQL(MariaDB of Mysql) of Postgresql | Wij bieden alleen versies aan die updates ontvangen 
-| Mail | postfix-2.5.x | Mail [[mail:clusterservices#Uitgaande mail|versturen]] en [[mail:clusterservices#Inkomende mail|ontvangen]] kan via verschillende methoden. |+| Mail | postfix | Mail [[mail:clusterservices#Uitgaande mail|versturen]] en [[mail:clusterservices#Inkomende mail|ontvangen]] kan via verschillende methoden. |
  
-==== Extra software in het appcluster ====+===== Extra software in het appcluster =====
 In het appcluster is naast de gewone LAMP stack (en Nginx) ook  andere hosting mogelijk van bijvoorbeeld Java, Ruby on Rails en NodeJS. Daartoe zijn de volgende software componenten In het appcluster is naast de gewone LAMP stack (en Nginx) ook  andere hosting mogelijk van bijvoorbeeld Java, Ruby on Rails en NodeJS. Daartoe zijn de volgende software componenten
 beschikbaar: beschikbaar:
  
 ^ Component ^ Versie ^ Opmerkingen ^ ^ Component ^ Versie ^ Opmerkingen ^
-| Java | jre-1.6.x (default) of jre-1.7.x (indien gewenst) Liefst gebruiken we alleen de runtime environment (jre). In sommige gevallen kunnen we ook een jdk aanbieden +| Java | openjdk-8 en -11 Normaliter bieden we alleen de runtime environment (jre) aanOp de upload servers is de volledige jdk beschikbaar 
-| Servlet container | Tomcat-6.| | +| Servlet container | tomcat-8.5 en -9 | | 
-| Ruby on Rails | Ruby-2.3.XPassenger5, Rubygems-1.3.x  | Wij bieden verschillende versies van Ruby aan, per site is dit in te regelen. | +| [[https://rubyonrails.org/|Ruby on Rails]] | Ruby-2.7Passenger-6, Rubygems  | Wij bieden verschillende versies van Ruby aan, per site is dit in te regelen. | 
-NodeJS | Node-6.4.x | |+[[https://www.python.org/|Python]] | 3.x | | 
 +| [[https://nodejs.org/en/|Node.js]] | 12.x | 
 +| ElasticSearch | 7.x | | 
 +| [[https://www.maxmind.com/en/geoip2-databases|Maxmind GeoIP location]] | zowel legacy als GeoIP2 | [[:maxmind-geoip|meer info]] |
 | Overig | - | Andere tools als ImageMagick, ffmpeg e.d. zijn op aanvraag beschikbaar | | Overig | - | Andere tools als ImageMagick, ffmpeg e.d. zijn op aanvraag beschikbaar |
  
-In overleg met NPO ICT kunnen eventueel extra ondersteunende pakketten geinstalleerd worden. De omgeving is op een andere manier ingericht dan een traditionele één-applicatie-per-(virtuele)serveromgeving. Bij ons neem je geen (virtuele) server af maar in feite een set resources, gekoppeld aan een setje software.+In overleg met NPO Hosting en Streaming kunnen eventueel extra ondersteunende pakketten geinstalleerd worden. De omgeving is op een andere manier ingericht dan een traditionele één-applicatie-per-(virtuele)serveromgeving. Bij ons neem je geen (virtuele) server af maar in feite een set resources, gekoppeld aan een setje software.
  
-De software heeft daarvoor een (kleine) aanpassing nodig om ervoor te zorgen dat je bijvoorbeeld meerdere Apache processen kan draaien op een server zonder dat deze elkaar in de weg zitten of de hele server kunnen claimen. Die processen noemen we dan instanties (meerder instanties van software X). Dit is vooral relevant voor de beheerders van NPO ICT, maar als websitebouwer betekend het:+De software heeft daarvoor een (kleine) aanpassing nodig om ervoor te zorgen dat je bijvoorbeeld meerdere Apache processen kan draaien op een server zonder dat deze elkaar in de weg zitten of de hele server kunnen claimen. Die processen noemen we dan instanties (meerder instanties van software X). Dit is vooral relevant voor de beheerders van NPO Hosting en Streaming, maar als websitebouwer betekend het:
   * Je hebt een centrale upload-server voor je site, de juiste instanties lezen je code in en serveren het uit. Je dus logt niet direct in op de webserver.   * Je hebt een centrale upload-server voor je site, de juiste instanties lezen je code in en serveren het uit. Je dus logt niet direct in op de webserver.
   * Wij hebben geen standaard package manager zoals yum of apt-get. Wij compileren zelf de software, met de nodige aanpassingen.   * Wij hebben geen standaard package manager zoals yum of apt-get. Wij compileren zelf de software, met de nodige aanpassingen.
Line 76: Line 88:
  
  
-==== De Upload-sites-server ====+====== De Upload-sites-server ======
 De upload-server is te bereiken vanaf upload-sites of upload-testsites voor de testomgeving. Dit is een server die verbonden is met de centrale storage en is bedoeld -zoals de naam laat zien- om sites en content daarvan te uploaden. Als ontwikkelaar heb je, als het goed is, een account voor upload-sites. Want het grote publiek heeft geen toegang tot dit systeem. De upload-server is te bereiken vanaf upload-sites of upload-testsites voor de testomgeving. Dit is een server die verbonden is met de centrale storage en is bedoeld -zoals de naam laat zien- om sites en content daarvan te uploaden. Als ontwikkelaar heb je, als het goed is, een account voor upload-sites. Want het grote publiek heeft geen toegang tot dit systeem.
  
Line 83: Line 95:
   * Bekijken van [[:faq:index#logging|logs]]   * Bekijken van [[:faq:index#logging|logs]]
   * Via upoad-sites kun je een sql connectie leggen naar je database.    * Via upoad-sites kun je een sql connectie leggen naar je database. 
-  * Shell toegang *1 (afhankelijk of je een ftp of sftp account hebt). Bijvoorbeeld om een cron-job aan te maken of via de commandline dingen te kopieren, te verplaatsen etc.  +  * Shell toegang((Let wel, dit is geen shell toegang tot de webservers zelf)) (afhankelijk of je een ftp of sftp account hebt). Bijvoorbeeld om een cron-job aan te maken of via de commandline dingen te kopieren, te verplaatsen etc. 
- +
-**Sftp** \\ +
-Als NPO ICT hebben we een duidelijke voorkeur dat men gebruik maakt van SFTP (d.m.v. ssh-keys). FTP is een oud en onveilig protocol wat alle data, ook wachtwoorden onversleuteld verstuurd. Als je verbinding niet beveiligd is liggen die gegevens voor het oprapen.  Je kunt SFTP gebruiken met Filezilla of Transmit voor de Mac en tal van andere FTP clients.+
  
 Om zelf (f)cron jobs te kunnen aanmaken hebben wij speciale [[:sterretje-cluster:shellservers|shellservers]] ingericht. Om zelf (f)cron jobs te kunnen aanmaken hebben wij speciale [[:sterretje-cluster:shellservers|shellservers]] ingericht.
- +===Sftp=== 
-//*1 Let weldit is geen shell toegang tot de webservers zelf// +Als NPO Hosting en Streaming hebben we een duidelijke voorkeur dat men gebruik maakt van SFTP (d.m.v. ssh-keys). FTP is een oud en onveilig protocol wat alle dataook wachtwoorden onversleuteld verstuurd. Als je verbinding niet beveiligd is liggen die gegevens voor het oprapen.  Je kunt SFTP gebruiken met Filezilla of Transmit voor de Mac en tal van andere FTP clients.
  
  
-==== De Frontproxy-, Applicatie- en Database servers ====+====== De Frontproxy-, Applicatie- en Database servers ======
 Al het webverkeer wordt afgehandeld door de frontproxies, deze zitten tussen de 'buitenwereld' en de applicatieservers. De belangrijkst reden hiervoor is performance en schaalbaarheid. Dit wordt vooral bereikt door de caching: Al het webverkeer wordt afgehandeld door de frontproxies, deze zitten tussen de 'buitenwereld' en de applicatieservers. De belangrijkst reden hiervoor is performance en schaalbaarheid. Dit wordt vooral bereikt door de caching:
 alle requests die uit de cache geserveerd kunnen worden hoeven niet door alle requests die uit de cache geserveerd kunnen worden hoeven niet door
Line 113: Line 122:
  
  
-==== Logrotatie van applicatie logs ====+====== Logrotatie van applicatie logs ======
 Dit kan gebruikt worden om logfiles die door webapplicaties weggeschreven worden dagelijks te laten roteren. Dit gebeurt op eenzelfde wijze als ook voor bijvoorbeeld Apache logfiles het geval is. Dit kan gebruikt worden om logfiles die door webapplicaties weggeschreven worden dagelijks te laten roteren. Dit gebeurt op eenzelfde wijze als ook voor bijvoorbeeld Apache logfiles het geval is.
  
Line 127: Line 136:
  
 Omdat een webapplicatie door meerdere webserver instanties wordt uitgeserveerd, wordt het aangeraden om per instantie een logfile weg te schrijven. Zo wordt voorkomen dat meerdere instanties in hetzelfde file op dezelfde tijd gaan schrijven. Binnen php kan daar bijvoorbeeld $_SERVER['INSTANCENAME'] voor gebruikt worden, om de naam van de instantie te achterhalen. Omdat een webapplicatie door meerdere webserver instanties wordt uitgeserveerd, wordt het aangeraden om per instantie een logfile weg te schrijven. Zo wordt voorkomen dat meerdere instanties in hetzelfde file op dezelfde tijd gaan schrijven. Binnen php kan daar bijvoorbeeld $_SERVER['INSTANCENAME'] voor gebruikt worden, om de naam van de instantie te achterhalen.
 +
 +Het analyseren van de log-files kan gemakkelijk via GoAccess. [[.:goaccess|Hier]] vind je de juiste settings om de logfiles te parsen.  
  
  • appcluster-hosting.1493650626.txt.gz
  • Last modified: 2026/05/27 14:01
  • (external edit)