Web Servers

advertisement
CS 268





IP addressing
Domain names
Domain name servers
Host configuration file
URLs

IPv4 address space 232 = 4.2 * 109
◦ 32 bit address
◦ four 0-255 sections (in base 10): xxx.xxx.xxx.xxx
 137.28.40.1 -> address currently assigned to my laptop
 in binary the above 32 bit address is:
10001001 00011100 00101010 00000001

IPv6 address space 2128 = 3.4 * 1038
◦
◦
◦
◦
◦
fe80::e510:9de4:c9d:a9ee -> IPv6 address currently assigned to my laptop
340,282,366,920,938,463,463,374,607,431,768,211,456
It's enough addresses for many trillions of addresses to be assigned to every human being on the
planet.
The earth is about 4.5 billion years old. If we had been assigning IPv6 addresses at a rate of 1
billion per second since the earth was formed, we would have by now used up less than one
trillionth of the address space.
The earth's surface area is about 510 trillion square meters. If a typical computer has a footprint of
about a tenth of a square meter, we would have to stack computers 10 billion high blanketing the
entire surface of the earth to use up that same trillionth of the address space.
http://www.google.com/intl/en/ipv6/statistics/
http://en.wikipedia.org/wiki/IPv4
http://en.wikipedia.org/wiki/IPv6

IPv6 addresses are eight groups of four hexadecimal digits;
each group is separated by a colon (:)
◦
◦

In binary:
0010000111011010 0000000011010011 0000000000000000 0010111100111011
0000001010101010 0000000011111111 1111111000101000 1001110001011010
In hex:
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A
In 2012, despite celebrating its 14-year anniversary as a
Standards Track protocol, IPv6 is still in its infancy in terms of
general world-wide deployment.
◦ In April 2011 2 of the 5 Regional Internet Registries (RIRs) ran out

A recent study by Google indicates that penetration is still
less than one percent of Internet traffic in any country
◦ Found a study from 6/2013 showing it has increased to
about 1.5%
◦ Found another from 12/2013 showing it up to 5%
http://arstechnica.com/business/2013/01/ipv6-takes-one-step-forward-ipv4-two-steps-back-in-2012/

Symbolic representations
◦ Recognizable names, to numerically addressed internet resources

www.uwec.edu
◦ corresponds to: 137.28.3.13


Use nslookup utility to verify this (now blocked on this campus)

Try this: http://centralops.net/co/
Each label to the left specifies a subdivision (sub domain) of
the domain to the right of it.
◦ Note: “sub domain” expresses relative dependence
◦ For example: uwec is a sub domain of the edu domain, and www is a sub
domain of the domain uwec.edu.
◦ In theory, this subdivision can go down 127 levels.

A hostname refers to a domain name that has one or more
associated IP addresses
◦ 'www.uwec.edu' and uwec.edu' domains are both hostnames
◦ the 'edu' domain is not.




Map domain names to ip addresses
Required by class B domains and above
Hierarchy of domain name servers
If not found in local server, request moves to server
higher in hierarchy.
◦ the term "root name server" is generally used to describe
the thirteen well-known root name servers that implement
the root namespace domain for the Internet's official global
implementation of the Domain Name System



Alternate way to resolve domain names without using the
Domain Name System
Text file that contains IP addresses separated by at least once
space and then a domain name, with each entry on its own
line
Example:
# The localhost entry should be in every HOSTS file and is used
# to point back to yourself. No longer needed for Windows 7
127.0.0.1 localhost
# Test server for the website 192.168.1.2
test.beepingcomputer.com
# Block known malicious sites
127.0.0.1 admin.abcsearch.com
127.0.0.1 www3.abcsearch.com
127.0.0.1 www.abcsearch.com
For MS Windows OS it is found here: C:\WINDOWS\system32\drivers\etc
For Linux it is usually found here: /etc/hosts

Uniform Resource Locator
◦ Or "Web Address"
◦ Example:
http://cs.uwec.edu/~morriscm/priv/Spr14/CS268/268S14_syllabus.htm

Consists of:
◦ protocol identifier – http:// or ftp:// etc.
◦ domain (and host) name
 cs.uwec.edu
◦ path and file to access
 ~morriscm/priv/Spr14/CS268/268S14_syllabus.htm

http://cs.uwec.edu/~morriscm/
A. default.htm
B. home.htm
C. index.htm
D. impossible to tell
E. This is an error – no file is specified


Almost all web sites could be handled reliably by most of the web servers on the market
today. For most of these sites the choice of which web server to use is irrelevant. The
choice of a web server is really only important for the largest sites and those that plan to
have some type of application or service. In fact, most of these application sites will be
extremely simple. Changing between platforms would be a small task. In these cases the
choice of server is not particularly important.
We are left with complex, large mission critical sites where server choice is important.
First, there is a large investment of time and development resources into creating the
site. Here the choice of web server is important to reduce the development time and
select a solution which will exist in the long term. These sites place a high priority on
reliability and scalability. The investment in hardware and operational resources will be
large and difficult to change (eg: Unix vs Windows).
*http://www.e-gineer.com/v1/articles/web-server-popularity.htm
Note: an Active site can have many hostnames associated with it
from: http://news.netcraft.com/ http://news.netcraft.com/active-sites/
http://news.netcraft.com/archives/2014/04/02/april-2014-web-server-survey.html

Sites actively altered/modified by site developers
◦ Only sites with distinct content are counted

Why does this matter?
◦ A considerable number of sites are generated automatically
◦ Happens when a customer purchases a domain name
◦ Or when an ISP like GoDaddy locks up a number of domain
names (owns17million hostnames – not all currently used)
http://news.netcraft.com/archives/2014/04/02/april-2014-web-server-survey.html
http://news.netcraft.com/archives/2014/04/02/april-2014-web-server-survey.html
http://news.netcraft.com/archives/2014/04/02/april-2014-web-server-survey.html
http://news.netcraft.com/archives/2014/04/03/most-reliable-hosting-company-sites-in-march-2014-2.html
...
http://searchdns.netcraft.com/?host=uwec.edu&x=0&y=0


Using your VM Ware server
Web Servers
◦ Apache 2.2.x
◦ Tomcat 6.x
◦ Internet Information Services

Administering a Web Server
◦
◦
◦
◦
◦
Aliases/Contexts/Virtual Directories
Home folder
Default files
Application folders
Security issues











Start the VMware Vsphere Client application
Enter UWEC\yourUsername
Enter your UWEC password
Ignore the Certificate Warnings dialog (if displayed)
First time in – click the Inventory icon in the Inventory
tab (upper left of the screen). Then open the
bubbles.cs.uwec.edu entry (click + to left of this).
Right click your username entry, select Power and
Power On
Next, right click your username again and select
Open Console (If you see a message that the virtual
machine might have been moved or copied. Keep the
default "copied" choice and click OK)
When prompted to press Ctrl-Alt-Del to begin, first click
in the Player window to direct input to the virtual pc,
then , press Ctrl-Alt-Insert (instead of Ctrl-Alt-Del).
Login as Administrator with the password
RedBluegreen115 (don't change this password – I want to be able to login and check your work if needed).
If/when asked to activate windows click "Ask me later."
To move the mouse out of your virtual server press Ctrl-Alt at the same time. To return, just click in the
server's window.
Once you have logged in, you can start making changes to your server. However, please be aware that
although this is a virtual machine, it still acts as a real one, so it does need to be shut down properly. Loss of




Once you have logged in, you can start making changes to your server. However, please be aware that
although this is a virtual machine, it still acts as a real one, so it needs to be shut down properly.
Loss of data can occur from a server crash, so don’t shut down improperly unless you absolutely have to.
To shut down your server, go to the start menu and click shut down. It will ask you why you are shutting down
your server. You can choose one of the options from the list and/or put in a comment. Note you have to do at
least one of the two. After the VM has been properly shut down, you can close the VMware Player.
Last year due to bandwidth issues, you could only run your server on campus from a CS lab. Don't know if this
is the same this year (a different server is hosting the virtual servers this year).



Later in this slideshow you will learn how to set up web
servers.
When it is time to test connecting to your server from another
computer – your server has to be running.
You can do this testing from the "same" computer since the
VM Ware computer is a different "virtual" computer running in
your current computer. (Different IP address, operating
system, everything…)



Respond to requests for Web pages by sending the result of
processing those pages to the viewer
For a dynamic Web page, this involves executing all of the code on
the page and returning the result to the viewer
URL identifies a specific page
◦ The first part of the URL names the server and port number. The default port number,
if none is specified in the URL, is 80
◦ There can be more than one Web server running on a given machine, each on a
different port

Usually, a Web server will host more than one site
◦ Files of all Web sites can be stored in folders in the Web root folder of the server
◦ Or, the folders can be placed in other locations in the server's file system
 And pointers are created in the Web server configuration that point to the actual
folders containing the sites.
 These pointers are referred to by different names
 aliases (Apache)
 contexts (Apache-Tomcat).
 virtual directories (Microsoft IIS)




Number one server in the world (NGINX gaining ground)
HTTP webserver – 57-65% of web sites in the world
Current version 2.4.9 (as of 4/28/2014)
Name ‘Apache’ was chosen from ...
◦ The name 'Apache' was chosen for the Native American Indian tribe of
the Apache, well-known for their superior skills in warfare strategy
and their inexhaustible endurance. Probably not… It makes a cute pun
on "a patchy web server" -- a server made from a series of patches -but this was not its origin (according to Apache - really??).

Why so popular?
◦
◦
◦
free
highly configurable
implements many features
 security/access control, virtual hosting, CGI script execution
extensible with third-party modules
 servlet engine, security, …
◦ platform independent (support all kinds of machines)
◦
 Windows, Unix, Linux, Solaris, Mac, etc.
27

-
Apache Software Foundation
non profit organization
maintains and develops open source programs
protects ‘apache’ brand
 For more information go to:
- http://www.apache.org
28


Java-based Servlet container with JSP environment
How many in use?
◦ Hard to say – most operate behind an Apache front end
◦ But – "lots"


Apache Foundation's reference implementation of
the JavaServer Pages and Servlet technologies
Two modes
- standalone: default mode for Tomcat
- add-on: works as delegator

Official Website
- http://jakarta.apache.org/tomcat/
29
From*

Tomcat is now much improved over earlier versions
Is suitable as primary web server (ETrade, Webshots, etc.)
Doesn't handle load balancing, failover, etc.
◦
◦
◦



Apache best used as front end handling this
All pages, however served up by Tomcat servers
Security is still better handled by Apache
A number of commercial Web application servers are built on
Tomcat:
◦



IBM's WebSphere
JBoss
and many others
*What an idea - reading! - Professional Apache Tomcat 6 by Chopra Li, and Genender – Wrox 2007
Tomcat has a lot of pros
But there are cons as a standalone server.


◦
◦
◦
◦
◦
not as fast as Apache for static pages (I found conflicting data on this)
not as configurable as Apache
not as robust as Apache (no longer true?)
load balancing is done by Apache or other product
Apache servers implement FAILOVER via clustering (one server fails
another takes over transparently)
31


Often installed under the
<tomcat home>/webapps directory
In a subfolder named after the Web Application
◦ This name also used in URL accessing the application
◦ Example folder structure:
webapps/
Notice that packages are
Assignment1/
CSS/
expanded into subfolders
Images/
(edu.uwec.cs.morrism)
◦ Url accessing home.htm:
http://address/Assignment1/home.htm
◦ Url accessing Courses servlet:
http://address/Assignment1/Courses
JSLibrary/
META-INF/
WEB-INF/
web.xml
classes/
edu/
uwec/
cs/
morriscm/
Courses.class
Directory.class
lib/
mysql-connector-java-5.0.5-bin.jar
tags/
home.htm
StudentDirectory.htm

Public Resources
◦ Everything outside the WEB-INF and META-INF folders
◦ jsp, html, css, graphics, subfolders, etc.

Private Resources (accessible from server-side programs)
◦ WEB-INF directory
 Classes

servlets and utility classes, including JavaBeans
 lib

libraries – jar files
 tags

optional – if present contains configuration files for tag libraries

configuration files have .tld file extensions
◦ META-INF directory
 Optional – if present contains deployment info for tools that create war files and
resources applications may depend on
 MANIFEST.MF

list of jar files application relies upon (used to verify they are all there)
 context.xml

configures web apps "context" (can also be done in other places)




http://www.webtide.com/choose/jetty.jsp
Java application server
Implementations of the 2.5 servlet specification
Optional extras giving many JEE features (same as Tomcat)
◦ But - Tomcat is first and foremost an application server
◦ Jetty - first and foremost a set of software components that offer HTTP
and servlet services
 Jetty can be invoked and installed as a stand alone application server
 or it can be easily embedded in an application or framework as a HTTP
component, as a simple servlet engine, as a feature rich servlet engine
or as part of a full JEE environment.
https://www.webtide.com/choose/jetty.jsp



Sun Microsystem's (now Oracle's) Tomcat derivative
Well integrated with Netbeans
Not clear that there is any substantive advantage
for Tomcat or Glassfish
◦ Probably best to develop with whatever you will ultimately
deploy to
The dominant market share once held by Tomcat is in decline, while Jetty's
market share has been steadily increasing over the last 18 months to the point
where it now has 80% of Tomcat's market share as reported in the Netcraft
server surveys (which can't detect Tomcat running behind Apache):
http://www.infoq.com/news/2009/08/google-chose-jetty
http://news.netcraft.com/archives/2003/04/10/java_servlet_engines.html
http://www.servlets.com/engines/
http://www.netwhisperer.com/2011/07/18/introducing-winstone-an-ultra-lightweight-alternative-to-tomcat-and-jetty/


Interesting link to web server comparisons:
http://en.wikipedia.org/wiki/Comparison_of_
web_server_software

Apache for load balancing, fault tolerance +
Tomcat for everything else.
(Many say Tomcat should be used only for dynamic content)

Main idea:
-let Tomcat listen to Apache
- let Apache to talk to Tomcat
- apache delegates processing of JSPs, and servlets to Tomcat

Problem
-how do they communicate?
Apache was written in C but Tomcat is written 100% Java
-> we need something between them
39

Communication mechanism between
Tomcat and Apache:
◦ termed “web server adapter” or “connector”
◦ implemented as library (e.g., mod_jk.so)
◦ uses/manages TCP connections
◦ uses the ajp13 communication protocol
 (specified in server.xml file in tomcat subdirectory)
40
AND
1
http://port 80
Apache
Client
resource
5
adapter
Tomcat
3
2
ajp13
TCP/8009
1.
2.
3.
4.
5.
4
Request
Apache delegates Tomcat servicing of JSPs, and servlets
Tomcat performs JSPs, and Servlets services
Tomcat sends results to Apache
Apache sends response to client
http://blog.search-computing.net/2010/04/load-balancing-with-apache-a-tutorial-on-mod_proxy_balancer-installation-and-configuration/
41
1.
2.
3.
4.
5.
6.
Install Java SDK
Install Apache server
Install Tomcat
Install connector (mod_jk.so)
Configure
Test
42
Download and install the latest version of SDK
1. Select Control Panel
- http://java.sun.com/javaee/downloads/index.jsp
Set the JAVA_HOME environment variable
2. Select System
4. Click Environment Variables…
3. Select Advanced system settings
6
7
8
5
Result

First step is to stop the IIS web server (to avoid port
80 conflicts) if it is installed (it isn't on our vmware
servers – so you won't have to do this).
1. Start/Administrative Tools/Services
2. Find Internet Information Services
Then right click it. select Properties,
and set Startup type to Manual (and
stop the service if it is running).
45

Current Version
- Apache 2.4.2 (2.2 on lab virtual servers)
- known as the current stable release
- a full setup package is available as .exe file

Download an Apache file for Windows at
http://httpd.apache.org/download.cgi
(e.g., httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi)

If installing on a Windows Server – stop IIS using the Services manager
first.

Follow the instructions provided by installation wizard
46
Specify:
- network Domain as
“uwec.edu”
- server Name as
accept default (and record it)
- your e-mail address
- for All Users, “on Port 80”
47
A.
B.
C.
D.
E.
File access problems were caused by running the install
program from \\cass1\deptdir
A previous installation of Apache2.2 is running
A different Web server is already running on Port 80
Windows Server 2008's Firewall needs to be disabled
No Idea


To test successful installation
open your webrowser and type http://localhost/
You should see the default Apache webpage running on the
port 80 localhost.
49


The latest version is Tomcat 7.x.x
Grab the Windows EXE
distribution for Tomcat at
http://tomcat.apache.org/download-70.cgi


Note: already installed on your
VMWare Windows 2008 Server
(no need to do this again)
For Windows 7 use 64 bit

Extract the zipped files into the folder you want to run
tomcat from
◦ Doesn't have to be in c:\Program Files



Start a cmd session as an Administrator
Go to the tomcat bin folder
cd "C:\Wherever\Tomcat 7.0\bin"
Run service.bat
Right click

Start the Services utility
◦ Start/Control Panel/Administrative Tools/Services


To test successful installation
open your web browser and type http://localhost:8080
If you can see the default Tomcat webpage running on the
port 8080 localhost, bingo!
53

Download the connector binary at:
◦ http://jakarta.apache.org/site/downloads/index.html
◦ for Windows from a Jakarta mirror site

Rename the file to mod_jk.so (.so stands for shared object)
◦ e.g., mod_jk-1.2.27-httpd-2.2.10.so - or whatever latest version is - to mod_jk.so)

Save the rename file in the “modules” directory under where
the Apache is installed
(e.g., C:\Program Files\Apache Group\modules\mod_jk.so )
Story of origins of Tomcat and Apache and the connector:
http://www.wellho.net/solutions/java-the-proxy-jserv-jk-jk2-warp-and-jk-story.html
54
Configure the Connector
In the Apache2.2/conf folder open
httpd.conf


Not seeing the .conf file extension?
◦





From the top Windows Explorer Tools menu
Select Folder Options
Select the View tab
Uncheck "Hide extensions for known file types"
Add the at the end of the file:
# Include TOMCAT
Include conf/extra/httpd-tomcat.conf



In Apache2.2/conf/extra folder
Create a file named httpd-tomcat.conf
Add this to it:
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile conf/workers.properties
# Sample mount
JkMount /Hello/* ajp13
JkMount /examples/* ajp13



In Apache2.2/conf
Create a file named workers.properties
Add this to it:
# Definition for Ajp13 worker
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13



Create a folder in Apache_Tomcat_7\webapps\
named: Hello (case sensitive)
Apache_Tomcat_7\webapps\Hello
Place jsp files there
For example, create hello.jsp with the following
code in the Hello folder:
<%@ page import="java.util.*" %>
<html>
<body>
<% Date date = new Date(); %>
Hello! The time is now <%= date %>
</body>
</html>

Open the Services utility

Note: the order of the following steps matters!
◦
◦
◦
◦
◦

Right click Apache2.2 and select Stop
Right click Apache Tomcat and select Stop
Right click Apache Tomcat and select Start
Right click Apache2.2 and select Start
If Apache2.2 won't start recheck previous steps – make sure you copied and
renamed mod_jk.so correctly (Windows Explorer doesn't show the file extension
and it is easy to accidentally name this mod_jk.so.so.
Run hello.jsp with either:
http://localhost:8080/Hello/hello.jsp
http://localhost/Hello/hello.jsp -- this forwards from apache to tomcat
Both should work and display: Hello! The time is now Sat Apr 30 15:57:37 CDT 2012
your day and time will vary depending on when you do this

Windows Server 2008 Firewall blocks outside access to server
processes unless you make the following changes (your
apache/tomcat will work from localhost – but not from other
computers until you do this)
◦ Start the Windows Firewall utility (Start/Control Panel/Windows Firewall
◦ Select Allow a program…

Click the Allow another program… button
◦ Click Browse and add the httpd.exe program
 Found in the Apache2.2/bin folder

Adds this entry
Do this again for:
◦ Tomcat7.exe
 Found here:
Adds this entry


If you followed along, you've tested from localhost
Testing requires knowing the IP address of your server
◦ At least in this class – in the "real" world you would register a domain
name corresponding to the IP address of your server



Open a cmd window (Start/Run/cmd)
Type ipconfig
Your ip address is:
◦ this example shows
the ip address for
your instructor's
vm ware server – not
your server's address

After finding your server's ip address, try connecting to
it like this (from your lab pc, not your vm ware window):
The vmware server's address doesn't begin with 192.168 (at least testing this
from my office laptop computer it isn't) – this means it is visible to the entire Internet!
Probably not a good idea to leave these running for long periods – no telling who/what
might infect/attack them (Web server security is a big topic). If your server's address
"does" begin with 192.168 you can only test accessing it from other lab computers on
the same router.
Locate the conf/httpd.conf file in the Apache install directory. Add an entry near the end of
the file that looks like this. Be careful that it is not in the middle of some other entry:
Alias /site_name "C:\pathname_to_site\your_site_directory"
<Directory "C:\pathname_to_site\your_site_directory">
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
In the entry added above, replace site_name with the alias for your site and replace
C:\pathname_to_site\your_site_directory with the actual file path name to your site's root
directory.
If the server is running on Linux, the format of the path name would be a UNIX path name
rather than the Windows-style pathname shown in the example.
Restart the Apache server to have the change take effect.
File to display if URL doesn't include a filename
 Specified in conf/httpd.conf file
find this code:

# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

Make changes (add more than one file if needed):
DirectoryIndex home.htm default.htm index.html

Restart Apache



Note a file isn't specified
Assumption – default files like
index.html not present – or they
will be displayed
Example of an alias I created
◦ To disable directory browsing
delete Indexes from Options
line in alias:
Alias /MyTemp "C:\Web\Examples"
<Directory "C:\ Web\Examples ">
Options FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Locate the conf/server.xml file in the Tomcat install directory. Open it with wordpad
(notepad doesn't handle single carriage returns correctly – right click/open with
and select Wordpad) . Add the following entry in the part of the file where other
similar entries are located. The server.xml file is an XML file, so be careful to place the
addition at the proper location (nested within the <Host> element tags – don't break
any XML tags).
<Host …>
….
<Context path="/site_name"
docBase="C:\pathname_to_site\site_directory"
debug="1"
reloadable="true">
</Context>
</Host>
In the entry added in step 2, replace site_name with the alias for your site and replace
C:\pathname_to_site\site_directory with the actual file path name to your site's root
directory.
Note: If you mis-edit the file or have unbalanced angle brackets or quotes, Tomcat cannot start
properly.
http://www3.ntu.edu.sg/home/ehchua/programming/howto/Tomcat_More.html


After adding <Context…> to server.xml
(previous slide)
In docbase:
◦ Put JSPs, HTMLs, CSSs, folder structure, etc. (Public
area) directly within docbase.
◦ Create a WEB-INF folder
◦ Add web.xml
◦ Create a classes subfolder – servlets go here

Add to server.xml

Copy to c:\Web\JSPApps


Stop/Restart
Tomcat
Access like
Set false for production site
true for development - auto
reloads app if changes detected
Allows running Servlets




Open conf/web.xml (this is the main
configuration for the entire Tomcat site)
Change false to true
Restart Tomcat
Any folder without
a default page will
display a directory
listing

The easiest way is to copy a war file into the
webapps folder
◦ This will expand the war into its original folders
◦ If you want to update the Servlet, delete the war
and the expanded folders. Then copy new war
◦ You don't have to restart Tomcat if this is in
server.xml:
(which is the default)
◦ Also works for JSPs and entire web app
◦ Accessing Hello.war (copied to webapps)
◦ http://localhost:8080/Hello/hello.htm

If autoDeploy="true" (previous slide)
◦ Will also track web applications for the following changes:
 An update to the WEB-INF/web.xml file will trigger a reload of the web application
 An update to a WAR which has been expanded will trigger an undeploy (with a removal of
the expanded webapp), followed by a deployment
 An update to a XML configuration file will trigger an undeploy (without the removal of any
expanded directory), followed by a deployment of the associated web application

When using automatic deployment, the docBase defined by an XML Context
file should be outside of the appBase directory.
◦ If this is not the case difficulties may be experienced deploying the web application or
the application may be deployed twice.


Or Use Tomcat Manager to deploy a war
http://localhost:8080/manager/html/list
Login with admin and password you set when installing Tomcat
(using default tomcat installation it's admin with no password – look in
conf/tomcat-users.xml to confirm this – ours is Administrator/W3853rv3r)
Don't have to stop and
restart Tomcat server
Bottom of page


Assume already have a usable jkmount in extra/httpd-tomcat.conf
Following assumes jkmount is named Hello
◦ In tomcat's webapps folder must be a subfolder named Hello (case sensitive)
 In Hello, at a minimum there should be a subfolder named WEB-INF
 In WEB-INF there should be:
 web.xml – with appropriate entries
 subfolder named classes
 with package derived subfolders and compiled java class files
 subfolder named lib
 With any needed jars (mysql jar for example)


Notice these files can get there via
.war file or Tomcat manager
URL will be:
◦ http://localhost/Hello/Courses
◦ Assumes web.xml has this in it:

WEB-INF/web.xml – deployment descriptor
◦ Application specific
 (<tomcat home>/conf/web.xml is for all web applications)
◦ Possible contents*
 <context-param>
 assign application initializing parameters
 <servlet>
 configures servlet
 <servlet-mapping>
 map servlet to url
 <session-config>
 <session-timeout>
 default is 30 minutes – can change with this
 <welcome-file-list>
 pages to display if url doesn't include a filename
◦ *Partial list – there is a lot more that can go into web.xml




14.85% of web sites?
Internet Information Services (IIS)
Version 7.5 latest version (Server 2008)
Out of the box can use:
◦ CGI, ASP, ASP.NET

Needs add-ons if plan to use:
◦ PhP, JSP, Servlets, etc.
◦ If use JSP/Servlets Tomcat can be connected to IIS
 I haven't done this and don't plan to do it…
 More info:
http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html
Versions 8.0 and 8.5 released but only for Windows Server 2012

Start IIS Manager
◦ From the Start menu, point to Administrative Tools, and then click Internet
Information Services (IIS) Manager
◦ Alternatively:
 From the Start menu, click Run.
 In the Open box, type inetmgr, and click OK

Expand the local computer, expand the Web Sites or FTP Sites folder,
right-click the site or folder within which you want to create the
virtual directory, point to New, and then click Virtual Directory. The
Virtual Directory Creation Wizard appears.
◦ Click Next
◦ In the Alias box, type a name for the virtual directory. (Choose a short name that is
easy to type because the user types this name)
◦ In the Path box, type or browse to the physical directory in which the virtual directory
resides, and then click Next
◦ Under Allow the following permissions, select the check boxes for the access
permissions you want to assign to your users, and then click Next

Create a file named web.config in sites root folder
<configuration>
<location path="special_directory_name_here">
<system.webServer>
<directoryBrowse enabled="true" />
</system.webServer>
</location>
</configuration>


Change location path to the directory to browse
To enable it for the entire site, remove the <location> and
</location> tags
◦ which tell IIS7 to scope the configuration changes to just the path
specified
Tip: earlier versions of IIS use a check box in the virtual directory dialog box
to allow or disallow directory browsing.
Download