Oracle® HTTP Server Administrator's Guide
10g Release 2 (10.1.2) B14007-04 |
|
![]() Previous |
![]() Next |
This chapter provides information about specifying IP addresses and ports, and managing server interaction, and network connection persistence.
Topics discussed are:
Documentation from the Apache Software Foundation is referenced when applicable.
Note: Readers using this guide in PDF or hard copy formats will be unable to access third-party documentation, which Oracle provides in HTML format only. To access the third-party documentation referenced in this guide, use the HTML version of this guide and click the hyperlinks. |
The port that Oracle HTTP Server listens on when it is started depends on your installation type.
Table 5-1 contains information about Oracle HTTP Server ports.
Table 5-1 Oracle HTTP Server Ports
Platform | Middle Tier Installation | Infrastructure Installation |
---|---|---|
Solaris |
Non-SSL: 7777 (7777-7877 range) SSL: 4443 (4443-4543 range) |
Non-SSL: 7777 (7777-7877 range) SSL: 4443 (4443-4543 range) |
Windows |
Non-SSL: 80 (7777-7877 range) SSL: 443 (4443-4543 range) |
Non-SSL: 7777 (7777-7877 range) SSL: 4443 (4443-4543 range) |
If ports 7777 or 80, for example, are occupied, Oracle HTTP Server listens on the next available port number between a range of 7777-7877. Accordingly, it would listen on port 7778, and so on.
Note: SSL is disabled by default. For information on enabling SSL, refer to Chapter 11, "Enabling SSL for Oracle HTTP Server". |
A file named setupinfo.txt
is automatically generated in ORACLE_HOME
/install
on UNIX, or ORACLE_HOME
\install
on Windows.
It contains port information for Oracle HTTP Server. This file is generated at install time, and is not updated thereafter. If you restart Oracle HTTP Server, the information in this file becomes inaccurate.
You can change the Oracle HTTP Server listener port (SSL and non-SSL) after installation. If you make a port change, then you have to also update other components to use the new port number.
You can specify that the server listens on more than one port, selected addresses, or a combination. The following directives, located in the "Global Environment" of the httpd.conf
file, specify listener ports and addresses. Note that BindAddress
and Port
can be used only once. Apache group recommends the use of Listen
instead.
Restricts the server to listen to a single IP address. If the argument to this directive is *, then it listens to all IP addresses. This directive has been deprecated. Listen offers similar functionality.
For example: BindAddress *
Specifies the port of the listener, if no Listen or BindAddress are present. If Listen
is present, the Port
value becomes the default port value that is used when Oracle HTTP Server builds URLs, or other references to itself. Usually, the values of Port
and Listen
should match, unless Oracle HTTP Server is fronted by a caching, or proxy server. Then, you can set Port
to be the port that is being used by the front end server, and Listen
to the port that Oracle HTTP Server is actually listening to. By doing this, redirects or other URLs generated by Oracle HTTP Server point to the front-end server rather than directly to Oracle HTTP Server.
For example: Port 7779
Specifies an IP port that Oracle HTTP Server listens on. Multiple Listen
directives can be used to listen on multiple ports. If present, this value will override the value of Port
. Accordingly, if you have a Port
value of 7777 and a Listen
value of 7778, then Oracle HTTP Server only listens on one port, 7778.
For example:
Listen 7778
Listen 12.34.56.78:80
For platforms that support IPv4 and IPv6 (such as UNIX), setting Listen to localhost:
<portnumber>
and having IPv6 disabled can result in the following error:
..(126)Cannot assign requested address: make_sock: could not bind to address [::1]:8000 no listening sockets available, shutting down
To resolve the error, either enable IPv6 or do not set Listen to locahost
.
The following directives are used to specify how the server interacts with the network. They are located in the "Global Environment" of the httpd.conf
file.
Specifies the maximum length of the queue of pending connections. This is useful if the server is experiencing a TCP
SYN
overload, which causes numerous new connections that open up, but do not complete the task.
Increases the TCP
buffer size to the number of bytes specified, thereby improving performance.
The following directives determine how the server handles persistent connections. They are located in the "Global Environment" of the httpd.conf
file.
Enables HTTP 1.1 keep-alive support, allowing reuse of the same TCP connection for multiple HTTP requests from a single client, when set to "On". The default is "On".
Sets the number of seconds the server waits for a subsequent request before closing a KeepAlive connection. Once a request has been received, the timeout value specified by the TimeOut directive applies. The default is 15 seconds.
Limits the number of requests allowed per connection when KeepAlive is on. If it is set to "0", unlimited requests will be allowed. The default is 100.
UseWebCacheIp
is a global directive that enables Oracle HTTP Server to obtain IP address of a client. It can be set to "On" or "Off", and defaults to "Off". It is not set to "On" by default because it can open a security hole in some circumstances.
When OracleAS Web Cache acts as a reverse proxy in front of Oracle HTTP Server, the TCP connection from the client is terminated at OracleAS Web Cache. The TCP connection that Oracle HTTP Server sees actually originates at OracleAS Web Cache. Oracle HTTP Server gets the IP address of the client and uses it for various purposes, such as:
Populating the REMOTE_ADDR
CGI variable that can be used by applications in and behind Oracle HTTP Server to identify where the client came from.
Evaluating mod_access
allow/deny rules that allow the administrator to restrict access based on IP address.
Without the UseWebCacheIp
directive, this functionality fails when OracleAS Web Cache is used in front of Oracle HTTP Server. This is because Oracle HTTP Server sees all connections coming from the same place - the IP address where OracleAS Web Cache is running.
With every request that OracleAS Web Cache forwards to Oracle HTTP Server, it sends a header that contains the IP address of the client connection that it received. If UseWebCacheIp
is set to "On", then it directs Oracle HTTP Server to use the IP value from this header, instead of the value from the TCP connection as the client's IP address. This enables REMOTE_ADDR
CGI variable to have the correct value, and allows mod_access
to function correctly.
You should set this directive only if you are sure that the clients can only connect to Oracle HTTP Server through OracleAS Web Cache. If clients can connect directly to Oracle HTTP Server, then they have to find out the header that is used to transfer the client IP, and set it so that it would seem to have come from any IP address you want. In a typical set up, with a firewall and OracleAS Web Cache, the only port open through the firewall is the OracleAS Web Cache port. Hence, the only path from the client to Oracle HTTP Server goes through OracleAS Web Cache. In this case, it is safe to turn on UseWebCacheIp
.
By default, Oracle Application Server installs using the local hostname as set up by ServerName directive in Oracle HTTP Server. Most Web sites tend to have a specific hostname or domain name for their Web or application server. However, this is not possible out of the box because with the ServerName
directive, Oracle HTTP Server is instantiated with the local host.
Example 5-1 Using Reverse Proxies and Load Balancers with Oracle HTTP Server
Domain Name: www.oracle.com:80 123.456.7.8
(hosted on a reverse proxy, load balancer, or firewall)
Host Name of Oracle Application Server Host: server.oracle.com 123.456.7.9
ServerName and Port of Oracle Application Server Host: server.oracle.com:7777
Make the following changes in the httpd.conf
file:
Port 80 Listen 7777 Listen 80 # Virtual Hosts # This section is mandatory for URLs that are generated by # the PL/SQL packages of the Oracle Portal and various other components # These entries dictate that the server should listen on port # 7777, but will assert that it is using port 80, so that # self-referential URLs generated specify www.oracle.com:80 # This will create URLs that are valid for the browser since # the browser does not directly see the host server.oracle.com. NameVirtualHost 123.456.7.9:7777 <VirtualHost server.oracle.com:7777> ServerName www.oracle.com Port 80 </VirtualHost> # Since the previous virtual host entry will cause all links # generated by the Oracle Portal to use port 80, the server.company.com # server needs to listen on 80 as well since the Parallel Page # Engine will make connection requests to Port 80 to request the # portlets. NameVirtualHost 123.456.7.9:80 <VirtualHost server.oracle.com:80> ServerName www.oracle.com Port 80 <VirtualHost>