Our configuration is using the default ports of 443 and 80 for https and http. Debugging the code I found that the method current_server_locations is utilizing this helper method util::join_location which is dropping the port from the location
Here is some logging I added to the current_server_locations method to debug
[21/Nov/2023:09:29:25][21757.7f4344aeb840][-main:-1-] Notice: current_server_locations: use module <nsssl> /web/dev/node-1/httpd/bin/nsssl.so
[21/Nov/2023:09:29:25][21757.7f4344aeb840][-main:-1-] Notice: current_server_locations: ip 10.34.203.163
[21/Nov/2023:09:29:25][21757.7f4344aeb840][-main:-1-] Notice: current_server_locations: port 443
[21/Nov/2023:09:29:25][21757.7f4344aeb840][-main:-1-] Notice: current_server_locations: use module <nssock> /web/dev/node-1/httpd/bin/nssock.so
[21/Nov/2023:09:29:25][21757.7f4344aeb840][-main:-1-] Notice: current_server_locations: ip 10.34.203.163
[21/Nov/2023:09:29:25][21757.7f4344aeb840][-main:-1-] Notice: current_server_locations: port 80
[21/Nov/2023:09:29:25][21757.7f4344aeb840][-main:-1-] Notice: current_server_locations returns http://10.34.203.163 https://10.34.203.163
Here is the relevant code that results in the port being dropped:
packages/acs-tcl/tcl/cluster-procs.tcl
lappend result [util::join_location \
-proto [dict get $protos $module_type] \
-hostname $ip \
-port $port]
packages/acs-tcl/tcl/utilities-procs.tcl
ad_proc util::join_location {{-proto ""} {-hostname} {-port ""}} {
Join hostname and port and use IP-literal notation when necessary.
The function is the inverse function of util::split_location.
@return location consisting of hostname and optionally port
@author Gustaf Neumann
@see util::split_location
} {
set result ""
if {$proto ne ""} {
append result $proto://
#
# When the specified port is equal to the default port, omit
# it from the result.
#
if {$port ne "" && $port eq [dict get {http 80 https 443 udp "" smtp ""} $proto]} {
set port ""
}
}