Service Management in Networks - Leischner

Practice sheet 8 - Webserver/PHP (1 Point)

 

Task 1 - Bootstrap Website

With the Bootstrap-Framework you can easily create high quality websites with responsive design. The Content Delivery Network BootstrapCDN can be used to efficiently deliver the required CSS stylesheets and JavaScript.

  1. Create a subdirectory htmlphp (for the content files of the website) and in it a subdirectory assets (for all help files). Now create an elementary structured web page index.html that uses the Bootstrap 4.0 framework in combination with the BootstrapCDN.
  2. Now create a Bootstrap Carousel which shows three or more (royalty-free) images. Test your website in a browser.
  3. What do you need to change to your index.html website to run it without the BootstrapCDN? Discuss the advantages and disadvantages of using the BootstrapCDN. What effect does the use of a CDN have on the call time of the website?
  4. Read Chapter 1 of The Essential CDN Guide for an introduction to Content Delivery Network (CDN) and answer the following questions:
  • What network performance should a CDN optimize?
  • For which applications does the CDN approach bring a great benefit, for which a lesser one?
  • Describe the three essential building blocks for a CDN.
  • Describe the development from static CDN via dynamic CDN to multi-purpose CDN. What are the differences?
  • What is a reverse proxy and what are its main tasks?

 

Task 2 - PHP Webserver (dynamic)

Create a subdirectory pr08a2 as base folder for this task. Copy the website folder htmlphp from task 1 in it.

Now, based on Docker, we would like to set up a PHP web server WebServer_dyn, which will make our website in ./htmlphp/* available on our local computer at http://172.16.0.100:20820 . The port number 20820 is structured as follows:

  • 2 stands for the course Service Management in Networks,
  • 08 for practice sheet 8 and
  • 2 for task 2 on this practice sheet,
  • the last digit 0 can be used for further purposes.

Our PHP webserver should be a "dynamic" server, i.e. if we make changes to our website in the directory htmlphp/, these should be delivered accordingly by our web server WebServer_dyn.

  1. Create a requirements catalog for choosing a suitable Docker image. Select a suitable Docker image from the Docker Hub and justify your selection based on your requirements catalog. Does it make sense to use the latest tag? ? Discuss this against the background: Docker: he latest Confusion . Which docker image did you chose (specify repository_name:tag_name)?
  2.  Create a dockerfile in the task directory pr08a2 for the web server Webserver_dyn . Build an image with the tag pr08a2-img and run it locally as pr08a2-Webserver_dyn at http://172.16.0.100:10820 .
  3. What is the exact docker run command? Explain each component.
  4. Write an itempotent(!) script start-pr08a2-webserver_dyn.sh that starts and restarts your webserver.
  5. Test your webserver and your script thoroughly.
  6. If not given automatically, install and enable PHP on your server. Copy the content of file  hallo.php.zip  into the directory htmlphp/ and test your PHP web server with http://172.16.0.100:20820/hallo.php .

 

Task 3 - PHP Webserver (static)

  1. In the pr08a3 subdirectory, create a docker file for the Web server Webserver_stat that provides the web site htmlphp/* as a static Website. Create an image with the tag pr08a3-img from the docker file. Write an  itempotent(!) script start-pr08a3-webserver_stat.sh to run it locally as pr08a3-Webserver_stat at http://172.16.0.100:20830 .
  2. Can this website be changed afterwards? If so, how? Discuss the advantages and disadvantages of this approach. What are typical use cases?

 

Task 4 - Network interfaces

Go inside the container pr08a2-Webserver_stat, execute the command ip a and analyse the information. Then, on CLI of dockhost use the commands brctl show and ethtool -S veth56d1099 to gather further information on the interfaces.

Analyze all your information and give an in-depth explanation of the interrelation between the bridge and the interfaces.

Note: The command docker network inspect bridge gives you also detailed information on the docker0 bridge.

 

Please, submit your answers of the questions as pdf and the git code vagrant.zip as a zip file to LEA - Lernen und Arbeiten online .

 

Impressum/a> | Datenschutz | leischner.inf.h-brs.de, last modification: 26.11.2018-18.46