7.11 ServerName _default_

It says on 7.11 that ServerName _default_
can be used. However, the HTTPD documentation says that _default_
is for use in <VirtualHost>
, not ServerName
. Is the HTTPD documentation wrong or the course?
Comments
-
Thank you for your input.
The Apache documentation is not incorrect but the default can indeed show up in either "ServerName" or in "".
In the case of , "default" and "*" are referring to the address or DNS hostname that we are listening to. The httpd will sort through the list of addresses looking for the best match and use the configuration in that stanza, using the "_default_ " as the last choice. We can see this case in: https://httpd.apache.org/docs/2.4/vhosts/examples.htmlNow in the case where you may have many aliases on a single ip address, you can discriminate by "ServerName" in the stanza to select the correct configuration. When doing this type of selection, by host name in the URL, sometimes the order the name virtual hosts are processed can select the incorrect default/base configuration so one can set the stanza to be used if no name match occurs with the "ServerName default". This is covered in the the Apache Documentation here: https://httpd.apache.org/docs/2.4/vhosts/details.html
I hope this helps.
0 -
Well, the links you quote never refer to
_default_
being used as a parameter toServerName
. Also, It seems that these haven't been brought up to date with the actual code, because in 2.4, the_default_
special meaning was revoked, the docs state:The string default, which is an alias for *
And I just tested this, and the token
_default_
doesn't seem to have any effect in eitherVirtualHost
orServerName
. Apache 2.4 on Ubuntu 18.04 always uses the first<VirtualHost>
if none of theServerName
matches, it's not using the one withServerName _default_
or<VirtualHost _default_:80>
.Please test for yourself and see if you come to a different conclusion.
0 -
I was looking at the section: "Any vhost that includes the magic default wildcard is given the same ServerName as the main server."
As you mentioned if no default is listed the server will return data from the "first" configuration it finds. By setting the default we always know what data it going to be returned. If you alter the configuration of the virtual servers you may change the "first" server. In the example below we set the default server and add a second virtualhost.Consider the attached configuration.
Please let me know if you have any questions.
Lee
0 -
The attached configuration isn't representative of the problem. Apache will always use the first
VirtualHost
definition, which is where you put_default_
. Just swap the two<VirtualHost>
definitions in your config and tell me what you observe: is it using the first one or the one with_default_
?0 -
Notwithstanding the contradictory documentation (for which I have filed a bug with the ASF bug tracker), I still do not find any reference to
_default_
being used in theServerName
statement, apart from blog entries and StackOverflow questions, both of which I do not see as official documentation.And in fact, there is only a single relevant occurrence of it in the httpd code, which is here: https://github.com/apache/httpd/blob/ba356520d82d3c226fc427c57ba821507fc5aa9a/server/vhost.c#L190 and it says the same: it can be used in
<VirtualHost>
, but it is equivalent to*
.I'm sorry that I'm going on about this so much, but as a Sysadmin with >15 years of experience I fear that if I will be graded in the exam as I'm being taught in the course, it'll be a bit of a problem in such a case.
0 -
I took your advice and switched the order of the virtual hosts. You are correct. The default virtual host has to be the first definition. This will be corrected and clarified in the course material.
1 -
Thanks.
0
Categories
- 9.9K All Categories
- 29 LFX Mentorship
- 82 LFX Mentorship: Linux Kernel
- 463 Linux Foundation Boot Camps
- 266 Cloud Engineer Boot Camp
- 93 Advanced Cloud Engineer Boot Camp
- 43 DevOps Engineer Boot Camp
- 28 Cloud Native Developer Boot Camp
- 1 Express Training Courses
- 1 Express Courses - Discussion Forum
- 1.6K Training Courses
- 18 LFC110 Class Forum
- 3 LFC131 Class Forum
- 19 LFD102 Class Forum
- 131 LFD103 Class Forum
- 9 LFD121 Class Forum
- 60 LFD201 Class Forum
- 1 LFD213 Class Forum - Discontinued
- 128 LFD232 Class Forum
- 23 LFD254 Class Forum
- 544 LFD259 Class Forum
- 100 LFD272 Class Forum
- 1 LFD272-JP クラス フォーラム
- 1 LFS145 Class Forum
- 20 LFS200 Class Forum
- 739 LFS201 Class Forum
- 1 LFS201-JP クラス フォーラム
- 1 LFS203 Class Forum
- 36 LFS207 Class Forum
- 295 LFS211 Class Forum
- 53 LFS216 Class Forum
- 45 LFS241 Class Forum
- 39 LFS242 Class Forum
- 33 LFS243 Class Forum
- 10 LFS244 Class Forum
- 27 LFS250 Class Forum
- 1 LFS250-JP クラス フォーラム
- 131 LFS253 Class Forum
- 963 LFS258 Class Forum
- 10 LFS258-JP クラス フォーラム
- 85 LFS260 Class Forum
- 124 LFS261 Class Forum
- 29 LFS262 Class Forum
- 78 LFS263 Class Forum
- 15 LFS264 Class Forum
- 10 LFS266 Class Forum
- 17 LFS267 Class Forum
- 16 LFS268 Class Forum
- 14 LFS269 Class Forum
- 193 LFS272 Class Forum
- 1 LFS272-JP クラス フォーラム
- 206 LFW211 Class Forum
- 148 LFW212 Class Forum
- 890 Hardware
- 212 Drivers
- 74 I/O Devices
- 44 Monitors
- 115 Multimedia
- 206 Networking
- 99 Printers & Scanners
- 85 Storage
- 747 Linux Distributions
- 88 Debian
- 64 Fedora
- 13 Linux Mint
- 13 Mageia
- 24 openSUSE
- 133 Red Hat Enterprise
- 33 Slackware
- 13 SUSE Enterprise
- 354 Ubuntu
- 468 Linux System Administration
- 38 Cloud Computing
- 67 Command Line/Scripting
- Github systems admin projects
- 93 Linux Security
- 77 Network Management
- 107 System Management
- 48 Web Management
- 61 Mobile Computing
- 22 Android
- 25 Development
- 1.2K New to Linux
- 1.1K Getting Started with Linux
- 525 Off Topic
- 127 Introductions
- 211 Small Talk
- 19 Study Material
- 782 Programming and Development
- 256 Kernel Development
- 492 Software Development
- 919 Software
- 255 Applications
- 181 Command Line
- 2 Compiling/Installing
- 76 Games
- 316 Installation
- 46 All In Program
- 46 All In Forum
Upcoming Training
-
August 20, 2018
Kubernetes Administration (LFS458)
-
August 20, 2018
Linux System Administration (LFS301)
-
August 27, 2018
Open Source Virtualization (LFS462)
-
August 27, 2018
Linux Kernel Debugging and Security (LFD440)