are available here
-
Upload
webhostingguy -
Category
Documents
-
view
1.385 -
download
2
description
Transcript of are available here
![Page 1: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/1.jpg)
Web Technology – Web Server Setup : Chris Uriarte
Meeting 3: Advanced Apache Topics
Rutgers University Internet Institute
Instructor: Chris Uriarte(non IPVH exc)
![Page 2: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/2.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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.
![Page 3: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/3.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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)
![Page 4: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/4.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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
![Page 5: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/5.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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
![Page 6: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/6.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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.
![Page 7: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/7.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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.
![Page 8: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/8.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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.
![Page 9: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/9.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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.
![Page 10: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/10.jpg)
Web Technology – Web Server Setup : Chris Uriarte
IP-Based VH Configuration con’t.• Typical <VirtualHost> block in httpd.conf:<VirtualHost www.bearsnest.org>
DocumentRoot /home/www/bearsnest/htdocsServerAdmin [email protected] www.bearsnest.orgErrorLog logs/bears-error_logTransferLog logs/bears-access_logRedirect /adprotech http://www.adprotech.comAlias /staff /home/chrisjur/htdocs/bn/staff
</VirtualHost>
• The key: Vitual hosts will have their own unique DocumentRoot – different content for different sties.
![Page 11: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/11.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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.
![Page 12: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/12.jpg)
Web Technology – Web Server Setup : Chris Uriarte
Name-Based VH ExamplesNameVirtualHost 165.230.30.68<VirtualHost www.yoursite.org>
DocumentRoot /home/www/yoursite/htdocsServerAdmin [email protected] www.yoursite.comErrorLog logs/yoursite-error_log
</VirtualHost><VirtualHost www.mysite.com>
DocumentRoot /home/www/mysite/htdocsServerAdmin [email protected] www.mysite.orgErrorLog logs/mysite-error_log
</VirtualHost>
![Page 13: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/13.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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
![Page 14: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/14.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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.
![Page 15: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/15.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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.
![Page 16: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/16.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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.
![Page 17: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/17.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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.
![Page 18: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/18.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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.
![Page 19: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/19.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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.
• See Appendix E in Professional Apache for a guide to includes that Apache understands.
• Check out http://iti.rutgers.edu/~chrisjur/ssi.shtml for an example ( source file is /home/chrisjur/public_hthml/ssi.html on iti.rutgers.edu server)
![Page 20: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/20.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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.
![Page 21: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/21.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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/itiXXXX/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
![Page 22: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/22.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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/itiXXXX/apache/cgi-bin/”
![Page 23: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/23.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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>
![Page 24: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/24.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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)
![Page 25: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/25.jpg)
Web Technology – Web Server Setup : Chris Uriarte
CGI: Examples
• http://iti.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/chrisjur/public_html/cgi-bin/test.cgi)
• http://iti.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/chrisjur/public_html/cgi-bin/shell.cgi)
![Page 26: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/26.jpg)
Web Technology – Web Server Setup : Chris Uriarte
More CGI Examples…
• http://iti.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/chrisjur/public_html/cgi-bin/feedback.cgi) which emails form contents to a recipient and performs some validation logic.
![Page 27: are available here](https://reader033.fdocuments.in/reader033/viewer/2022061214/549a0b16b47959234d8b463b/html5/thumbnails/27.jpg)
Web Technology – Web Server Setup : Chris Uriarte
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/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://iti.rutgers.edu:YourPort/cgi-bin/test.cgi