This is an automated email from the ASF dual-hosted git repository.

epugh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new 7f635a9f311 SOLR-15442: Sync up Solr (Jetty) host and ports variable 
naming (#3814)
7f635a9f311 is described below

commit 7f635a9f3114fe380d8eb736d4d2b3b727e49a16
Author: Eric Pugh <[email protected]>
AuthorDate: Mon Nov 3 20:35:58 2025 -0500

    SOLR-15442: Sync up Solr (Jetty) host and ports variable naming (#3814)
    
    Sync up port and host variable naming:
    
    * solr.jetty.host --> solr.host.bind
    * SOLR_HOST/host --> solr.host.advertise
    * jetty.port --> solr.port.listen and SOLR_PORT_LISTEN
    
    ---------
    
    Co-authored-by: Copilot <[email protected]>
    Co-authored-by: David Smiley <[email protected]>
---
 changelog/unreleased/SOLR-15442.yml                |  10 ++
 gradle/ide/eclipse/run-solr-cloud.launch           |   2 +-
 gradle/ide/eclipse/run-solr.launch                 |   2 +-
 solr/bin/install_solr_service.sh                   |   8 +-
 solr/bin/solr                                      | 122 +++++++++++----------
 solr/bin/solr.cmd                                  | 105 ++++++++++--------
 solr/bin/solr.in.cmd                               |   6 +-
 solr/bin/solr.in.sh                                |   6 +-
 .../src/java/org/apache/solr/cli/CLIUtils.java     |   3 +-
 .../java/org/apache/solr/cli/RunExampleTool.java   |   9 +-
 .../org/apache/solr/cli/SolrProcessManager.java    |   5 +-
 .../java/org/apache/solr/core/SolrXmlConfig.java   |   5 +-
 .../apache/solr/servlet/CoreContainerProvider.java |   2 +-
 .../src/test/org/apache/solr/cli/CLIUtilsTest.java |   4 +-
 .../src/test/org/apache/solr/cli/PostToolTest.java |   4 +-
 .../apache/solr/cli/SolrProcessManagerTest.java    |   8 +-
 .../org/apache/solr/cli/TestSolrCLIRunExample.java |   7 +-
 .../src/test/org/apache/solr/core/TestSolrXml.java |   2 +-
 solr/docker/scripts/docker-entrypoint.sh           |   6 +-
 solr/docker/scripts/solr-create                    |   2 +-
 solr/docker/scripts/start-local-solr               |   2 +-
 solr/docker/scripts/wait-for-solr.sh               |   6 +-
 solr/docker/templates/Dockerfile.body.template     |   2 +-
 .../cross-dc/src/test-files/mirroring-solr.xml     |   4 +-
 solr/packaging/build.gradle                        |   1 +
 solr/packaging/test/test_zk.bats                   |   6 +-
 solr/server/etc/jetty-http.xml                     |   4 +-
 solr/server/etc/jetty-https.xml                    |   2 +-
 solr/server/solr/solr.xml                          |   2 +-
 .../pages/configuring-solr-xml.adoc                |   4 +-
 .../configuration-guide/pages/solr-properties.adoc |   8 ++
 .../pages/system-info-handler.adoc                 |   4 +-
 .../deployment-guide/pages/securing-solr.adoc      |   6 +-
 .../pages/taking-solr-to-production.adoc           |   2 +
 .../getting-started/pages/tutorial-aws.adoc        |   2 +-
 .../pages/major-changes-in-solr-10.adoc            |   9 ++
 .../DeprecatedSystemPropertyMappings.properties    |   4 +
 .../src/resources/EnvToSyspropMappings.properties  |   1 -
 .../org/apache/solr/common/util/EnvUtilsTest.java  |   3 +-
 .../org/apache/solr/cloud/AbstractZkTestCase.java  |   4 +-
 40 files changed, 225 insertions(+), 169 deletions(-)

diff --git a/changelog/unreleased/SOLR-15442.yml 
b/changelog/unreleased/SOLR-15442.yml
new file mode 100644
index 00000000000..ba5a5175974
--- /dev/null
+++ b/changelog/unreleased/SOLR-15442.yml
@@ -0,0 +1,10 @@
+# See https://github.com/apache/solr/blob/main/dev-docs/changelog.adoc
+title: Sync up various system properties related to Solr's Jetty process for 
hosts and ports
+type: changed # added, changed, fixed, deprecated, removed, dependency_update, 
security, other
+authors:
+  - name: Eric Pugh
+links:
+  - name: SOLR-15442
+    url: https://issues.apache.org/jira/browse/SOLR-15442
+issues:
+  - 15442
diff --git a/gradle/ide/eclipse/run-solr-cloud.launch 
b/gradle/ide/eclipse/run-solr-cloud.launch
index 1cd8734f1a4..3ef940dcc66 100644
--- a/gradle/ide/eclipse/run-solr-cloud.launch
+++ b/gradle/ide/eclipse/run-solr-cloud.launch
@@ -16,5 +16,5 @@
        <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" 
value="org.eclipse.jetty.start.Main"/>
        <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" 
value="--module=http"/>
        <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" 
value="@ECLIPSEPROJECTNAME@"/>
-       <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" 
value="-Xms512m &#13;&#10;-Djetty.port=8983&#13;&#10;-DSTOP.PORT=7983 
&#13;&#10;-DSTOP.KEY=solrrock&#13;&#10;-Dlog4j.configurationFile=&quot;file:${workspace_loc:@ECLIPSEPROJECTNAME@}/solr/server/resources/log4j2.xml&quot;&#13;&#10;-Djetty.home=&quot;${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server&quot;&#13;&#10;-Djetty.base=&quot;${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server&quot;&#13;&#10;-
 [...]
+       <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" 
value="-Xms512m &#13;&#10;-Dsolr.port.listen=8983&#13;&#10;-DSTOP.PORT=7983 
&#13;&#10;-DSTOP.KEY=solrrock&#13;&#10;-Dlog4j.configurationFile=&quot;file:${workspace_loc:@ECLIPSEPROJECTNAME@}/solr/server/resources/log4j2.xml&quot;&#13;&#10;-Djetty.home=&quot;${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server&quot;&#13;&#10;-Djetty.base=&quot;${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server&quot;&#13;
 [...]
 </launchConfiguration>
diff --git a/gradle/ide/eclipse/run-solr.launch 
b/gradle/ide/eclipse/run-solr.launch
index 2cebe437425..985f08825d9 100644
--- a/gradle/ide/eclipse/run-solr.launch
+++ b/gradle/ide/eclipse/run-solr.launch
@@ -16,5 +16,5 @@
        <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" 
value="org.eclipse.jetty.start.Main"/>
        <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" 
value="--module=http"/>
        <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" 
value="@ECLIPSEPROJECTNAME@"/>
-    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" 
value="-Xms512m &#13;&#10;-Djetty.port=8983&#13;&#10;-DSTOP.PORT=7983 
&#13;&#10;-DSTOP.KEY=solrrock&#13;&#10;-Dlog4j.configurationFile=&quot;file:${workspace_loc:@ECLIPSEPROJECTNAME@}/solr/server/resources/log4j2.xml&quot;&#13;&#10;-Djetty.home=&quot;${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server&quot;&#13;&#10;-Djetty.base=&quot;${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server&quot;&#13;&#1
 [...]
+    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" 
value="-Xms512m &#13;&#10;-Dsolr.port.listen=8983&#13;&#10;-DSTOP.PORT=7983 
&#13;&#10;-DSTOP.KEY=solrrock&#13;&#10;-Dlog4j.configurationFile=&quot;file:${workspace_loc:@ECLIPSEPROJECTNAME@}/solr/server/resources/log4j2.xml&quot;&#13;&#10;-Djetty.home=&quot;${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server&quot;&#13;&#10;-Djetty.base=&quot;${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server&quot;&#
 [...]
 </launchConfiguration>
diff --git a/solr/bin/install_solr_service.sh b/solr/bin/install_solr_service.sh
index 59ca0e54d69..9f98b66e928 100755
--- a/solr/bin/install_solr_service.sh
+++ b/solr/bin/install_solr_service.sh
@@ -159,7 +159,7 @@ if [ $# -gt 1 ]; then
               print_usage "Port is required when using the $1 option!"
               exit 1
             fi
-            SOLR_PORT="$2"
+            SOLR_PORT_LISTEN="$2"
             shift 2
         ;;
         -f)
@@ -220,8 +220,8 @@ if [ -z "$SOLR_USER" ]; then
   SOLR_USER=solr
 fi
 
-if [ -z "$SOLR_PORT" ]; then
-  SOLR_PORT=8983
+if [ -z "$SOLR_PORT_LISTEN" ]; then
+  SOLR_PORT_LISTEN=8983
 fi
 
 if [ -z "$SOLR_UPGRADE" ]; then
@@ -330,7 +330,7 @@ SOLR_PID_DIR=\"$SOLR_VAR_DIR\"
 SOLR_HOME=\"$SOLR_VAR_DIR/data\"
 LOG4J_PROPS=\"$SOLR_VAR_DIR/log4j2.xml\"
 SOLR_LOGS_DIR=\"$SOLR_VAR_DIR/logs\"
-SOLR_PORT=\"$SOLR_PORT\"
+SOLR_PORT_LISTEN=\"$SOLR_PORT_LISTEN\"
 " >> "/etc/default/$SOLR_SERVICE.in.sh"
 fi
 chown root:${SOLR_USER} "/etc/default/$SOLR_SERVICE.in.sh"
diff --git a/solr/bin/solr b/solr/bin/solr
index 5c9e1a3f438..bc2d475e6d2 100755
--- a/solr/bin/solr
+++ b/solr/bin/solr
@@ -155,9 +155,9 @@ fi
 : "${SOLR_START_WAIT:=$SOLR_STOP_WAIT}" # defaulting to $SOLR_STOP_WAIT for 
backwards compatibility reasons
 
 # Store whether a solr port was explicitly provided, for the "solr stop" 
command.
-PROVIDED_SOLR_PORT="${SOLR_PORT:-}"
-: "${SOLR_PORT:=8983}"
-export SOLR_PORT
+PROVIDED_SOLR_PORT="${SOLR_PORT_LISTEN:-}"
+: "${SOLR_PORT_LISTEN:=8983}"
+export SOLR_PORT_LISTEN
 
 # test that Java exists, is executable and correct version
 JAVA_VER=$("$JAVA" -version 2>&1)
@@ -382,8 +382,8 @@ function print_usage() {
     echo "  --host <host>         Specify the hostname for this Solr instance"
     echo ""
     echo "  -p/--port <port>      Specify the port to start the Solr HTTP 
listener on; default is 8983"
-    echo "                          The specified port (SOLR_PORT) will also 
be used to determine the stop port"
-    echo "                          STOP_PORT=(\$SOLR_PORT-1000) and JMX RMI 
listen port RMI_PORT=(\$SOLR_PORT+10000). "
+    echo "                          The specified port (SOLR_PORT_LISTEN) will 
also be used to determine the stop port"
+    echo "                          STOP_PORT=(\$SOLR_PORT_LISTEN-1000) and 
JMX RMI listen port RMI_PORT=(\$SOLR_PORT_LISTEN+10000). "
     echo "                          For instance, if you set -p 8985, then the 
STOP_PORT=7985 and RMI_PORT=18985"
     echo ""
     echo "  --server-dir <dir>   Specify the Solr server directory; defaults 
to server"
@@ -475,21 +475,21 @@ function solr_pid_by_port() {
   fi
 }
 
-# extract the value of the -Djetty.port parameter from a running Solr process
-function jetty_port() {
+# extract the value of the -Dsolr.port.listen parameter from a running Solr 
process
+function solr_port_listen() {
   SOLR_PID="$1"
-  SOLR_PROC=$(ps -fww -p "$SOLR_PID" | grep start\.jar | grep jetty\.port)
+  SOLR_PROC=$(ps -fww -p "$SOLR_PID" | grep start\.jar | grep 
solr\.port\.listen)
   IFS=' ' read -a proc_args <<< "$SOLR_PROC"
   for arg in "${proc_args[@]}"
     do
       IFS='=' read -a pair <<< "$arg"
-      if [ "${pair[0]}" == "-Djetty.port" ]; then
-        local jetty_port="${pair[1]}"
+      if [ "${pair[0]}" == "-Dsolr.port.listen" ]; then
+        local solr_port="${pair[1]}"
         break
       fi
     done
-  echo "$jetty_port"
-} # end jetty_port func
+  echo "$solr_port"
+} # end solr_port_listen func
 
 # run a Solr command-line tool using the SolrCLI class;
 # useful for doing cross-platform work from the command-line using Java
@@ -511,13 +511,13 @@ function run_tool() {
 function stop_solr() {
 
   DIR="$1"
-  SOLR_PORT="$2"
-  THIS_STOP_PORT="${STOP_PORT:-$((SOLR_PORT - 1000))}"
+  SOLR_PORT_LISTEN="$2"
+  THIS_STOP_PORT="${STOP_PORT:-$((SOLR_PORT_LISTEN - 1000))}"
   STOP_KEY="$3"
   SOLR_PID="$4"
 
   if [ -n "$SOLR_PID"  ]; then
-    echo -e "Sending stop command to Solr running on port $SOLR_PORT ... 
waiting up to $SOLR_STOP_WAIT seconds to allow Jetty process $SOLR_PID to stop 
gracefully."
+    echo -e "Sending stop command to Solr running on port $SOLR_PORT_LISTEN 
... waiting up to $SOLR_STOP_WAIT seconds to allow Jetty process $SOLR_PID to 
stop gracefully."
     # shellcheck disable=SC2086,SC2164
     "$JAVA" -Djava.io.tmpdir="$(cd "${TMPDIR:-${TEMP:-${TMP:-/tmp}}}"; pwd 
-P)" $SOLR_SSL_OPTS $AUTHC_OPTS ${SOLR_TOOL_OPTS:-} \
       -jar "$DIR/start.jar" "STOP.PORT=$THIS_STOP_PORT" "STOP.KEY=$STOP_KEY" 
--stop || true
@@ -542,7 +542,7 @@ function stop_solr() {
         fi
       done) &
     spinner $!
-    rm -f "$SOLR_PID_DIR/solr-$SOLR_PORT.pid"
+    rm -f "$SOLR_PID_DIR/solr-$SOLR_PORT_LISTEN.pid"
   else
     echo -e "No Solr nodes found to stop."
     exit 0
@@ -561,7 +561,7 @@ function stop_solr() {
     echo -e "Solr process $SOLR_PID is still running; forcefully killing it 
now."
     kill -9 "$SOLR_PID"
     echo "Killed process $SOLR_PID"
-    rm -f "$SOLR_PID_DIR/solr-$SOLR_PORT.pid"
+    rm -f "$SOLR_PID_DIR/solr-$SOLR_PORT_LISTEN.pid"
     sleep 10
   fi
 
@@ -752,8 +752,8 @@ if [ $# -gt 0 ]; then
               print_usage "$SCRIPT_CMD" "Hostname is required when using the 
$1 option!"
               exit 1
             fi
-            SOLR_HOST="$2"
-            PASS_TO_RUN_EXAMPLE+=("--host" "$SOLR_HOST")
+            SOLR_HOST_ADVERTISE="$2"
+            PASS_TO_RUN_EXAMPLE+=("--solr.host.advertise" 
"$SOLR_HOST_ADVERTISE")
             shift 2
         ;;
         -m|--memory)
@@ -770,9 +770,9 @@ if [ $# -gt 0 ]; then
               print_usage "$SCRIPT_CMD" "Port number is required when using 
the $1 option!"
               exit 1
             fi
-            SOLR_PORT="$2"
-            PROVIDED_SOLR_PORT="${SOLR_PORT}"
-            PASS_TO_RUN_EXAMPLE+=("-p" "$SOLR_PORT")
+            SOLR_PORT_LISTEN="$2"
+            PROVIDED_SOLR_PORT="${SOLR_PORT_LISTEN}"
+            PASS_TO_RUN_EXAMPLE+=("-p" "$SOLR_PORT_LISTEN")
             shift 2
         ;;
         -z|--zk-host)
@@ -892,13 +892,21 @@ if $verbose ; then
   "$JAVA" -version
 fi
 
-if [ -n "${SOLR_HOST:-}" ]; then
-  SOLR_HOST_ARG=("-Dhost=$SOLR_HOST")
-elif [[ "${SOLR_JETTY_HOST:-127.0.0.1}" == "127.0.0.1" ]]; then
+# Check for deprecated SOLR_JETTY_HOST and show warning
+if [[ -n "${SOLR_JETTY_HOST:-}" && -z "${SOLR_HOST_BIND:-}" ]]; then
+  echo "WARNING: SOLR_JETTY_HOST is deprecated and will be removed in a future 
release."
+  echo "Please update your configuration to use SOLR_HOST_BIND instead of 
SOLR_JETTY_HOST."
+  SOLR_HOST_BIND="$SOLR_JETTY_HOST"
+fi
+
+
+if [ -n "${SOLR_HOST_ADVERTISE:-}" ]; then
+  SOLR_HOST_ADVERTISE_ARG=("-Dsolr.host.advertise=$SOLR_HOST_ADVERTISE")
+elif [[ "${SOLR_HOST_BIND:-127.0.0.1}" == "127.0.0.1" ]]; then
   # Jetty will only bind on localhost interface, so nodes must advertise 
themselves with localhost
-  SOLR_HOST_ARG=("-Dhost=localhost")
+  SOLR_HOST_ADVERTISE_ARG=("-Dsolr.host.advertise=localhost")
 else
-  SOLR_HOST_ARG=()
+  SOLR_HOST_ADVERTISE_ARG=()
 fi
 
 : "${STOP_KEY:=solrrocks}"
@@ -910,7 +918,7 @@ if [[ "$SCRIPT_CMD" == "stop" ]]; then
     find "$SOLR_PID_DIR" -name "solr-*.pid" -type f | while read PIDF
       do
         NEXT_PID=$(cat "$PIDF")
-        port=$(jetty_port "$NEXT_PID")
+        port=$(solr_port_listen "$NEXT_PID")
         if [ "$port" != "" ]; then
           stop_solr "$SOLR_SERVER_DIR" "$port" "$STOP_KEY" "$NEXT_PID"
           none_stopped=false
@@ -932,7 +940,7 @@ if [[ "$SCRIPT_CMD" == "stop" ]]; then
       PID="$(cat "$(find "$SOLR_PID_DIR" -name "solr-*.pid" -type f)")"
       CHECK_PID=$(ps -o pid='' -p "$PID" | tr -d ' ')
       if [ "$CHECK_PID" != "" ]; then
-        port=$(jetty_port "$CHECK_PID")
+        port=$(solr_port_listen "$CHECK_PID")
         if [ "$port" != "" ]; then
           stop_solr "$SOLR_SERVER_DIR" "$port" "$STOP_KEY" "$CHECK_PID"
           none_stopped=false
@@ -956,11 +964,11 @@ if [ -n "${SOLR_PORT_ADVERTISE:-}" ]; then
   SCRIPT_SOLR_OPTS+=("-Dsolr.port.advertise=$SOLR_PORT_ADVERTISE")
 fi
 
-if [ -n "${SOLR_JETTY_HOST:-}" ]; then
-  SCRIPT_SOLR_OPTS+=("-Dsolr.jetty.host=$SOLR_JETTY_HOST")
+if [ -n "${SOLR_HOST_BIND:-}" ]; then
+  SCRIPT_SOLR_OPTS+=("-Dsolr.host.bind=$SOLR_HOST_BIND")
 fi
 
-: "${STOP_PORT:=$((SOLR_PORT - 1000))}"
+: "${STOP_PORT:=$((SOLR_PORT_LISTEN - 1000))}"
 
 if [ "$SCRIPT_CMD" == "start" ] || [ "$SCRIPT_CMD" == "restart" ] ; then
   if [[ $EUID -eq 0 ]] && [[ "$FORCE" == "false" ]] ; then
@@ -972,30 +980,30 @@ fi
 
 if [[ "$SCRIPT_CMD" == "start" ]]; then
   # see if Solr is already running
-  SOLR_PID=$(solr_pid_by_port "$SOLR_PORT")
+  SOLR_PID=$(solr_pid_by_port "$SOLR_PORT_LISTEN")
 
   if [ -z "${SOLR_PID:-}" ]; then
     # not found using the pid file ... but use ps to ensure not found
-    SOLR_PID=$(ps auxww | grep start\.jar | awk "/\-Djetty\.port=$SOLR_PORT/"' 
{print $2}' | sort -r)
+    SOLR_PID=$(ps auxww | grep start\.jar | awk 
"/\-Dsolr\.port\.listen=$SOLR_PORT_LISTEN/"' {print $2}' | sort -r)
   fi
 
   if [ -n "${SOLR_PID:-}" ]; then
-    echo -e "\nPort $SOLR_PORT is already being used by another process (pid: 
$SOLR_PID)\nPlease choose a different port using the -p option.\n"
+    echo -e "\nPort $SOLR_PORT_LISTEN is already being used by another process 
(pid: $SOLR_PID)\nPlease choose a different port using the -p option.\n"
     exit 1
   fi
 else
   # either stop or restart
   # see if Solr is already running
-  SOLR_PID=$(solr_pid_by_port "$SOLR_PORT")
+  SOLR_PID=$(solr_pid_by_port "$SOLR_PORT_LISTEN")
   if [ -z "$SOLR_PID" ]; then
     # not found using the pid file ... but use ps to ensure not found
-    SOLR_PID=$(ps auxww | grep start\.jar | awk "/\-Djetty\.port=$SOLR_PORT/"' 
{print $2}' | sort -r)
+    SOLR_PID=$(ps auxww | grep start\.jar | awk 
"/\-Djetty\.port=$SOLR_PORT_LISTEN/"' {print $2}' | sort -r)
   fi
   if [ "$SOLR_PID" != "" ]; then
-    stop_solr "$SOLR_SERVER_DIR" "$SOLR_PORT" "$STOP_KEY" "$SOLR_PID"
+    stop_solr "$SOLR_SERVER_DIR" "$SOLR_PORT_LISTEN" "$STOP_KEY" "$SOLR_PID"
   else
     if [ "$SCRIPT_CMD" == "stop" ]; then
-      echo -e "No process found for Solr node running on port $SOLR_PORT"
+      echo -e "No process found for Solr node running on port 
$SOLR_PORT_LISTEN"
       exit 1
     fi
   fi
@@ -1072,8 +1080,8 @@ if [ "${SOLR_MODE:-}" == 'solrcloud' ]; then
   if [ -n "${ZK_HOST:-}" ]; then
     CLOUD_MODE_OPTS+=("-DzkHost=$ZK_HOST")
   else
-    if [ $SOLR_PORT -gt 64535 ]; then
-      echo -e "\nZK_HOST is not set and Solr port is $SOLR_PORT, which would 
result in an invalid embedded Zookeeper port!\n"
+    if [ $SOLR_PORT_LISTEN -gt 64535 ]; then
+      echo -e "\nZK_HOST is not set and Solr port is $SOLR_PORT_LISTEN, which 
would result in an invalid embedded Zookeeper port!\n"
       exit 1
     fi
     if $verbose ; then
@@ -1111,7 +1119,7 @@ 
IP_ACL_OPTS=("-Dsolr.jetty.inetaccess.includes=${SOLR_IP_ALLOWLIST:-}" \
 if [ "${ENABLE_REMOTE_JMX_OPTS:-false}" == "true" ]; then
 
   if [ -z "$RMI_PORT" ]; then
-    RMI_PORT=$((SOLR_PORT + 10000))
+    RMI_PORT=$((SOLR_PORT_LISTEN + 10000))
     if [ $RMI_PORT -gt 65535 ]; then
       echo -e "\nRMI_PORT is $RMI_PORT, which is invalid!\n"
       exit 1
@@ -1204,8 +1212,8 @@ function start_solr() {
 
   # If SSL-related system props are set, add them to SCRIPT_SOLR_OPTS
   if [ "$SOLR_SSL_ENABLED" == "true" ]; then
-    # If using SSL and solr.jetty.https.port not set explicitly, use the 
jetty.port
-    SSL_PORT_PROP="-Dsolr.jetty.https.port=$SOLR_PORT"
+    # If using SSL and solr.jetty.https.port not set explicitly, use the 
solr.port.listen
+    SSL_PORT_PROP="-Dsolr.jetty.https.port=$SOLR_PORT_LISTEN"
     SCRIPT_SOLR_OPTS+=($SOLR_SSL_OPTS "$SSL_PORT_PROP")
   fi
 
@@ -1233,8 +1241,8 @@ function start_solr() {
     echo -e "    JAVA               = $JAVA"
     echo -e "    SOLR_SERVER_DIR    = $SOLR_SERVER_DIR"
     echo -e "    SOLR_HOME          = $SOLR_HOME"
-    echo -e "    SOLR_HOST          = ${SOLR_HOST:-}"
-    echo -e "    SOLR_PORT          = $SOLR_PORT"
+    echo -e "    SOLR_HOST_ADVERTISE= ${SOLR_HOST_ADVERTISE:-}"
+    echo -e "    SOLR_PORT_LISTEN   = $SOLR_PORT_LISTEN"
     echo -e "    STOP_PORT          = $STOP_PORT"
     echo -e "    JAVA_MEM_OPTS      = ${JAVA_MEM_OPTS[*]}"
     echo -e "    GC_TUNE            = ${GC_TUNE_ARR[*]}"
@@ -1288,11 +1296,11 @@ function start_solr() {
   # shellcheck disable=SC2164
   SOLR_START_OPTS=('-server' "${JAVA_MEM_OPTS[@]}" "${GC_TUNE_ARR[@]}" 
"${GC_LOG_OPTS[@]}" "${IP_ACL_OPTS[@]}" \
     "${REMOTE_JMX_OPTS[@]}" "${CLOUD_MODE_OPTS[@]}" 
-Dsolr.logs.dir="$SOLR_LOGS_DIR" \
-    "-Djetty.port=$SOLR_PORT" "-DSTOP.PORT=$stop_port" "-DSTOP.KEY=$STOP_KEY" \
+    "-Dsolr.port.listen=$SOLR_PORT_LISTEN" "-DSTOP.PORT=$stop_port" 
"-DSTOP.KEY=$STOP_KEY" \
     "-Djava.io.tmpdir=$(cd "${TMPDIR:-${TEMP:-${TMP:-/tmp}}}"; pwd -P)" \
     # '-OmitStackTraceInFastThrow' ensures stack traces in errors,
     # users who don't care about useful error msgs can override in SOLR_OPTS 
with +OmitStackTraceInFastThrow
-    "${SOLR_HOST_ARG[@]}" "-Duser.timezone=$SOLR_TIMEZONE" 
"-XX:-OmitStackTraceInFastThrow" \
+    "${SOLR_HOST_ADVERTISE_ARG[@]}" "-Duser.timezone=$SOLR_TIMEZONE" 
"-XX:-OmitStackTraceInFastThrow" \
     # '+CrashOnOutOfMemoryError' ensures that Solr crashes whenever
     # OOME is thrown. Program operation after OOME is unpredictable.
     "-XX:+CrashOnOutOfMemoryError" 
"-XX:ErrorFile=${SOLR_LOGS_DIR}/jvm_crash_%p.log" \
@@ -1318,7 +1326,7 @@ function start_solr() {
     # shellcheck disable=SC2086
     nohup "$JAVA" "${SOLR_START_OPTS[@]}" $SOLR_ADDL_ARGS 
-Dsolr.log.muteconsole \
         -jar start.jar "${SOLR_JETTY_CONFIG[@]}" $SOLR_JETTY_ADDL_CONFIG \
-        1>"$SOLR_LOGS_DIR/solr-$SOLR_PORT-console.log" 2>&1 & echo $! > 
"$SOLR_PID_DIR/solr-$SOLR_PORT.pid"
+        1>"$SOLR_LOGS_DIR/solr-$SOLR_PORT_LISTEN-console.log" 2>&1 & echo $! > 
"$SOLR_PID_DIR/solr-$SOLR_PORT_LISTEN.pid"
 
     # Check and warn about low entropy on Linux systems
     if [ -e /proc/sys/kernel/random ]; then
@@ -1345,34 +1353,34 @@ function start_solr() {
 
     # no lsof on cygwin though
     if lsof -v 2>&1 | grep -q revision; then
-      echo -n "Waiting up to $SOLR_START_WAIT seconds to see Solr running on 
port $SOLR_PORT"
+      echo -n "Waiting up to $SOLR_START_WAIT seconds to see Solr running on 
port $SOLR_PORT_LISTEN"
       # Launch in a subshell to show the spinner
       (loops=0
       while true
       do
-        running=$(lsof -t -PniTCP:$SOLR_PORT -sTCP:LISTEN || :)
+        running=$(lsof -t -PniTCP:$SOLR_PORT_LISTEN -sTCP:LISTEN || :)
         if [ -z "${running:-}" ]; then
           slept=$((loops * 2))
           if [ $slept -lt $SOLR_START_WAIT ]; then
             sleep 2
             loops=$((loops+1))
           else
-            echo -e "Still not seeing Solr listening on $SOLR_PORT after 
$SOLR_START_WAIT seconds!"
+            echo -e "Still not seeing Solr listening on $SOLR_PORT_LISTEN 
after $SOLR_START_WAIT seconds!"
             tail -30 "$SOLR_LOGS_DIR/solr.log"
             exit # subshell!
           fi
         else
-          SOLR_PID=$(ps auxww | grep start\.jar | awk 
"/\-Djetty\.port=$SOLR_PORT/"' {print $2}' | sort -r)
-          echo -e "\nStarted Solr server on port $SOLR_PORT (pid=$SOLR_PID). 
Happy searching!\n"
+          SOLR_PID=$(ps auxww | grep start\.jar | awk 
"/\-Dsolr\.port\.listen=$SOLR_PORT_LISTEN/"' {print $2}' | sort -r)
+          echo -e "\nStarted Solr server on port $SOLR_PORT_LISTEN 
(pid=$SOLR_PID). Happy searching!\n"
           exit # subshell!
         fi
       done) &
       spinner $!
     else
-      echo -e "NOTE: Please install lsof as this script needs it to determine 
if Solr is listening on port $SOLR_PORT."
+      echo -e "NOTE: Please install lsof as this script needs it to determine 
if Solr is listening on port $SOLR_PORT_LISTEN."
       sleep 10
-      SOLR_PID=$(ps auxww | grep start\.jar | awk 
"/\-Djetty\.port=$SOLR_PORT/"' {print $2}' | sort -r)
-      echo -e "\nStarted Solr server on port $SOLR_PORT (pid=$SOLR_PID). Happy 
searching!\n"
+      SOLR_PID=$(ps auxww | grep start\.jar | awk 
"/\-Dsolr\.port\.listen=$SOLR_PORT_LISTEN/"' {print $2}' | sort -r)
+      echo -e "\nStarted Solr server on port $SOLR_PORT_LISTEN 
(pid=$SOLR_PID). Happy searching!\n"
       return;
     fi
   fi
diff --git a/solr/bin/solr.cmd b/solr/bin/solr.cmd
index 70a05e72e4a..76bcab0ba83 100755
--- a/solr/bin/solr.cmd
+++ b/solr/bin/solr.cmd
@@ -243,8 +243,17 @@ IF DEFINED SOLR_AUTHENTICATION_CLIENT_BUILDER (
 )
 set "AUTHC_OPTS=%AUTHC_CLIENT_BUILDER_ARG% %SOLR_AUTHENTICATION_OPTS%"
 
-IF "%SOLR_JETTY_HOST%"=="" (
-  set "SOLR_JETTY_HOST=127.0.0.1"
+REM Check for deprecated SOLR_JETTY_HOST and show warning
+IF NOT "%SOLR_JETTY_HOST%"=="" (
+  IF "%SOLR_HOST_BIND%"=="" (
+    echo WARNING: SOLR_JETTY_HOST is deprecated and will be removed in a 
future release.
+    echo Please update your configuration to use SOLR_HOST_BIND instead of 
SOLR_JETTY_HOST.
+    set "SOLR_HOST_BIND=%SOLR_JETTY_HOST%"
+  )
+)
+
+IF "%SOLR_HOST_BIND%"=="" (
+  set "SOLR_HOST_BIND=127.0.0.1"
 )
 
 
@@ -291,8 +300,8 @@ goto err
 @echo   --host host   Specify the hostname for this Solr instance
 @echo.
 @echo   -p/--port port Specify the port to start the Solr HTTP listener on; 
default is 8983
-@echo                   The specified port (SOLR_PORT) will also be used to 
determine the stop port
-@echo                   STOP_PORT=(%%SOLR_PORT%%-1000) and JMX RMI listen port 
RMI_PORT=(%%SOLR_PORT%%+10000).
+@echo                   The specified port (SOLR_PORT_LISTEN) will also be 
used to determine the stop port
+@echo                   STOP_PORT=(%%SOLR_PORT_LISTEN%%-1000) and JMX RMI 
listen port RMI_PORT=(%%SOLR_PORT_LISTEN%%+10000).
 @echo                   For instance, if you set -p 8985, then the 
STOP_PORT=7985 and RMI_PORT=18985
 @echo.
 @echo   --server-dir dir Specify the Solr server directory; defaults to server
@@ -567,7 +576,7 @@ IF "%firstChar%"=="-" (
   goto invalid_cmd_line
 )
 
-set SOLR_PORT=%~2
+set SOLR_PORT_LISTEN=%~2
 set "PASS_TO_RUN_EXAMPLE=-p %~2 !PASS_TO_RUN_EXAMPLE!"
 SHIFT
 SHIFT
@@ -714,14 +723,14 @@ IF "%verbose%"=="1" (
   @echo.
 )
 
-IF NOT "%SOLR_HOST%"=="" (
-  set SOLR_HOST_ARG=-Dhost=%SOLR_HOST%
-) ELSE IF "%SOLR_JETTY_HOST%"=="" (
-  set "SOLR_HOST_ARG=-Dhost=localhost"
-) ELSE IF "%SOLR_JETTY_HOST%"=="127.0.0.1" (
-  set "SOLR_HOST_ARG=-Dhost=localhost"
+IF NOT "%SOLR_HOST_ADVERTISE%"=="" (
+  set SOLR_HOST_ADVERTISE_ARG=-Dsolr.host.advertise=%SOLR_HOST_ADVERTISE%
+) ELSE IF "%SOLR_HOST_BIND%"=="" (
+  set "SOLR_HOST_ADVERTISE_ARG=-Dsolr.host.advertise=localhost"
+) ELSE IF "%SOLR_HOST_BIND%"=="127.0.0.1" (
+  set "SOLR_HOST_ADVERTISE_ARG=-Dsolr.host.advertise=localhost"
 ) ELSE (
-  set SOLR_HOST_ARG=
+  set SOLR_HOST_ADVERTISE_ARG=
 )
 
 set SCRIPT_SOLR_OPTS=
@@ -756,7 +765,7 @@ IF NOT "%EXAMPLE%"=="" (
 
 set IS_RESTART=0
 IF "%SCRIPT_CMD%"=="restart" (
-  IF "%SOLR_PORT%"=="" (
+  IF "%SOLR_PORT_LISTEN%"=="" (
     set "SCRIPT_ERROR=Must specify the port when trying to restart Solr."
     goto err
   )
@@ -772,7 +781,7 @@ IF "%SCRIPT_CMD%"=="start" goto start_solr
 IF "%SOLR_STOP_WAIT%"=="" (
   set SOLR_STOP_WAIT=180
 )
-IF "%SOLR_PORT%"=="" (
+IF "%SOLR_PORT_LISTEN%"=="" (
   IF "%STOP_ALL%"=="1" (
     REM Stop all running Solr instances
     set found_it=0
@@ -783,7 +792,7 @@ IF "%SOLR_PORT%"=="" (
         for /f "tokens=2,5" %%j in ('netstat -aon ^| find "TCP " ^| find ":0 " 
^| find ":!SOME_SOLR_PORT! "') do (
           @REM j is the ip:port and k is the pid
           IF NOT "%%k"=="0" (
-            IF "%%j"=="%SOLR_JETTY_HOST%:!SOME_SOLR_PORT!" (
+            IF "%%j"=="%SOLR_HOST_BIND%:!SOME_SOLR_PORT!" (
               set found_it=1
               @echo Stopping Solr process %%k running on port !SOME_SOLR_PORT!
               IF "%STOP_PORT%"=="" (
@@ -814,14 +823,14 @@ IF "%SOLR_PORT%"=="" (
 ) ELSE (
   REM Stop Solr running on specific port
   set found_it=0
-  For /f "tokens=2,5" %%M in ('netstat -nao ^| find "TCP " ^| find ":0 " ^| 
find ":%SOLR_PORT% "') do (
+  For /f "tokens=2,5" %%M in ('netstat -nao ^| find "TCP " ^| find ":0 " ^| 
find ":%SOLR_PORT_LISTEN% "') do (
     IF NOT "%%N"=="0" (
-      IF "%%M"=="%SOLR_JETTY_HOST%:%SOLR_PORT%" (
+      IF "%%M"=="%SOLR_HOST_BIND%:%SOLR_PORT_LISTEN%" (
         set found_it=1
-        @echo Stopping Solr process %%N running on port %SOLR_PORT%
-        IF "%STOP_PORT%"=="" set /A STOP_PORT=%SOLR_PORT% - 1000
+        @echo Stopping Solr process %%N running on port %SOLR_PORT_LISTEN%
+        IF "%STOP_PORT%"=="" set /A STOP_PORT=%SOLR_PORT_LISTEN% - 1000
         "%JAVA%" %SOLR_SSL_OPTS% %SOLR_TOOL_OPTS% 
-Djetty.home="%SOLR_SERVER_DIR%" -jar "%SOLR_SERVER_DIR%\start.jar" 
%SOLR_JETTY_CONFIG% STOP.PORT=!STOP_PORT! STOP.KEY=%STOP_KEY% --stop
-        del "%SOLR_TIP%"\bin\solr-%SOLR_PORT%.port
+        del "%SOLR_TIP%"\bin\solr-%SOLR_PORT_LISTEN%.port
         REM wait for the process to terminate
         CALL :wait_for_process_exit %%N !SOLR_STOP_WAIT!
         REM Kill it if it is still running after the graceful shutdown
@@ -833,7 +842,7 @@ IF "%SOLR_PORT%"=="" (
       )
     )
   )
-  if "!found_it!"=="0" echo No Solr found running on port %SOLR_PORT%
+  if "!found_it!"=="0" echo No Solr found running on port %SOLR_PORT_LISTEN%
 )
 
 IF "!IS_RESTART!"=="0" goto done
@@ -870,22 +879,22 @@ IF NOT "%TMP_SOLR_HOME%"=="%SOLR_HOME%" (
 )
 
 
-IF "%SOLR_PORT%"=="" set SOLR_PORT=8983
-IF "%STOP_PORT%"=="" set /A STOP_PORT=%SOLR_PORT% - 1000
+IF "%SOLR_PORT_LISTEN%"=="" set SOLR_PORT_LISTEN=8983
+IF "%STOP_PORT%"=="" set /A STOP_PORT=%SOLR_PORT_LISTEN% - 1000
 
 IF DEFINED SOLR_PORT_ADVERTISE (
   set "SCRIPT_SOLR_OPTS=%SCRIPT_SOLR_OPTS% 
-Dsolr.port.advertise=%SOLR_PORT_ADVERTISE%"
 )
 
-IF DEFINED SOLR_JETTY_HOST (
-  set "SCRIPT_SOLR_OPTS=%SCRIPT_SOLR_OPTS% -Dsolr.jetty.host=%SOLR_JETTY_HOST%"
+IF DEFINED SOLR_HOST_BIND (
+  set "SCRIPT_SOLR_OPTS=%SCRIPT_SOLR_OPTS% -Dsolr.host.bind=%SOLR_HOST_BIND%"
 )
 
 REM Make sure Solr is not running using netstat
-For /f "tokens=2,5" %%j in ('netstat -aon ^| find "TCP " ^| find ":0 " ^| find 
":%SOLR_PORT% "') do (
+For /f "tokens=2,5" %%j in ('netstat -aon ^| find "TCP " ^| find ":0 " ^| find 
":%SOLR_PORT_LISTEN% "') do (
   IF NOT "%%k"=="0" (
-    IF "%%j"=="%SOLR_JETTY_HOST%:%SOLR_PORT%" (
-      set "SCRIPT_ERROR=Process %%k is already listening on port %SOLR_PORT%. 
If this is Solr, please stop it first before starting (or use restart). If this 
is not Solr, then please choose a different port using -p PORT"
+    IF "%%j"=="%SOLR_HOST_BIND%:%SOLR_PORT_LISTEN%" (
+      set "SCRIPT_ERROR=Process %%k is already listening on port 
%SOLR_PORT_LISTEN%. If this is Solr, please stop it first before starting (or 
use restart). If this is not Solr, then please choose a different port using -p 
PORT"
       goto err
     )
   )
@@ -919,8 +928,8 @@ IF "%SOLR_MODE%"=="solrcloud" (
   IF NOT "%ZK_HOST%"=="" (
     set "CLOUD_MODE_OPTS=!CLOUD_MODE_OPTS! -DzkHost=%ZK_HOST%"
   ) ELSE (
-    IF %SOLR_PORT% GTR 64535 (
-      set "SCRIPT_ERROR=ZK_HOST is not set and Solr port is %SOLR_PORT%, which 
would result in an invalid embedded Zookeeper port!"
+    IF %SOLR_PORT_LISTEN% GTR 64535 (
+      set "SCRIPT_ERROR=ZK_HOST is not set and Solr port is 
%SOLR_PORT_LISTEN%, which would result in an invalid embedded Zookeeper port!"
       goto err
     )
     IF "%verbose%"=="1" echo Configuring SolrCloud to launch an embedded 
Zookeeper using -Dsolr.zookeeper.server.enabled
@@ -960,7 +969,7 @@ set 
IP_ACL_OPTS=-Dsolr.jetty.inetaccess.includes="%SOLR_IP_ALLOWLIST%" ^
 REM These are useful for attaching remove profilers like VisualVM/JConsole
 IF "%ENABLE_REMOTE_JMX_OPTS%"=="true" (
   IF "!RMI_PORT!"=="" (
-    set /A RMI_PORT=%SOLR_PORT%+10000
+    set /A RMI_PORT=%SOLR_PORT_LISTEN%+10000
     IF !RMI_PORT! GTR 65535 (
       set "SCRIPT_ERROR=RMI_PORT is !RMI_PORT!, which is invalid!"
       goto err
@@ -973,7 +982,7 @@ IF "%ENABLE_REMOTE_JMX_OPTS%"=="true" (
 -Dcom.sun.management.jmxremote.port=!RMI_PORT! ^
 -Dcom.sun.management.jmxremote.rmi.port=!RMI_PORT!
 
-  IF NOT "%SOLR_HOST%"=="" set REMOTE_JMX_OPTS=!REMOTE_JMX_OPTS! 
-Djava.rmi.server.hostname=%SOLR_HOST%
+  IF NOT "%SOLR_HOST_ADVERTISE%"=="" set REMOTE_JMX_OPTS=!REMOTE_JMX_OPTS! 
-Djava.rmi.server.hostname=%SOLR_HOST_ADVERTISE%
 ) ELSE (
   set REMOTE_JMX_OPTS=
 )
@@ -1016,13 +1025,13 @@ IF "%verbose%"=="1" (
   CALL :safe_echo "    JAVA              = %JAVA%"
   CALL :safe_echo "    SOLR_SERVER_DIR   = %SOLR_SERVER_DIR%"
   CALL :safe_echo "    SOLR_HOME         = %SOLR_HOME%"
-  @echo     SOLR_HOST         = %SOLR_HOST%
-  @echo     SOLR_PORT         = %SOLR_PORT%
-  @echo     STOP_PORT         = %STOP_PORT%
-  @echo     SOLR_JAVA_MEM     = %SOLR_JAVA_MEM%
-  @echo     GC_TUNE           = !GC_TUNE!
-  @echo     GC_LOG_OPTS       = %GC_LOG_OPTS%
-  @echo     SOLR_TIMEZONE     = %SOLR_TIMEZONE%
+  @echo     SOLR_HOST_ADVERTISE = %SOLR_HOST_ADVERTISE%
+  @echo     SOLR_PORT_LISTEN    = %SOLR_PORT_LISTEN%
+  @echo     STOP_PORT           = %STOP_PORT%
+  @echo     SOLR_JAVA_MEM       = %SOLR_JAVA_MEM%
+  @echo     GC_TUNE             = !GC_TUNE!
+  @echo     GC_LOG_OPTS         = %GC_LOG_OPTS%
+  @echo     SOLR_TIMEZONE       = %SOLR_TIMEZONE%
 
   IF "%SOLR_MODE%"=="solrcloud" (
     @echo     CLOUD_MODE_OPTS   = %CLOUD_MODE_OPTS%
@@ -1073,12 +1082,12 @@ IF NOT "!CLOUD_MODE_OPTS!"=="" set 
"START_OPTS=%START_OPTS% !CLOUD_MODE_OPTS!"
 IF NOT "!IP_ACL_OPTS!"=="" set "START_OPTS=%START_OPTS% !IP_ACL_OPTS!"
 IF NOT "!REMOTE_JMX_OPTS!"=="" set "START_OPTS=%START_OPTS% !REMOTE_JMX_OPTS!"
 IF NOT "%SOLR_ADDL_ARGS%"=="" set "START_OPTS=%START_OPTS% %SOLR_ADDL_ARGS%"
-IF NOT "%SOLR_HOST_ARG%"=="" set "START_OPTS=%START_OPTS% %SOLR_HOST_ARG%"
+IF NOT "%SOLR_HOST_ADVERTISE_ARG%"=="" set "START_OPTS=%START_OPTS% 
%SOLR_HOST_ADVERTISE_ARG%"
 IF NOT "%SCRIPT_SOLR_OPTS%"=="" set "START_OPTS=%START_OPTS% 
%SCRIPT_SOLR_OPTS%"
 IF NOT "%SOLR_OPTS_INTERNAL%"=="" set "START_OPTS=%START_OPTS% 
%SOLR_OPTS_INTERNAL%"
 IF NOT "!SECURITY_MANAGER_OPTS!"=="" set "START_OPTS=%START_OPTS% 
!SECURITY_MANAGER_OPTS!"
 IF "%SOLR_SSL_ENABLED%"=="true" (
-  set "SSL_PORT_PROP=-Dsolr.jetty.https.port=%SOLR_PORT%"
+  set "SSL_PORT_PROP=-Dsolr.jetty.https.port=%SOLR_PORT_LISTEN%"
   set "START_OPTS=%START_OPTS% %SOLR_SSL_OPTS% !SSL_PORT_PROP!"
 )
 
@@ -1117,22 +1126,22 @@ IF NOT EXIST "%SOLR_SERVER_DIR%\tmp" (
 
 IF "%FG%"=="1" (
   REM run solr in the foreground
-  title "Solr-%SOLR_PORT%"
-  echo %SOLR_PORT%>"%SOLR_TIP%"\bin\solr-%SOLR_PORT%.port
+  title "Solr-%SOLR_PORT_LISTEN%"
+  echo %SOLR_PORT_LISTEN%>"%SOLR_TIP%"\bin\solr-%SOLR_PORT_LISTEN%.port
   "%JAVA%" %SERVEROPT% %SOLR_JAVA_MEM% %START_OPTS% ^
     -Dlog4j.configurationFile="%LOG4J_CONFIG%" -DSTOP.PORT=!STOP_PORT! 
-DSTOP.KEY=%STOP_KEY% ^
     -Dsolr.solr.home="%SOLR_HOME%" -Dsolr.install.dir="%SOLR_TIP%" 
-Dsolr.install.symDir="%SOLR_TIP%" ^
-    -Djetty.port=%SOLR_PORT% -Djetty.home="%SOLR_SERVER_DIR%" ^
+    -Dsolr.port.listen=%SOLR_PORT_LISTEN% -Djetty.home="%SOLR_SERVER_DIR%" ^
     -Djava.io.tmpdir="%SOLR_SERVER_DIR%\tmp" -jar start.jar 
%SOLR_JETTY_CONFIG% "%SOLR_JETTY_ADDL_CONFIG%"
 ) ELSE (
-  START /B "Solr-%SOLR_PORT%" /D "%SOLR_SERVER_DIR%" ^
+  START /B "Solr-%SOLR_PORT_LISTEN%" /D "%SOLR_SERVER_DIR%" ^
     "%JAVA%" %SERVEROPT% %SOLR_JAVA_MEM% %START_OPTS% ^
     -Dlog4j.configurationFile="%LOG4J_CONFIG%" -DSTOP.PORT=!STOP_PORT! 
-DSTOP.KEY=%STOP_KEY% ^
     -Dsolr.log.muteconsole ^
     -Dsolr.solr.home="%SOLR_HOME%" -Dsolr.install.dir="%SOLR_TIP%" 
-Dsolr.install.symDir="%SOLR_TIP%" ^
-    -Djetty.port=%SOLR_PORT% -Djetty.home="%SOLR_SERVER_DIR%" ^
-    -Djava.io.tmpdir="%SOLR_SERVER_DIR%\tmp" -jar start.jar 
%SOLR_JETTY_CONFIG% "%SOLR_JETTY_ADDL_CONFIG%" > 
"!SOLR_LOGS_DIR!\solr-%SOLR_PORT%-console.log"
-  echo %SOLR_PORT%>"%SOLR_TIP%"\bin\solr-%SOLR_PORT%.port
+    -Dsolr.port.listen=%SOLR_PORT_LISTEN% -Djetty.home="%SOLR_SERVER_DIR%" ^
+    -Djava.io.tmpdir="%SOLR_SERVER_DIR%\tmp" -jar start.jar 
%SOLR_JETTY_CONFIG% "%SOLR_JETTY_ADDL_CONFIG%" > 
"!SOLR_LOGS_DIR!\solr-%SOLR_PORT_LISTEN%-console.log"
+  echo %SOLR_PORT_LISTEN%>"%SOLR_TIP%"\bin\solr-%SOLR_PORT_LISTEN%.port
 
   IF "!SOLR_START_WAIT!"=="" (
     set SOLR_START_WAIT=180
diff --git a/solr/bin/solr.in.cmd b/solr/bin/solr.in.cmd
index 7449de2cd9d..3e63af456ce 100755
--- a/solr/bin/solr.in.cmd
+++ b/solr/bin/solr.in.cmd
@@ -85,7 +85,7 @@ REM to monitor the JVM hosting Solr; set to "false" to 
disable that behavior
 REM (false is recommended in production environments)
 REM set ENABLE_REMOTE_JMX_OPTS=false
 
-REM The script will use SOLR_PORT+10000 for the RMI_PORT or you can set it here
+REM The script will use SOLR_PORT_LISTEN+10000 for the RMI_PORT or you can set 
it here
 REM set RMI_PORT=18983
 
 REM Anything you add to the SOLR_OPTS variable will be included in the java
@@ -117,7 +117,7 @@ REM Enables jetty request log for all requests
 REM set SOLR_REQUESTLOG_ENABLED=true
 
 REM Sets the port Solr binds to, default is 8983
-REM set SOLR_PORT=8983
+REM set SOLR_PORT_LISTEN=8983
 
 REM Sets the network interface the Solr binds to. To prevent administrators 
from
 REM accidentally exposing Solr more widely than intended, this defaults to 
127.0.0.1.
@@ -125,7 +125,7 @@ REM Administrators should think carefully about their 
deployment environment and
 REM set this value as narrowly as required before going to production. In
 REM environments where security is not a concern, 0.0.0.0 can be used to allow
 REM Solr to accept connections on all network interfaces.
-REM set SOLR_JETTY_HOST=127.0.0.1
+REM set SOLR_HOST_BIND=127.0.0.1
 REM Sets the network interface the Embedded ZK binds to.
 REM set SOLR_ZOOKEEPER_EMBEDDED_HOST=127.0.0.1
 
diff --git a/solr/bin/solr.in.sh b/solr/bin/solr.in.sh
index 3ec30035876..8c50528b6f9 100644
--- a/solr/bin/solr.in.sh
+++ b/solr/bin/solr.in.sh
@@ -91,7 +91,7 @@
 # (false is recommended in production environments)
 #ENABLE_REMOTE_JMX_OPTS="false"
 
-# The script will use SOLR_PORT+10000 for the RMI_PORT or you can set it here
+# The script will use SOLR_PORT_LISTEN+10000 for the RMI_PORT or you can set 
it here
 # RMI_PORT=18983
 
 # Anything you add to the SOLR_OPTS variable will be included in the java
@@ -132,7 +132,7 @@
 #SOLR_REQUESTLOG_ENABLED=true
 
 # Sets the port Solr binds to, default is 8983
-#SOLR_PORT=8983
+#SOLR_PORT_LISTEN=8983
 
 # Restrict access to solr by IP address.
 # Specify a comma-separated list of addresses or networks, for example:
@@ -150,7 +150,7 @@
 # set this value as narrowly as required before going to production. In
 # environments where security is not a concern, 0.0.0.0 can be used to allow
 # Solr to accept connections on all network interfaces.
-#SOLR_JETTY_HOST="127.0.0.1"
+#SOLR_HOST_BIND="127.0.0.1"
 # Sets the network interface the Embedded ZK binds to.
 #SOLR_ZOOKEEPER_EMBEDDED_HOST="127.0.0.1"
 
diff --git a/solr/core/src/java/org/apache/solr/cli/CLIUtils.java 
b/solr/core/src/java/org/apache/solr/cli/CLIUtils.java
index 340d0fb13a6..59937f79017 100644
--- a/solr/core/src/java/org/apache/solr/cli/CLIUtils.java
+++ b/solr/core/src/java/org/apache/solr/cli/CLIUtils.java
@@ -72,7 +72,8 @@ public final class CLIUtils {
     // note that ENV_VAR syntax (and the env vars too) are mapped to env.var 
sys props
     String scheme = EnvUtils.getProperty("solr.url.scheme", "http");
     String host = EnvUtils.getProperty("solr.host", "localhost");
-    String port = EnvUtils.getProperty("jetty.port", "8983"); // from 
SOLR_PORT env
+    String port = EnvUtils.getProperty("solr.port.listen", "8983");
+
     return String.format(Locale.ROOT, "%s://%s:%s", 
scheme.toLowerCase(Locale.ROOT), host, port);
   }
 
diff --git a/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java 
b/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java
index 1c6deb6ffe9..aecc0676ebb 100644
--- a/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java
+++ b/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java
@@ -306,7 +306,8 @@ public class RunExampleTool extends ToolBase {
         CLIUtils.getCliOptionOrPropValue(cli, CommonCLIOptions.ZK_HOST_OPTION, 
"zkHost", null);
     int port =
         Integer.parseInt(
-            cli.getOptionValue(PORT_OPTION, 
System.getenv().getOrDefault("SOLR_PORT", "8983")));
+            cli.getOptionValue(
+                PORT_OPTION, System.getenv().getOrDefault("SOLR_PORT_LISTEN", 
"8983")));
     Map<String, Object> nodeStatus = startSolr(solrHomeDir, isCloudMode, cli, 
port, zkHost, 30);
 
     String solrUrl = CLIUtils.normalizeSolrUrl((String) 
nodeStatus.get("baseUrl"), false);
@@ -520,9 +521,11 @@ public class RunExampleTool extends ToolBase {
     int[] cloudPorts = new int[] {8983, 7574, 8984, 7575};
     int defaultPort =
         Integer.parseInt(
-            cli.getOptionValue(PORT_OPTION, 
System.getenv().getOrDefault("SOLR_PORT", "8983")));
+            cli.getOptionValue(
+                PORT_OPTION, System.getenv().getOrDefault("SOLR_PORT_LISTEN", 
"8983")));
     if (defaultPort != 8983) {
-      // Override the old default port numbers if user has started the example 
overriding SOLR_PORT
+      // Override the old default port numbers if user has started the example 
overriding
+      // SOLR_PORT_LISTEN
       cloudPorts = new int[] {defaultPort, defaultPort + 1, defaultPort + 2, 
defaultPort + 3};
     }
 
diff --git a/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java 
b/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java
index f45bc5dbd66..5dfdad3a5f8 100644
--- a/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java
+++ b/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java
@@ -61,10 +61,11 @@ public class SolrProcessManager {
     if (Constants.WINDOWS) {
       pidToWindowsCommandLineMap.putAll(commandLinesWindows());
     }
+
     pidProcessMap =
         ProcessHandle.allProcesses()
             .filter(p -> p.info().command().orElse("").contains("java"))
-            .filter(p -> commandLine(p).orElse("").contains("-Djetty.port="))
+            .filter(p -> 
commandLine(p).orElse("").contains("-Dsolr.port.listen="))
             .filter(
                 p -> !enableTestingMode || 
commandLine(p).orElse("").contains("-DmockSolr=true"))
             .collect(
@@ -145,7 +146,7 @@ public class SolrProcessManager {
   private Optional<Integer> parsePortFromProcess(ProcessHandle ph) {
     Optional<String> portStr =
         arguments(ph).stream()
-            .filter(a -> a.contains("-Djetty.port="))
+            .filter(a -> a.contains("-Dsolr.port.listen="))
             .map(s -> s.split("=")[1])
             .findFirst();
     return portStr.isPresent() ? portStr.map(Integer::parseInt) : 
Optional.empty();
diff --git a/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java 
b/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
index 253718c5f13..37bdceea9f1 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
@@ -43,6 +43,7 @@ import org.apache.solr.common.ConfigNode;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.util.CollectionUtil;
 import org.apache.solr.common.util.DOMUtil;
+import org.apache.solr.common.util.EnvUtils;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.StrUtils;
 import org.apache.solr.common.util.Utils;
@@ -499,8 +500,8 @@ public class SolrXmlConfig {
     int hostPort =
         parseInt("hostPort", required("solrcloud", "hostPort", removeValue(nl, 
"hostPort")));
     if (hostPort <= 0) {
-      // Default to the port that jetty is listening on, or 8983 if that is 
not provided.
-      hostPort = parseInt("jetty.port", System.getProperty("jetty.port", 
"8983"));
+      // Default to the port that Solr is listening on, or 8983 if that is not 
provided.
+      hostPort = EnvUtils.getPropertyAsInteger("solr.port.listen", 8983);
     }
     String hostName = required("solrcloud", "host", removeValue(nl, "host"));
 
diff --git 
a/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java 
b/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
index 5e5f7e21cb8..1dcf7fd4ae3 100644
--- a/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
+++ b/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
@@ -282,7 +282,7 @@ public class CoreContainerProvider implements 
ServletContextListener {
   }
 
   private String getSolrPort() {
-    return System.getProperty("jetty.port");
+    return EnvUtils.getProperty("solr.port.listen");
   }
 
   /**
diff --git a/solr/core/src/test/org/apache/solr/cli/CLIUtilsTest.java 
b/solr/core/src/test/org/apache/solr/cli/CLIUtilsTest.java
index d1806aec670..5ec2ddfa5fa 100644
--- a/solr/core/src/test/org/apache/solr/cli/CLIUtilsTest.java
+++ b/solr/core/src/test/org/apache/solr/cli/CLIUtilsTest.java
@@ -29,7 +29,7 @@ public class CLIUtilsTest extends SolrCloudTestCase {
   public void testDefaultSolrUrlWithNoProperties() {
     System.clearProperty("solr.url.scheme");
     System.clearProperty("solr.host");
-    System.clearProperty("jetty.port");
+    System.clearProperty("solr.port.listen");
     assertEquals(
         "Default Solr URL should match with no properties set.",
         "http://localhost:8983";,
@@ -40,7 +40,7 @@ public class CLIUtilsTest extends SolrCloudTestCase {
   public void testDefaultSolrUrlWithProperties() {
     System.setProperty("solr.url.scheme", "https");
     System.setProperty("solr.host", "other.local");
-    System.setProperty("jetty.port", "1234");
+    System.setProperty("solr.port.listen", "1234");
     assertEquals(
         "Default Solr URL should match with custom properties set.",
         "https://other.local:1234";,
diff --git a/solr/core/src/test/org/apache/solr/cli/PostToolTest.java 
b/solr/core/src/test/org/apache/solr/cli/PostToolTest.java
index 7a3760992a3..268c532f71b 100644
--- a/solr/core/src/test/org/apache/solr/cli/PostToolTest.java
+++ b/solr/core/src/test/org/apache/solr/cli/PostToolTest.java
@@ -113,7 +113,7 @@ public class PostToolTest extends SolrCloudTestCase {
     final String collection = "testRunWithCollectionParam";
 
     // Provide the port for the PostTool to look up.
-    EnvUtils.setProperty("jetty.port", 
cluster.getJettySolrRunner(0).getLocalPort() + "");
+    EnvUtils.setProperty("solr.port.listen", 
cluster.getJettySolrRunner(0).getLocalPort() + "");
 
     withBasicAuth(CollectionAdminRequest.createCollection(collection, "conf1", 
1, 1, 0, 0))
         .processAndWait(cluster.getSolrClient(), 10);
@@ -150,7 +150,7 @@ public class PostToolTest extends SolrCloudTestCase {
     final String collection = "testRunCsvWithCustomSeparatorParam";
 
     // Provide the port for the PostTool to look up.
-    EnvUtils.setProperty("jetty.port", 
cluster.getJettySolrRunner(0).getLocalPort() + "");
+    EnvUtils.setProperty("solr.port.listen", 
cluster.getJettySolrRunner(0).getLocalPort() + "");
 
     withBasicAuth(CollectionAdminRequest.createCollection(collection, "conf1", 
1, 1, 0, 0))
         .processAndWait(cluster.getSolrClient(), 10);
diff --git a/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java 
b/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java
index 6ca700d2f15..6b37c03d802 100644
--- a/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java
+++ b/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java
@@ -55,7 +55,7 @@ public class SolrProcessManagerTest extends SolrTestCase {
     long processHttpValue = isWindows ? processHttp.getKey() : 
processHttp.getValue().pid();
     long processHttpsValue = isWindows ? processHttps.getKey() : 
processHttps.getValue().pid();
     SolrProcessManager.enableTestingMode = true;
-    System.setProperty("jetty.port", Integer.toString(processHttp.getKey()));
+    System.setProperty("solr.port.listen", 
Integer.toString(processHttp.getKey()));
     Path pidDir = createTempDir("solr-pid-dir");
     System.setProperty("solr.pid.dir", pidDir.toString());
     Files.writeString(
@@ -71,7 +71,7 @@ public class SolrProcessManagerTest extends SolrTestCase {
     processHttp.getValue().destroyForcibly();
     processHttps.getValue().destroyForcibly();
     SolrProcessManager.enableTestingMode = false;
-    System.clearProperty("jetty.port");
+    System.clearProperty("solr.port.listen");
     System.clearProperty("solr.pid.dir");
   }
 
@@ -92,7 +92,7 @@ public class SolrProcessManagerTest extends SolrTestCase {
     ProcessBuilder processBuilder =
         new ProcessBuilder(
             System.getProperty("java.home") + "/bin/java",
-            "-Djetty.port=" + port,
+            "-Dsolr.port.listen=" + port,
             "-DisHttps=" + https,
             "-DmockSolr=true",
             "-cp",
@@ -194,7 +194,7 @@ public class SolrProcessManagerTest extends SolrTestCase {
   @SuppressWarnings("NewClassNamingConvention")
   public static class MockSolrProcess {
     public static void main(String[] args) {
-      int port = Integer.parseInt(System.getProperty("jetty.port"));
+      int port = Integer.parseInt(System.getProperty("solr.port.listen"));
       boolean https = System.getProperty("isHttps").equals("true");
       try (ServerSocket serverSocket = new ServerSocket(port)) {
         System.out.println("Listening on " + (https ? "https" : "http") + " 
port " + port);
diff --git a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java 
b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java
index c57f22c23f4..8b1122151c3 100644
--- a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java
+++ b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java
@@ -125,7 +125,7 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 {
             Path logDir = createTempDir("solr_logs");
             System.setProperty("solr.log.dir", logDir.toString());
             System.setProperty("host", "localhost");
-            System.setProperty("jetty.port", String.valueOf(port));
+            System.setProperty("solr.port.listen", String.valueOf(port));
             solrCloudCluster = new MiniSolrCloudCluster(1, createTempDir(), 
solrxml, jettyConfig);
           } else {
             // another member of this cluster -- not supported yet, due to how
@@ -213,7 +213,7 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 {
       Path solrHomeDir = Path.of(getArg("--solr-home", args));
 
       System.setProperty("host", "localhost");
-      System.setProperty("jetty.port", String.valueOf(port));
+      System.setProperty("solr.port.listen", String.valueOf(port));
       System.setProperty("solr.logs.dir", 
createTempDir("solr_logs").toString());
 
       standaloneSolr = new JettySolrRunner(solrHomeDir.toString(), port);
@@ -419,7 +419,8 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 {
   /**
    * Tests the interactive SolrCloud example; we cannot test the 
non-interactive because we need
    * control over the port and can only test with one node since the test 
relies on setting the host
-   * and jetty.port system properties, i.e. there is no test coverage for the 
--no-prompt option.
+   * and solr.port.listen system properties, i.e. there is no test coverage 
for the --no-prompt
+   * option.
    */
   @Test
   public void testInteractiveSolrCloudExample() throws Exception {
diff --git a/solr/core/src/test/org/apache/solr/core/TestSolrXml.java 
b/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
index eec57a73bb4..6090361e420 100644
--- a/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
+++ b/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
@@ -192,7 +192,7 @@ public class TestSolrXml extends SolrTestCaseJ4 {
   }
 
   public void testExplicitNullGivesDefaults() {
-    System.setProperty("jetty.port", "8000");
+    System.setProperty("solr.port.listen", "8000");
     String solrXml =
         "<solr>"
             + "<null name=\"maxBooleanClauses\"/>"
diff --git a/solr/docker/scripts/docker-entrypoint.sh 
b/solr/docker/scripts/docker-entrypoint.sh
index 24247039c00..597b0312214 100755
--- a/solr/docker/scripts/docker-entrypoint.sh
+++ b/solr/docker/scripts/docker-entrypoint.sh
@@ -26,9 +26,9 @@ if [[ "$VERBOSE" == "yes" ]]; then
     set -x
 fi
 
-if ! [[ ${SOLR_PORT:-} =~ ^[0-9]+$ ]]; then
-  SOLR_PORT=8983
-  export SOLR_PORT
+if ! [[ ${SOLR_PORT_LISTEN:-} =~ ^[0-9]+$ ]]; then
+  SOLR_PORT_LISTEN=8983
+  export SOLR_PORT_LISTEN
 fi
 
 # Essential for running Solr
diff --git a/solr/docker/scripts/solr-create b/solr/docker/scripts/solr-create
index 5868353ee21..2db273e02c7 100755
--- a/solr/docker/scripts/solr-create
+++ b/solr/docker/scripts/solr-create
@@ -60,7 +60,7 @@ else
 
     # See https://github.com/docker-solr/docker-solr/issues/27
     echo "Checking core"
-    if ! wget -O - 
"http://localhost:${SOLR_PORT:-8983}/solr/admin/cores?action=STATUS"; | grep 
instanceDir >/dev/null; then
+    if ! wget -O - 
"http://localhost:${SOLR_PORT_LISTEN:-8983}/solr/admin/cores?action=STATUS"; | 
grep instanceDir >/dev/null; then
       echo "Could not find any cores"
       exit 1
     fi
diff --git a/solr/docker/scripts/start-local-solr 
b/solr/docker/scripts/start-local-solr
index 03284b824f5..d4c9e465867 100755
--- a/solr/docker/scripts/start-local-solr
+++ b/solr/docker/scripts/start-local-solr
@@ -23,7 +23,7 @@ if [[ "${VERBOSE:-}" == "yes" ]]; then
 fi
 
 echo "Running solr in the background. Logs are in /var/solr/logs"
-SOLR_OPTS="-Djetty.host=${SOLR_LOCAL_HOST:-localhost}" solr start 
--user-managed
+SOLR_OPTS="-Dsolr.host.bind=${SOLR_LOCAL_HOST:-localhost}" solr start 
--user-managed
 max_try=${MAX_TRY:-12}
 wait_seconds=${WAIT_SECONDS:-5}
 if ! wait-for-solr.sh --max-attempts "$max_try" --wait-seconds 
"$wait_seconds"; then
diff --git a/solr/docker/scripts/wait-for-solr.sh 
b/solr/docker/scripts/wait-for-solr.sh
index 147cc3fd071..65e428897d9 100755
--- a/solr/docker/scripts/wait-for-solr.sh
+++ b/solr/docker/scripts/wait-for-solr.sh
@@ -36,12 +36,12 @@ function usage {
 max_attempts=12
 wait_seconds=5
 
-if ! [[ ${SOLR_PORT:-8983} =~ ^[0-9]+$ ]]; then
-  echo "Invalid SOLR_PORT=${SOLR_PORT:-} environment variable specified"
+if ! [[ ${SOLR_PORT_LISTEN:-8983} =~ ^[0-9]+$ ]]; then
+  echo "Invalid SOLR_PORT=${SOLR_PORT_LISTEN:-} environment variable specified"
   exit 1
 fi
 
-solr_url="http://localhost:${SOLR_PORT:-8983}";
+solr_url="http://localhost:${SOLR_PORT_LISTEN:-8983}";
 
 while (( $# > 0 )); do
   case "$1" in
diff --git a/solr/docker/templates/Dockerfile.body.template 
b/solr/docker/templates/Dockerfile.body.template
index f025f81312c..57c5793a7c3 100644
--- a/solr/docker/templates/Dockerfile.body.template
+++ b/solr/docker/templates/Dockerfile.body.template
@@ -45,7 +45,7 @@ ENV SOLR_USER="solr" \
     SOLR_PID_DIR=/var/solr \
     SOLR_LOGS_DIR=/var/solr/logs \
     LOG4J_PROPS=/var/solr/log4j2.xml \
-    SOLR_JETTY_HOST="0.0.0.0" \
+    SOLR_HOST_BIND="0.0.0.0" \
     SOLR_ZOOKEEPER_EMBEDDED_HOST="0.0.0.0"
 
 RUN set -ex; \
diff --git a/solr/modules/cross-dc/src/test-files/mirroring-solr.xml 
b/solr/modules/cross-dc/src/test-files/mirroring-solr.xml
index 68a1a32f201..d5a8630b56f 100644
--- a/solr/modules/cross-dc/src/test-files/mirroring-solr.xml
+++ b/solr/modules/cross-dc/src/test-files/mirroring-solr.xml
@@ -19,8 +19,8 @@
     <str 
name="collectionsHandler">org.apache.solr.crossdc.handler.MirroringCollectionsHandler</str>
     <str 
name="configSetsHandler">org.apache.solr.crossdc.handler.MirroringConfigSetsHandler</str>
     <solrcloud>
-        <str name="host">${host:}</str>
-        <int name="hostPort">${hostPort:0}</int>
+        <str name="host">${solr.host.advertise:}</str>
+        <int name="hostPort">${solr.port.advertise:0}</int>
         <str name="hostContext">${hostContext:solr}</str>
         <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
         <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
diff --git a/solr/packaging/build.gradle b/solr/packaging/build.gradle
index 8d0e8723b61..feab0004d4a 100644
--- a/solr/packaging/build.gradle
+++ b/solr/packaging/build.gradle
@@ -263,6 +263,7 @@ task integrationTests(type: BatsTask) {
   environment SOLR_TIP: distDir.toString()
   environment SOLR_HOME: solrHome
   environment SOLR_PID_DIR: solrHome
+  environment SOLR_PORT_LISTEN: solrPort
   environment SOLR_PORT: solrPort
   environment SOLR2_PORT: solrPort + 1
   environment SOLR3_PORT: solrPort + 2
diff --git a/solr/packaging/test/test_zk.bats b/solr/packaging/test/test_zk.bats
index fc31f691bef..11ee3a7a76d 100644
--- a/solr/packaging/test/test_zk.bats
+++ b/solr/packaging/test/test_zk.bats
@@ -172,8 +172,8 @@ teardown() {
   sleep 1
 
   # Need to unset SOLR_PORT to avoid the tool being smart and look at SOLR_PORT
-  export SOLR_PORT_KEEP=$SOLR_PORT
-  unset SOLR_PORT
+  export SOLR_PORT_KEEP=$SOLR_PORT_LISTEN
+  unset SOLR_PORT_LISTEN
 
   # First test a command that will fail (no ZK_HOST set, no SOLR_PORT)
   run solr zk ls / --recursive
@@ -186,6 +186,6 @@ teardown() {
   assert_output --partial "aliases.json"
 
   # Restore SOLR_PORT
-  export SOLR_PORT=$SOLR_PORT_KEEP
+  export SOLR_PORT_LISTEN=$SOLR_PORT_KEEP
   unset ZK_HOST
 }
diff --git a/solr/server/etc/jetty-http.xml b/solr/server/etc/jetty-http.xml
index a226b2e99ba..aeb273e2c0c 100644
--- a/solr/server/etc/jetty-http.xml
+++ b/solr/server/etc/jetty-http.xml
@@ -38,8 +38,8 @@
             </Item>
           </Array>
         </Arg>
-        <Set name="host"><Property name="solr.jetty.host" 
default="127.0.0.1"/></Set>
-        <Set name="port"><Property name="jetty.port" default="8983" /></Set>
+        <Set name="host"><Property name="solr.host.bind" 
default="127.0.0.1"/></Set>
+        <Set name="port"><Property name="solr.port.listen" default="8983" 
/></Set>
         <Set name="idleTimeout"><Property name="solr.jetty.http.idleTimeout" 
default="120000"/></Set>
         <Set name="acceptorPriorityDelta"><Property 
name="solr.jetty.http.acceptorPriorityDelta" default="0"/></Set>
         <Set name="acceptQueueSize"><Property 
name="solr.jetty.http.acceptQueueSize" default="0"/></Set>
diff --git a/solr/server/etc/jetty-https.xml b/solr/server/etc/jetty-https.xml
index 6ef13f60c20..3f7f1e301d2 100644
--- a/solr/server/etc/jetty-https.xml
+++ b/solr/server/etc/jetty-https.xml
@@ -63,7 +63,7 @@
             </Item>
           </Array>
         </Arg>
-        <Set name="host"><Property name="solr.jetty.host" 
default="127.0.0.1"/></Set>
+        <Set name="host"><Property name="solr.host.bind" 
default="127.0.0.1"/></Set>
         <Set name="port"><Property name="solr.jetty.https.port" default="8983" 
/></Set>
         <Set name="idleTimeout"><Property name="solr.jetty.https.timeout" 
default="120000"/></Set>
         <Set name="acceptorPriorityDelta"><Property 
name="solr.jetty.ssl.acceptorPriorityDelta" default="0"/></Set>
diff --git a/solr/server/solr/solr.xml b/solr/server/solr/solr.xml
index 96dabbcee81..c39cb88a699 100644
--- a/solr/server/solr/solr.xml
+++ b/solr/server/solr/solr.xml
@@ -38,7 +38,7 @@
 
   <solrcloud>
 
-    <str name="host">${host:}</str>
+    <str name="host">${solr.host.advertise:}</str>
     <int name="hostPort">${solr.port.advertise:0}</int>
 
     <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
diff --git 
a/solr/solr-ref-guide/modules/configuration-guide/pages/configuring-solr-xml.adoc
 
b/solr/solr-ref-guide/modules/configuration-guide/pages/configuring-solr-xml.adoc
index bf5aaa8d15d..374388d180c 100644
--- 
a/solr/solr-ref-guide/modules/configuration-guide/pages/configuring-solr-xml.adoc
+++ 
b/solr/solr-ref-guide/modules/configuration-guide/pages/configuring-solr-xml.adoc
@@ -41,7 +41,7 @@ The default `solr.xml` file is found in 
`$SOLR_TIP/server/solr/solr.xml` and loo
 
   <solrcloud>
 
-    <str name="host">${host:}</str>
+    <str name="host">${solr.host.advertise:}</str>
     <int name="hostPort">${solr.port.advertise:0}</int>
 
     <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
@@ -395,7 +395,7 @@ For example, if the Solr node is running behind a proxy or 
in a cloud environmen
 `hostPort` is the port that the Solr instance wants other nodes to contact it 
at.
 +
 In the default `solr.xml` file, this is set to `${solr.port.advertise:0}`.
-If no port is passed via the `solr.xml` (i.e., `0`), then Solr will default to 
the port that jetty is listening on, defined by `${jetty.port}`.
+If no port is passed via the `solr.xml` (i.e., `0`), then Solr will default to 
the port that jetty is listening on, defined by `${solr.port.listen}`.
 
 `leaderVoteWait`::
 +
diff --git 
a/solr/solr-ref-guide/modules/configuration-guide/pages/solr-properties.adoc 
b/solr/solr-ref-guide/modules/configuration-guide/pages/solr-properties.adoc
index 774c37fcf51..a34f654cce1 100644
--- a/solr/solr-ref-guide/modules/configuration-guide/pages/solr-properties.adoc
+++ b/solr/solr-ref-guide/modules/configuration-guide/pages/solr-properties.adoc
@@ -58,6 +58,10 @@ NOTE: Properties marked with "!" indicate inverted meaning 
between old and new p
 
 |solr.filestore.filesize.max|max.file.store.size|100MB|Defines the maximum 
file size allowed in Solr's filestore.
 
+|solr.host.advertise| host | | This is the host that is advertised by the Solr 
node in the ZK live nodes
+
+|solr.host.bind|solr.jetty.host| |This is the host that Solr's Jetty binds to, 
and only accepts requests to.
+
 
|solr.index.replication.fingerprint.enabled|!solr.disableFingerprint|true|Controls
 whether index fingerprinting for replication is disabled.
 
 |solr.index.updatelog.enabled|enable.update.log|true (in default 
solrconfig.xml)|Controls whether the UpdateLog is enabled. The UpdateLog is 
required for atomic updates, real-time get, and transaction log replay. May be 
disabled in testing environments or with schemas that don't support versioning 
(older schemas) to improve performance at the cost of data durability.
@@ -70,6 +74,10 @@ NOTE: Properties marked with "!" indicate inverted meaning 
between old and new p
 
 |solr.packages.enabled|enable.packages|false|Controls whether the package 
management system is enabled.
 
+|solr.port.advertise| | Default to `solr.port.listen` if not defined.  | This 
is the port that is advertised by the Solr node in the ZK live nodes.
+
+|solr.port.listen| jetty.port| 8983 or solr.jetty.https.port if defined and 
SSL | This is the port that Solr's Jetty binds to, and accepts requests to.
+
 |solr.requests.allow.urls|solr.disable.allowUrls||Specifies URLs that are 
allowed for streaming. See also solr.requests.streaming.remote.enabled.
 
 |solr.requests.streaming.body.enabled|solr.enableStreamBody|false|Controls 
whether streaming request bodies are enabled.
diff --git 
a/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc
 
b/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc
index 26b3845a47e..f4917573816 100644
--- 
a/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc
+++ 
b/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc
@@ -189,7 +189,7 @@ curl http://localhost:8983/solr/admin/info/system
         "-DzkClientTimeout=15000",
         "-DzkHost=192.168.32.3:2181",
         "-Dsolr.logs.dir=/var/solr/logs",
-        "-Djetty.port=8983",
+        "-Dsolr.port.listen=8983",
         "-DSTOP.PORT=7983",
         "-DSTOP.KEY=solrrocks",
         "-Duser.timezone=UTC",
@@ -298,7 +298,7 @@ curl http://localhost:8983/solr/gettingstarted/admin/system
         "-Dcom.sun.management.jmxremote.port=18983",
         "-Dcom.sun.management.jmxremote.rmi.port=18983",
         "-Dsolr.logs.dir=/var/solr/logs",
-        "-Djetty.port=8983",
+        "-Dsolr.port.listen=8983",
         "-DSTOP.PORT=7983",
         "-DSTOP.KEY=solrrocks",
         "-Duser.timezone=UTC",
diff --git 
a/solr/solr-ref-guide/modules/deployment-guide/pages/securing-solr.adoc 
b/solr/solr-ref-guide/modules/deployment-guide/pages/securing-solr.adoc
index 5add3630aa3..7844f073737 100644
--- a/solr/solr-ref-guide/modules/deployment-guide/pages/securing-solr.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/securing-solr.adoc
@@ -107,14 +107,14 @@ Solr is not designed to be exposed on the open internet.
 It is also strongly recommended that Solr listen to only those network 
interfaces that are strictly required.
 To prevent administrators from unintentionally exposing Solr more broadly, 
Solr only listens on the loopback interface ("127.0.0.1") by default.
 Most deployments will need to change this value to something less restrictive 
so that it can be reached from other boxes.
-This can be done by setting a `SOLR_JETTY_HOST` value in your environment's 
"include script" (`solr.in.sh` or `solr.in.cmd`):
+This can be done by setting a `SOLR_HOST_BIND` value in your environment's 
"include script" (`solr.in.sh` or `solr.in.cmd`):
 
 [source,bash]
  ----
- SOLR_JETTY_HOST="0.0.0.0"
+ SOLR_HOST_BIND="0.0.0.0"
  ----
 
-The same setting is also available as the `-Dsolr.jetty.host` System Property.
+The same setting is also available as the `-Dsolr.host.bind` System Property.
 
 The same is true for the embedded Zookeeper, if it is run with Solr.
 By default, the embedded Zookeeper only listens on the loopback interface 
("127.0.0.1")
diff --git 
a/solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc
 
b/solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc
index 13a5d4cddcb..81e63454bf1 100644
--- 
a/solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc
+++ 
b/solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc
@@ -203,6 +203,8 @@ Apr 16 20:42:01 localhost.localdomain systemd[1]: Started 
Apache Solr.
 
 If the `status` command is not successful, look for error messages in 
`/var/solr/logs/solr.log`.
 
+Additionally, if you can't connect to running Solr from an external location, 
check your `SOLR_HOST_BIND` setting to make sure Solr is accessible to the 
network.
+
 == Fine-Tune Your Production Setup
 
 === Dynamic Defaults for ConcurrentMergeScheduler
diff --git 
a/solr/solr-ref-guide/modules/getting-started/pages/tutorial-aws.adoc 
b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-aws.adoc
index d6047e152e8..b1d07c5516d 100644
--- a/solr/solr-ref-guide/modules/getting-started/pages/tutorial-aws.adoc
+++ b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-aws.adoc
@@ -193,7 +193,7 @@ $ cd $SOLR_HOME
 
 # uncomment and edit the two variables
 # vim bin/solr.in.sh
-SOLR_JETTY_HOST="0.0.0.0"
+SOLR_HOST_BIND="0.0.0.0"
 SOLR_ZOOKEEPER_EMBEDDED_HOST="0.0.0.0"
 ----
 +
diff --git 
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc 
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
index fc05af4d7ef..9fb7c15b653 100644
--- 
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
+++ 
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
@@ -37,6 +37,15 @@ This compatibility safeguard can be toggled with 
"SOLR_CLOUD_DOWNGRADE_ENABLED".
 
 Minimum Java version for Solr 10.x is Java 21.
 
+== Solr Jetty parameters
+
+The previous `SOLR_JETTY_HOST` environment variable and `-Dsolr.jetty.host` 
System Property are deprecated and will be removed in a future release. Please 
update your configuration to use `SOLR_HOST_BIND` and `-Dsolr.host.bind` 
instead.
+
+The previous `SOLR_HOST` and 'host' are deprecated and now use 
`SOLR_HOST_ADVERTISE` and `solr.host.advertise`.
+
+The previous `jetty.port` is deprecated and now use `solr.port.listen`.
+
+
 === Solr CLI and Scripts
 
 The Solr CLI has gone through some significant renovations to reduce technical 
debt, and now functions more consistently and predictably. Most notably, CLI 
commands now use unix-style options, e.g. `--help` instead of `-help`.
diff --git 
a/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties 
b/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties
index 773c319b6d3..f5bb1b3ab26 100644
--- a/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties
+++ b/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties
@@ -28,6 +28,9 @@ 
solr.configset.forbidden.file.types=solr.config.set.forbidden.file.types
 solr.configset.upload.enabled=configset.upload.enabled
 
 solr.filestore.filesize.max=max.file.store.size
+solr.host.bind=solr.jetty.host
+
+solr.host.advertise=host
 
 solr.index.replication.fingerprint.enabled=!solr.disableFingerprint
 solr.index.updatelog.enabled=enable.update.log
@@ -38,6 +41,7 @@ 
solr.metrics.fieldcache.entries.enabled=!disable.solr.field.cache.m.bean.entry.l
 
solr.metrics.fieldcache.entries.jmx.enabled=!disable.solr.field.cache.m.bean.entry.list.jmx
 
 solr.packages.enabled=enable.packages
+solr.port.listen=jetty.port
 
 solr.requests.streaming.body.enabled=solr.enable.stream.body
 solr.requests.streaming.remote.enabled=solr.enable.remote.streaming
diff --git a/solr/solrj/src/resources/EnvToSyspropMappings.properties 
b/solr/solrj/src/resources/EnvToSyspropMappings.properties
index 4b66f843271..df8a77f6402 100644
--- a/solr/solrj/src/resources/EnvToSyspropMappings.properties
+++ b/solr/solrj/src/resources/EnvToSyspropMappings.properties
@@ -16,7 +16,6 @@ SOLR_HTTP_DISABLE_COOKIES=solr.http.disableCookies
 SOLR_IP_ALLOWLIST=solr.jetty.inetaccess.includes
 SOLR_IP_DENYLIST=solr.jetty.inetaccess.excludes
 SOLR_OTEL_DEFAULT_CONFIGURATOR=solr.otelDefaultConfigurator
-SOLR_PORT=jetty.port
 SOLR_TIMEZONE=user.timezone
 SOLR_TIP=solr.install.dir
 SOLR_TIP_SYM=solr.install.symDir
diff --git a/solr/solrj/src/test/org/apache/solr/common/util/EnvUtilsTest.java 
b/solr/solrj/src/test/org/apache/solr/common/util/EnvUtilsTest.java
index 77461d4110a..1a6eee1c227 100644
--- a/solr/solrj/src/test/org/apache/solr/common/util/EnvUtilsTest.java
+++ b/solr/solrj/src/test/org/apache/solr/common/util/EnvUtilsTest.java
@@ -29,7 +29,7 @@ public class EnvUtilsTest extends SolrTestCase {
   private static final Map<String, String> ENV =
       Map.of(
           "SOLR_HOME", "/home/solr",
-          "SOLR_PORT", "8983",
+          "SOLR_PORT_LISTEN", "8983",
           "SOLR_HOST", "localhost",
           "SOLR_LOG_LEVEL", "INFO",
           "SOLR_BOOLEAN", "true",
@@ -79,7 +79,6 @@ public class EnvUtilsTest extends SolrTestCase {
   public void testEnvsWithCustomKeyNameMappings() {
     // These have different names than the environment variables
     assertEquals(ENV.get("SOLR_HOME"), EnvUtils.getProperty("solr.solr.home"));
-    assertEquals(ENV.get("SOLR_PORT"), EnvUtils.getProperty("jetty.port"));
     assertEquals(ENV.get("SOLR_HOST"), EnvUtils.getProperty("host"));
     assertEquals(ENV.get("SOLR_LOGS_DIR"), 
EnvUtils.getProperty("solr.logs.dir"));
   }
diff --git 
a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java 
b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java
index c52ca4e6fc6..653e9f3773c 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java
@@ -56,7 +56,7 @@ public abstract class AbstractZkTestCase extends 
SolrTestCaseJ4 {
 
     System.setProperty("solrcloud.skip.autorecovery", "true");
     System.setProperty("zkHost", zkServer.getZkAddress());
-    System.setProperty("jetty.port", "0000");
+    System.setProperty("solr.port.listen", "0000");
     System.setProperty(ZOOKEEPER_FORCE_SYNC, "false");
 
     zkServer.buildZooKeeper(SOLRHOME, "solrconfig.xml", "schema.xml");
@@ -75,7 +75,7 @@ public abstract class AbstractZkTestCase extends 
SolrTestCaseJ4 {
       System.clearProperty("solr.test.sys.prop1");
       System.clearProperty("solr.test.sys.prop2");
       System.clearProperty("solrcloud.skip.autorecovery");
-      System.clearProperty("jetty.port");
+      System.clearProperty("solr.port.listen");
       System.clearProperty(ZOOKEEPER_FORCE_SYNC);
 
       if (zkServer != null) {

Reply via email to