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 eitherVirtualHostorServerName. Apache 2.4 on Ubuntu 18.04 always uses the first<VirtualHost>if none of theServerNamematches, 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
VirtualHostdefinition, 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 theServerNamestatement, 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
- All Categories
- 177 LFX Mentorship
- 177 LFX Mentorship: Linux Kernel
- 754 Linux Foundation IT Professional Programs
- 374 Cloud Engineer IT Professional Program
- 170 Advanced Cloud Engineer IT Professional Program
- 74 DevOps IT Professional Program - Discontinued
- 5 DevOps & GitOps IT Professional Program
- 100 Cloud Native Developer IT Professional Program
- 7.6K Training Courses & Learning Paths
- 2 AI & ML Training
- 1 Blockchain & Decentralized Identity Training
- 5 Cloud & Containers Training
- 1 Cybersecurity Training
- 2 DevOps & Site-Reliability Training
- 1 Linux Kernel Development Training
- 1 Networking Training
- 2 Open Source Best Practice Training
- 2 System Administration Training
- 1 System Engineering Training
- 1 Web & Application Development Training
- 794 Hardware
- 202 Drivers
- 68 I/O Devices
- 37 Monitors
- 95 Multimedia
- 173 Networking
- 91 Printers & Scanners
- 89 Storage
- 769 Linux Distributions
- 81 Debian
- 68 Fedora
- 22 Linux Mint
- 13 Mageia
- 24 openSUSE
- 150 Red Hat Enterprise
- 31 Slackware
- 13 SUSE Enterprise
- 356 Ubuntu
- 465 Linux System Administration
- 31 Cloud Computing
- 73 Command Line/Scripting
- Github systems admin projects
- 98 Linux Security
- 78 Network Management
- 101 System Management
- 46 Web Management
- 111 Mobile Computing
- 19 Android
- 77 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 393 Off Topic
- 121 Introductions
- 182 Small Talk
- 29 Study Material
- 976 Programming and Development
- 310 Kernel Development
- 648 Software Development
- 990 Software
- 382 Applications
- 182 Command Line
- 5 Compiling/Installing
- 68 Games
- 317 Installation
- Archived
- 2 LFD140 Class Forum
- 1.4K LFS258 Class 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)
