Dedicated SSL

So I have purchased an additional IP for my server because I want one of my virtual servers to have dedicated, not shared IP.

I have changed the virtual server’s IP to the new dedicated one in Addresses and Networking -> Change IP Addresses. I have also checked the DNS server and all dns records have been updated as well.

What happened is that I cannot access the website like plus when I got to http://myipaddress I just get the “It Works” default Apache page.

Is this normal (maybe the dns needs to propagate again)? If not, how can I fix this?

if you switch IP then you do have to wait for propagation. I had the same issue

Thanks. It still hasn’t propagated. However, when I go to the dedicated IP address in the browser, I get just the “It Works” default Apache page. It seems that the IP is pointed to /var/www directory and not the /home/mydomainwithdedicatedip/public_html as it should be. How to fix that?

Here’s my /etc/apache2.conf file:


Based upon the NCSA server configuration files originally by Rob McCool.

This is the main Apache server configuration file. It contains the

configuration directives that give the server its instructions.

See for detailed information about

the directives.

Do NOT simply read the instructions in here without understanding

what they do. They’re here only as hints or reminders. If you are unsure

consult the online docs. You have been warned.

The configuration directives are grouped into three basic sections:

1. Directives that control the operation of the Apache server process as a

whole (the ‘global environment’).

2. Directives that define the parameters of the ‘main’ or ‘default’ server,

which responds to requests that aren’t handled by a virtual host.

These directives also provide default values for the settings

of all virtual hosts.

3. Settings for virtual hosts, which allow Web requests to be sent to

different IP addresses or hostnames and have them handled by the

same Apache server process.

Configuration and logfile names: If the filenames you specify for many

of the server’s control files begin with “/” (or “drive:/” for Win32), the

server will use that explicit path. If the filenames do not begin

with “/”, the value of ServerRoot is prepended – so “/var/log/apache2/foo.log”

with ServerRoot set to “” will be interpreted by the

server as “//var/log/apache2/foo.log”.

Section 1: Global Environment

The directives in this section affect the overall operation of Apache,

such as the number of concurrent requests it can handle or where it

can find its configuration files.

ServerRoot: The top of the directory tree under which the server’s

configuration, error, and log files are kept.

NOTE! If you intend to place this on an NFS (or otherwise network)

mounted filesystem then please read the LockFile documentation (available

at URL:;

you will save yourself a lot of trouble.

Do NOT add a slash at the end of the directory path.

ServerRoot “/etc/apache2”

The accept serialization lock file MUST BE STORED ON A LOCAL DISK.

#<IfModule !mpm_winnt.c>
#<IfModule !mpm_netware.c>
LockFile /var/lock/apache2/accept.lock

PidFile: The file in which the server should record its process

identification number when it starts.

This needs to be set in /etc/apache2/envvars


Timeout: The number of seconds before receives and sends time out.

Timeout 300

KeepAlive: Whether or not to allow persistent connections (more than

one request per connection). Set to “Off” to deactivate.

KeepAlive On

MaxKeepAliveRequests: The maximum number of requests to allow

during a persistent connection. Set to 0 to allow an unlimited amount.

We recommend you leave this number high, for maximum performance.

MaxKeepAliveRequests 100

KeepAliveTimeout: Number of seconds to wait for the next request from the

same client on the same connection.

KeepAliveTimeout 15

Server-Pool Size Regulation (MPM specific)

prefork MPM

StartServers: number of server processes to start

MinSpareServers: minimum number of server processes which are kept spare

MaxSpareServers: maximum number of server processes which are kept spare

MaxClients: maximum number of server processes allowed to start

MaxRequestsPerChild: maximum number of requests a server process serves

StartServers 1 MinSpareServers 1 MaxSpareServers 5 MaxClients 10 MaxRequestsPerChild 0

worker MPM

StartServers: initial number of server processes to start

MaxClients: maximum number of simultaneous client connections

MinSpareThreads: minimum number of worker threads which are kept spare

MaxSpareThreads: maximum number of worker threads which are kept spare

ThreadsPerChild: constant number of worker threads in each server process

MaxRequestsPerChild: maximum number of requests a server process serves

StartServers 1 MaxClients 10 MinSpareThreads 1 MaxSpareThreads 4 ThreadsPerChild 25 MaxRequestsPerChild 0

These need to be set in /etc/apache2/envvars


AccessFileName: The name of the file to look for in each directory

for additional configuration directives. See also the AllowOverride


AccessFileName .htaccess

The following lines prevent .htaccess and .htpasswd files from being

viewed by Web clients.

<Files ~ “^.ht”>
Order allow,deny
Deny from all

DefaultType is the default MIME type the server will use for a document

if it cannot otherwise determine one, such as from filename extensions.

If your server contains mostly text or HTML documents, “text/plain” is

a good value. If most of your content is binary, such as applications

or images, you may want to use “application/octet-stream” instead to

keep browsers from trying to display binary files as though they are


DefaultType text/plain

HostnameLookups: Log the names of clients or just their IP addresses

e.g., (on) or (off).

The default is off because it’d be overall better for the net if people

had to knowingly turn this feature on, since enabling it means that

each client request will result in AT LEAST one lookup request to the


HostnameLookups Off

ErrorLog: The location of the error log file.

If you do not specify an ErrorLog directive within a

container, error messages relating to that virtual host will be

logged here. If you do define an error logfile for a

container, that host’s errors will be logged there and not here.

ErrorLog /var/log/apache2/error.log

LogLevel: Control the number of messages logged to the error_log.

Possible values include: debug, info, notice, warn, error, crit,

alert, emerg.

LogLevel warn

Include module configuration:

Include /etc/apache2/mods-enabled/.load
Include /etc/apache2/mods-enabled/

Include all the user configurations:

Include /etc/apache2/httpd.conf

Include ports listing

Include /etc/apache2/ports.conf

The following directives define some format nicknames for use with

a CustomLog directive (see below).

If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i

LogFormat “%v:%p %h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i”” vhost_combined
LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i”” combined
LogFormat “%h %l %u %t “%r” %>s %b” common
LogFormat “%{Referer}i -> %U” referer
LogFormat “%{User-agent}i” agent

Define an access log for VirtualHosts that don’t define their own logfile

CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined

Customizable error responses come in three flavors:

1) plain text 2) local redirects 3) external redirects

Some examples:

#ErrorDocument 500 “The server made a boo boo.”
#ErrorDocument 404 /missing.html
#ErrorDocument 404 “/cgi-bin/”
#ErrorDocument 402

Putting this all together, we can internationalize error responses.

We use Alias to redirect any /error/HTTP_.html.var response to

our collection of by-error message multi-language collections. We use

includes to substitute the appropriate text.

You can modify the messages’ appearance without changing any of the

default HTTP_.html.var files by adding the line:

Alias /error/include/ “/your/include/path/”

which allows you to create your own set of files by starting with the

/usr/share/apache2/error/include/ files and copying them to /your/include/path/,

even on a per-VirtualHost basis. The default include files will display

your Apache version number and your ServerAdmin email address regardless

of the setting of ServerSignature.

The internationalized error documents require mod_alias, mod_include

and mod_negotiation. To activate them, uncomment the following 30 lines.

Alias /error/ “/usr/share/apache2/error/”

<Directory “/usr/share/apache2/error”>

AllowOverride None

Options IncludesNoExec

AddOutputFilter Includes html

AddHandler type-map var

Order allow,deny

Allow from all

LanguagePriority en cs de es fr it nl sv pt-br ro

ForceLanguagePriority Prefer Fallback

ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var

ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var

ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var

ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var

ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var

ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var

ErrorDocument 410 /error/HTTP_GONE.html.var

ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var

ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var

ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var

ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var

ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var

ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var

ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var

ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var

ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var

ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

Include of directories ignores editors’ and dpkg’s backup files,

see README.Debian for details.

Include generic snippets of statements

Include /etc/apache2/conf.d/

Include the virtual host configurations:

Include /etc/apache2/sites-enabled/
NameVirtualHost is the default shared IP for all other domains on my server. is the dedicated IP.

You can set which Virtual Server is the default for a given IP address by first choosign the domain from the drop-down list in Virtualmin, then going into Server Configuration -> Website Options, and setting “Default website for IP address” to “Yes”.


Thanks, Eric. Maybe I should mention that I am using Virtualmin GPL so far (though I’m planning to update to Pro in the future if everything goes well). And the “Website Options” link isn’t in Server Configuration there, I guess it’s only in Pro version. So I will have to somehow set that in the Apache config files probably.

Yeah, at that point, it’s just a matter of making sure that particular VirtualHost entry appears in the Apache config before the others.


Thanks, by any chance do you know in which config file can I find virtual hosts? The main config file on my server seems to be /etc/apache2/apache2.conf (Debian). But I don’t see any virtual hosts in that file (I posted it above). There’s also /etc/apache2/httpd.conf but that’s empty.