Your SlideShare is downloading. ×
0
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Apache Web Server Setup 3
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Apache Web Server Setup 3

3,857

Published on

http://www.cju.com/classes/2002/WMB-520/

http://www.cju.com/classes/2002/WMB-520/

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,857
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
122
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Meeting 3: Advanced Apache Topics Rutgers University Internet Institute Instructor: Chris Uriarte (non IPVH exc)
  • 2. Virtual Hosting
    • General term used when you run more than one website on a single system.
    • Allows ISPs and hosting providers to make money by sharing resources among clients. Allows companies and individuals to save time and money - a single machine can host many websites.
  • 3. Options for Hosting More than One Website on a Single System
    • Run separate instances of httpd servers: httpd –f /usr/local/apache/conf/httpd-virtual.conf
    • Run a server that will listen on multiple ports and serve different content depending on the port.
    • True Virtual Hosting - Allows multiple IP address and/or host names to be served through a single Apache server.
      • IP-Based
      • Name-Based (not supported by very early Web browsers…Netscape 2.0/IE 3.0)
  • 4. Virtual Hosting: IP Based
    • You must configure your machine to “listen” for multiple IP addresses. One NIC binds to multiple IP addresses
    • One hostname is associated with each IP address
    www.yahoo.com sports.yahoo.com 216.32.74.52 216.115.105.243 SERVER NIC
  • 5. Virtual Hosting: Name Based
    • A machine can host multiple websites using only 1 IP address
    • All hostnames have the same IP address
    • Becoming more and more popular.
    some.mydomain.com www.hisdomain.com 165.145.26.110 SERVER NIC
  • 6. Setting-Up IP-Based Virtual Hosting: An Overview
    • Once you have secured the domain names/hostnames you want to use for your website, you need to assign each of them a unique IP address.
    • Some ISPs can assign you additional IP addresses.
    • Blocks of IP addresses are usually assigned with business T1s or DSL lines.
  • 7. Setting-Up IP-Based Virtual Hosting, Con’t.
    • You need to have DNS properly configured for your domains, e.g. The world needs to know that www.yourdomain.com is at the IP address 123.23.34.56.
    • Remember, your ISP can usually provide DNS service for your domains.
  • 8. IP-Based Virtual Hosting: Setting Up Your Machine
    • Your web server needs to be configured to listen for the IP addresses related to your websites:
    • UNIX-based OSs allow you to configure multiple IP addresses using the ifconfig command (must be run as root)
    • Usage: ifconfig interface:<sub-number> IP
      • e.g: ifconfig eth0:0 165.230.30.71
      • ifconfig eth0:1 165.230.30.72
    • WinNT IP setup through Network control panel.
  • 9. Configuring Apache for IP-Based Virtual Hosting
    • Configuring Apache for Virtual Hosting is quite simple: Simply add a <VirtualHost> block within the httpd.conf file.
    • Format:
      • <VirtualHost IP-or-HOSTNAME:Port>
      • #Any Valid httpd.conf directives
      • </VirtualHost>
    • Required for each Virtual Host website your are using…therefore your httpd.conf can have multiple <VirtualHost> blocks.
  • 10. IP-Based VH Configuration con’t.
    • Typical <VirtualHost> block in httpd.conf:
    • <VirtualHost www.bearsnest.org>
    • DocumentRoot /home/www/bearsnest/htdocs
    • ServerAdmin chrisjur@cju.com
    • ServerName www.bearsnest.org
    • ErrorLog logs/bears-error_log
    • TransferLog logs/bears-access_log
    • Redirect /adprotech http://www.adprotech.com
    • Alias /staff /home/staff/chrisjur/htdocs/bn/staff
    • </VirtualHost>
    • The key: Vitual hosts will have their own unique DocumentRoot – different content for different sties.
  • 11. Steps for Setting-Up Name-Based Virtual Hosting
    • When setting up Name-based virtual hosts, you need to add the special NameVirtialHost Directive to your httpd.conf:
      • NameVirtualHost <Your IP Address>
    • Which tells Apache the single IP address you will use for all your websites.
    • Now simply add <VirtualHost> blocks for each of your website domains.
  • 12. Name-Based VH Examples
    • NameVirtualHost 165.230.30.68
    • <VirtualHost www.yoursite.org>
    • DocumentRoot /home/www/yoursite/htdocs
    • ServerAdmin you@yoursite.com
    • ServerName www.yoursite.com
    • ErrorLog logs/yoursite-error_log
    • </VirtualHost>
    • <VirtualHost www.mysite.com>
    • DocumentRoot /home/www/mysite/htdocs
    • ServerAdmin me@mysite.com
    • ServerName www.mysite.org
    • ErrorLog logs/mysite-error_log
    • </VirtualHost>
  • 13. Virtual Hosting Recap
    • Get your DNS configured for each domain
    • IP-based Virtual Hosting vs. Name-based Virtual Hosting
    • Configure your server for multiple IP addresses if using IP-based Virtual Hosting
    • Create new directories for new Document Roots
    • Add <VirtualHost> blocks to your httpd.conf
  • 14. Delivering Dynamic Content
    • Two ways of delivering dynamic content for the Web: client-side or server-side technologies
    • Client-Side
      • Elements are downloaded to the browser and execute on the client’s system.
      • Examples: JavaScript, Java Applets, client-side image maps.
      • Web server administrator needs to see that MIME types are set correctly.
  • 15. Dynamic Content, con’t.
    • Server-Side
      • Server processes “on-the-fly” content that is passed to client browser.
      • Examples: server-side includes, CGI (Common Gateway Interface), server-side image maps, ASP (Active Server Pages), Java Servlets. PHP
      • Server-side technologies generally require additional configuration of the Web server in order to function properly. Usually require specific Apache modules.
      • Enabling server-side technologies generally has security implications.
  • 16. Server-Side Includes
    • Server-side includes are directives that can be placed in HTML documents to execute other programs or to output data.
    • Requires mod_include.
    • To enable SSI, make the following modifications to httpd.conf:
      • Options Includes (or IncludesNOEXEC)
    • The options directive only works within a specific Directory or VirtualHost container.
  • 17. Enabling Server Side Includes, con’t…
    • To tell Apache how to interpret SSI documents, add the following to httpd.conf:
      • AddType text/html .shtml
      • AddHandler server-parsed .shtml
    • These lines are usually commented out by default, so you just need to uncomment them.
    • All files with indicated extension(s) will be parsed by Apache server prior to being transmitted to the client, e.g. web page files that end with .shtml can contain SSI’s.
  • 18. Server-Side Includes Examples
    • The general form of the SSI directive is: <!--#command parameter=“value”--> For example:
      • <!—include file=“include.html”-->
      • Will insert the contents of the file file “include.html” when displayed in the client’s browser.
      • <!—echo var=“LAST_MODIFIED”-->
      • Prints the last time your HTML file was modified.
  • 19. Server Side Includes, con’t.
    • The Server Side Include in the .html file is evaluated by Apache and the output is displayed to the client.
    • Check out http:// blender.rutgers.edu/~chrisjur/ssi.shtml for an example ( source file is /home/staff/chrisjur/public_html/ssi.shtml on blender.rutgers.edu server)
  • 20. CGI
    • CGI (Common Gateway Interface) is a protocol for getting, processing, and returning information through Web pages.
    • CGI programs or scripts can be written in a variety of languages including Perl, Python, VB Script, JavaScript, and C.
    • CGI scripts are generally triggered by data supplied by the client.
  • 21. Enabling CGI
    • There are two ways to enable Apache to recognize CGI scripts:
      • To allow CGI scripts in one system-wide directory outside of the document root (All CGI programs must be placed in one directory):
        • ScriptAlias /cgi-bin “/home/students/<username>/apache/cgi-bin/”
      • Within a container:
        • Options ExecCGI <other options>
        • SetHandler cgi-script
      • To enable files with only specific extensions as CGI scripts use AddHandler instead of
        • SetHandler: AddHandler cgi-script .cgi
  • 22. Enabling CGI: Example 1
    • Sometimes it’s convenient to have one centrialized “cgi-bin” directory where all CGI programs are kept.
    • You can access all the scripts through http://www.domain.com/cgi-bin/scriptname
    • To do this at the following line to httpd.conf:
    • ScriptAlias /cgi-bin “/home/students/<username>/apache/cgi-bin/”
  • 23. Enabling CGI: Example 2
    • You can enable CGI scripts to be placed in any directory by specifying some CGI directives in a directory container within the httpd.conf or an .htaccess file. This allows CGI execution in the directory specified:
    • <Directory /home/user/htdocs>
    • Options ExecCGI (other options…)
    • SetHandler cgi-script
    • </Directory>
  • 24. Limiting CGI Access
    • If you do not have Options ExecCGI or a ScriptAlias directive, the execution of CGI programs will be denied.
    • You can limit CGI access to only programs that end with a specific extension:
      • SetHandler: AddHandler cgi-script .cgi
    • (limits CGI execution to programs that only end in .cgi)
  • 25. CGI: Examples
    • http://blender.rutgers.edu/~chrisjur/cgi-bin/test.cgi - CGI script written in Perl, simply outputs current time and the end-user’s browser type (source at /home/staff/chrisjur/public_html/cgi-bin/test.cgi)
    • http://blender.rutgers.edu/~chrisjur/cgi-bin/shell.cgi - Written as a shell script in, prints current date/time and lists files in its directories (source at /home/staff/chrisjur/public_html/cgi-bin/shell.cgi)
  • 26. More CGI Examples…
    • http:// blender.rutgers.edu/~chrisjur/feedback.html - More traditional example of what CGI is used for. An HTML form posts to a CGI script written in Perl (/home/staff/chrisjur/public_html/cgi-bin/feedback.cgi) which emails form contents to a recipient and performs some validation logic.
  • 27. Exercise: Enabling CGI
    • Enable CGI via the ScriptAlias directive in your httpd.conf. Specify a cgi-bin directory to place all your CGI scripts.
    • Copy /home/staff/chrisjur/test.cgi script to your cgi-bin directory. Make the test.cgi script executeable (chmod a+x test.cgi)
    • Access the script via http://blender.rutgers.edu:YourPort/cgi-bin/test.cgi

×