Forum OpenACS Q&A: Re: ACS Site-Wide Administration link

Collapse
Posted by Tyge Cawthon on
Luri,
Thank you for the fast response.
I had made those changes early and have confirm your recommanded changes are
in place.

Select Administraion
Select ACS Site-Wide Administration
Select ACS kernel => Parameters

Instance 1. SystemURL https://celtic-arts.org
Instance 2. SystemURL https://qa.celtic-arts.org

We are not using any proxy, but we have enable SuppressHttpPort.
Select Administraion
Select ACS Site-Wide Administration
Select ACT Tcl Library => Parameters

Both Instances. SuppressHttpPort 1

On either instance, when I hoverover "ACS Site-Wide Administration"
at the bottom of the browser or if viewing the soruce code through the browser
the link appears as https://192.168.4.214/acs-admin

Code from the browser:

  <h1>For Site-Wide Administrators</h1>
  <ul>
    <li>
    <a href="https://192.168.4.214/acs-admin/">ACS Site-Wide Administration</a>
<span style="font-style:italic;color:#666;">(Site-wide administration)</span>
    </li>
  </ul>

OpenACS code is getting the ip address from place and inserting the ip address in the code.
But where, I have no idea.

if you need more information, please let me know

Below is my config file used to start the processes.

######################################################################
#
# Naviserver and OpenACS
# one instance of naviserver and two instances of OpenACS
# on the same virtual machine
#
# Tested on 2022-02-26 OpenACS 5-10-0
# path: /etc/naviserver
# file: config-oacs-5.10.0.tcl
######################################################################

#---------------------------------------------------------------------
set address        192.168.4.214
set httpport        80
set httpsport      443

set s1_hostname        "celtic-arts.org"
set s1_server          "openacs"
set s1_serverroot      /usr/lib/$s1_server

set s2_hostname        "qa.celtic-arts.org"
set s2_server          "openacsqa"
set s2_serverroot      /usr/lib/$s2_server

set s1_navi_homedir    /usr/lib/naviserver

#---------------------------------------------------------------------
# postgresql database settings
#---------------------------------------------------------------------
set database        postgres

set s1_db_name      oacs_5_10_0_prod
set s2_db_name      oacs_5_10_0_qa

set db_host        localhost
set db_port        ""
set db_user        nsadmin

#---------------------------------------------------------------------
# Are we runnng behind a proxy?
# Openacs requires this
#---------------------------------------------------------------------
set proxy_mode      false

#---------------------------------------------------------------------
# if debug is false, all debugging will be turned off
set debug false
set dev  false

set max_file_upload_mb        200
set max_file_upload_min      5

#---------------------------------------------------------------------
# set environment variables HOME and LANG
set env(HOME) ${s1_navi_homedir}
set env(LANG) en_US.UTF-8

######################################################################
#
# End of instance-specific settings
#
# Nothing below this point need be changed in a default install.
#
######################################################################

#---------------------------------------------------------------------
#
# NaviServer's directories. Autoconfigurable.
#
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# Global server parameters
#---------------------------------------------------------------------
ns_section ns/parameters
    ns_param    serverlog  ${s1_serverroot}/log/error.log
    ns_param    pidfile    ${s1_serverroot}/log/nsd.pid
    ns_param    home        ${s1_navi_homedir}
    ns_param    debug      $debug
    ns_param    logmaxbackup    100  ;# 10 is default
    ns_param    logdebug    $debug
    ns_param    logdev      $dev
    # Naviserver's defaults charsets are all utf-8.  Allthough the
    # default charset is utf-8, set the parameter "OutputCharset"
    # here, since otherwise OpenACS uses in the meta-tags the charset
    # from [ad_conn charset], which is taken from the db and
    # per-default ISO-8859-1.
    ns_param    OutputCharset  utf-8

    # Running behind proxy? Used by OpenACS...
    ns_param    ReverseProxyMode    $proxy_mode

#---------------------------------------------------------------------
# Thread library (nsthread) parameters
#---------------------------------------------------------------------
ns_section ns/threads
    ns_param    stacksize  [expr {128 * 8192}]

#---------------------------------------------------------------------
# Extra mime types
# NaviServer already has an exhaustive list of MIME types:
#  see: /usr/local/src/naviserver/nsd/mimetypes.c
#---------------------------------------------------------------------

#---------------------------------------------------------------------
#
# Server-level configuration
#
#  There is only one server in NaviServer, but this is helpful when multiple
#  servers share the same configuration file.  This file assumes that only
#  one server is in use so it is set at the top in the "server" Tcl variable
#  Other host-specific values are set up above as Tcl variables, too.
#
#---------------------------------------------------------------------
ns_section ns/servers
    ns_param s1 ${s1_server}
    ns_param s2 ${s2_server}

#---------------------------------------------------------------------
# modules drivers
#---------------------------------------------------------------------
ns_section ns/modules
    ns_param    nssock      ${s1_navi_homedir}/bin/nssock.so
    ns_param    nsssl      ${s1_navi_homedir}/bin/nsssl.so

#---------------------------------------------------------------------
# Socket driver module (HTTP)  -- nssock
#---------------------------------------------------------------------
ns_section ns/module/nssock
    ns_param    address        ${address}
    ns_param    port            ${httpport}  ;# 80
    ns_param    defaultserver  s1

    ns_param    maxinput    [expr {$max_file_upload_mb * 1024 * 1024}]
                            # 1024*1024, maximum size for inputs
    ns_param    recvwait    [expr {$max_file_upload_min * 60}]
                            # 30, timeout for receive operations
    #
    # Spooling Threads
    #
    ns_param    writerthreads  2  ;# 0, number of writer threads
    ns_param    writersize  4096    ;# 1024*1024, use writer threads for

#---------------------------------------------------------------------
# SSL
#---------------------------------------------------------------------
ns_section ns/module/nsssl
    ns_param    address        ${address}
    ns_param    port          ${httpsport} ;# 443
    ns_param    defaultserver  s1

    ns_param    ciphers        "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!RC4"
    ns_param    protocols      "!SSLv2"
    ns_param    certificate    ${s1_serverroot}/etc/certfile.pem
    ns_param    verify          0
    ns_param    writerthreads  2
    ns_param    writersize      4096
    ns_param    writerbufsize  16384
                                    # 8192, buffer size for writer threads
    ns_param    maxinput        [expr {$max_file_upload_mb * 1024*1024}]
                                    # Maximum File Size for uploads in bytes

#---------------------------------------------------------------------
# Define the mapping between the DNS names and the servers.
#---------------------------------------------------------------------
ns_section ns/module/nssock/servers
  #
  # Domain names for s1
  ns_param s1 ${s1_hostname}
  ns_param s2 ${s2_hostname}

#---------------------------------------------------------------------
# nsssl servers
#---------------------------------------------------------------------
ns_section ns/module/nsssl/servers
  ns_param s1 ${s1_hostname}
  ns_param s2 ${s2_hostname}

#---------------------------------------------------------------------
# Database drivers
# The database driver is specified here.
# Make sure you have the driver compiled and put it in ${s1_navi_homedir}/bin
#---------------------------------------------------------------------
ns_section "ns/db/drivers"
    ns_param    postgres      ${s1_navi_homedir}/bin/nsdbpg.so
    ns_section "ns/db/driver/postgres"
    # Set this parameter, when "psql" is not on your path (OpenACS specific)
    # ns_param  pgbin  "/usr/local/pg920/bin/"

#---------------------------------------------------------------------
# Server-level configuration
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# Server s1
#---------------------------------------------------------------------
#---------------------------------------------------------------------
# s1 Server parameters
#---------------------------------------------------------------------
ns_section ns/server/s1
    ns_param    minthreads  2
    # 1 minimal number of connection threads
    ns_param    connsperthread  1000
    # 10000; number of connections requests handled per thread
    ns_param    highwatermark  100
    # 80; allow concurrent creates above this queue-is percentage
    # 100 means to disable concurrent creates
    #
    # Compress response character data: ns_return, ADP etc.
    ns_param    compressenable  on  ;# false, use "ns_conn compress" to override

#---------------------------------------------------------------------
# HTTP redirect pages
#---------------------------------------------------------------------
ns_section ns/server/s1/redirects
    ns_param    404 "/global/file-not-found.html"
    ns_param    403 "/global/forbidden.html"
    ns_param    503 "/global/busy.html"
    ns_param    500 "/global/error.html"

#---------------------------------------------------------------------
# s1 Tcl Configuration
#---------------------------------------------------------------------
ns_section ns/server/s1/tcl
    ns_param    library    ${s1_serverroot}/tcl
    ns_param    autoclose  on
    ns_param    debug      $debug

#---------------------------------------------------------------------
# s1 fastpath
#---------------------------------------------------------------------
ns_section "ns/server/s1/fastpath"
    ns_param    serverdir  ${s1_navi_homedir}
    ns_param    pagedir    ${s1_serverroot}/www

#---------------------------------------------------------------------
# s1 Access log -- nslog
#---------------------------------------------------------------------
ns_section ns/server/s1/module/nslog
    #-----------------------------------------------------------------
    # General parameters for access.log
    #-----------------------------------------------------------------
    ns_param    file            ${s1_serverroot}/log/access.log
    # ns_param  maxbuffer      100 ;# 0, number of logfile entries to keep
                                    # in memory before flushing to disk
    #-----------------------------------------------------------------
    # Control what to log
    #-----------------------------------------------------------------
    ns_param    logpartialtimes true        ;# false, include high-res start
                                            # time and partial request
                                            # durations (accept, queue,
                                            # filter, run)
    ns_param    checkforproxy  $proxy_mode ;# false, check for proxy
                                            # header (X-Forwarded-For)
    #
    #-----------------------------------------------------------------
    # Control log file rolling
    #-----------------------------------------------------------------
    ns_param    rollfmt    %Y-%m-%d-%H:%M  ;# format appendend to log file name

#---------------------------------------------------------------------
# s1 modules
# Missing modules break the server, so
# don't uncomment modules unless they have been installed.
#---------------------------------------------------------------------
ns_section ns/server/s1/modules
#    ns_param    nssock      ${s1_navi_homedir}/bin/nssock.so
    ns_param    nslog      ${s1_navi_homedir}/bin/nslog.so
    ns_param    nsdb        ${s1_navi_homedir}/bin/nsdb.so
    #ns_param  nsproxy    ${s1_navi_homedir}/bin/nsproxy.so ;# comment out if using
                                                      # nsssl.so
#    ns_param    nsssl      ${s1_navi_homedir}/bin/nsssl.so

    #-----------------------------------------------------------------
    # Determine, if libthread is installed
    #-----------------------------------------------------------------
    set libthread [lindex [glob -nocomplain ${s1_navi_homedir}/lib/thread*/libthread*[info sharedlibextension]] end]
    if {$libthread eq ""} {
        ns_log notice "No Tcl thread library installed in ${s1_navi_homedir}/lib/"
    } else {
    ns_param  libthread $libthread
      ns_log notice "Use Tcl thread library $libthread"
    }

#---------------------------------------------------------------------
# s1 Socket driver module (HTTP)  -- nssock
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# s1 nsssl certificate
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# s1 PAM authentication
#---------------------------------------------------------------------
ns_section ns/server/s1/module/nspam
    ns_param    PamDomain          "pam_domain"

#---------------------------------------------------------------------
# s1 ADP (AOLserver Dynamic Page) configuration
#---------------------------------------------------------------------
ns_section ns/server/s1/adp
    ns_param    enabledebug $debug
    ns_param    map    /*.adp      ;# Extensions to parse as ADP's

ns_section ns/server/s1/adp/parsers
    ns_param    fancy      ".adp"

#---------------------------------------------------------------------
# s1 WebDAV Support (optional, requires oacs-dav package to be installed
#---------------------------------------------------------------------
ns_section ns/server/s1/tdav
    ns_param    propdir    ${s1_serverroot}/data/dav/properties
    ns_param    lockdir    ${s1_serverroot}/data/dav/locks
    ns_param    defaultlocktimeout  300

ns_section ns/server/s1/tdav/shares
    ns_param    share1      "OpenACS"
    # ns_param  share2      "Share 2 description"

ns_section ns/server/s1/tdav/share/share1
    ns_param    uri    "/dav/*"
    # all WebDAV options
    ns_param    options    "OPTIONS COPY GET PUT MOVE DELETE HEAD MKCOL POST PROPFIND PROPPATCH LOCK UNLOCK"

#ns_section ns/server/s1/tdav/share/share2
    # ns_param  uri "/share2/path/*"
    # read-only WebDAV options
    # ns_param options "OPTIONS COPY GET HEAD MKCOL POST PROPFIND PROPPATCH"

#---------------------------------------------------------------------
# nsproxy configuration
#---------------------------------------------------------------------
ns_section ns/server/s1/module/nsproxy
    # ns_param  maxslaves          8
    # ns_param  sendtimeout        5000
    # ns_param  recvtimeout        5000
    # ns_param  waittimeout        1000
    # ns_param  idletimeout        300000

#---------------------------------------------------------------------
# Database Pools: This is how NaviServer  ``talks'' to the RDBMS. You need
# three for OpenACS: main, log, subquery. Make sure to replace ``yourdb''
# and ``yourpassword'' with the actual values for your db name and the
# password for it, if needed.
#
# NaviServer can have different pools connecting to different databases
# and even different different database servers.  See
# http://openacs.org/doc/tutorial-second-database.html
# An example 'other db' configuration is included (and commented out)
# using other1_db_name
# set other1_db_name "yourDBname"
#---------------------------------------------------------------------

ns_section ns/db/pools
    ns_param    s1_pool1        "S1 Pool 1"
    ns_param    s1_pool2        "S1 Pool 2"
    ns_param    s1_pool3        "S1 Pool 3"

ns_section ns/server/s1/db
    ns_param    pools              s1_pool1,s1_pool2,s1_pool3
    ns_param    defaultpool        s1_pool1

ns_section ns/db/pool/s1_pool1
    ns_param    connections        15
    ns_param    verbose            $debug
    ns_param    logsqlerrors      $debug
    ns_param    driver            postgres
    ns_param    datasource        ${db_host}:${db_port}:${s1_db_name}
    ns_param    user              $db_user
    ns_param    password          ""

ns_section ns/db/pool/s1_pool2
    ns_param    connections        5
    ns_param    verbose            $debug
    ns_param    logsqlerrors      $debug
    ns_param    driver            postgres
    ns_param    datasource        ${db_host}:${db_port}:${s1_db_name}
    ns_param    user              $db_user
    ns_param    password          ""

ns_section ns/db/pool/s1_pool3
    ns_param    connections        5
    ns_param    verbose            $debug
    ns_param    logsqlerrors      $debug
    ns_param    driver            postgres
    ns_param    datasource        ${db_host}:${db_port}:${s1_db_name}
    ns_param    user              $db_user
    ns_param    password          ""

#---------------------------------------------------------------------
# Server s2
#---------------------------------------------------------------------
#---------------------------------------------------------------------
# s2 Server parameters
#---------------------------------------------------------------------
ns_section ns/server/s2
    ns_param    minthreads  2
    # 1 minimal number of connection threads
    ns_param    connsperthread  1000
    # 10000; number of connections requests handled per thread
    ns_param    highwatermark  100
    # 80; allow concurrent creates above this queue-is percentage
    # 100 means to disable concurrent creates
    #
    # Compress response character data: ns_return, ADP etc.
    ns_param    compressenable  on  ;# false, use "ns_conn compress" to override

#---------------------------------------------------------------------
# HTTP redirect pages
#---------------------------------------------------------------------
ns_section ns/server/s2/redirects
    ns_param    404 "/global/file-not-found.html"
    ns_param    403 "/global/forbidden.html"
    ns_param    503 "/global/busy.html"
    ns_param    500 "/global/error.html"

#---------------------------------------------------------------------
# s2 Tcl Configuration
#---------------------------------------------------------------------
ns_section ns/server/s2/tcl
    ns_param    library    ${s2_serverroot}/tcl
    ns_param    autoclose  on
    ns_param    debug      $debug

#---------------------------------------------------------------------
# s2 fastpath
#---------------------------------------------------------------------
ns_section "ns/server/s2/fastpath"
    ns_param    serverdir  ${s1_navi_homedir}
    ns_param    pagedir    ${s2_serverroot}/www

#---------------------------------------------------------------------
# s2 Access log -- nslog
#---------------------------------------------------------------------
ns_section ns/server/s2/module/nslog
    #-----------------------------------------------------------------
    # General parameters for access.log
    #-----------------------------------------------------------------
    ns_param    file            ${s2_serverroot}/log/access.log
    # ns_param  maxbuffer      100 ;# 0, number of logfile entries to keep
                                    # in memory before flushing to disk
    #-----------------------------------------------------------------
    # Control what to log
    #-----------------------------------------------------------------
    ns_param    logpartialtimes true        ;# false, include high-res start
                                            # time and partial request
                                            # durations (accept, queue,
                                            # filter, run)
    ns_param    checkforproxy  $proxy_mode ;# false, check for proxy
                                            # header (X-Forwarded-For)
    #
    #-----------------------------------------------------------------
    # Control log file rolling
    #-----------------------------------------------------------------
    ns_param    rollfmt    %Y-%m-%d-%H:%M  ;# format appendend to log file name

#---------------------------------------------------------------------
# s2 modules
# Missing modules break the server, so
# don't uncomment modules unless they have been installed.
#---------------------------------------------------------------------
ns_section ns/server/s2/modules
#    ns_param    nssock      ${s1_navi_homedir}/bin/nssock.so
    ns_param    nslog      ${s1_navi_homedir}/bin/nslog.so
    ns_param    nsdb        ${s1_navi_homedir}/bin/nsdb.so
    #ns_param  nsproxy    ${s1_navi_homedir}/bin/nsproxy.so ;# comment out if using
                                                      # nsssl.so
#    ns_param    nsssl      ${s1_navi_homedir}/bin/nsssl.so

    #-----------------------------------------------------------------
    # Determine, if libthread is installed
    #-----------------------------------------------------------------
    set libthread [lindex [glob -nocomplain ${s1_navi_homedir}/lib/thread*/libthread*[info sharedlibextension]] end]
    if {$libthread eq ""} {
        ns_log notice "No Tcl thread library installed in ${s1_navi_homedir}/lib/"
    } else {
    ns_param  libthread $libthread
      ns_log notice "Use Tcl thread library $libthread"
    }

#---------------------------------------------------------------------
# s2 Socket driver module (HTTP)  -- nssock
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# s2 nsssl certificate
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# s2 PAM authentication
#---------------------------------------------------------------------
ns_section ns/server/s2/module/nspam
    ns_param    PamDomain          "pam_domain"

#---------------------------------------------------------------------
# s2 ADP (AOLserver Dynamic Page) configuration
#---------------------------------------------------------------------
ns_section ns/server/s2/adp
    ns_param    enabledebug $debug
    ns_param    map    /*.adp      ;# Extensions to parse as ADP's

ns_section ns/server/s2/adp/parsers
    ns_param    fancy      ".adp"

#---------------------------------------------------------------------
# s2 WebDAV Support (optional, requires oacs-dav package to be installed
#---------------------------------------------------------------------
ns_section ns/server/s2/tdav
    ns_param    propdir    ${s2_serverroot}/data/dav/properties
    ns_param    lockdir    ${s2_serverroot}/data/dav/locks
    ns_param    defaultlocktimeout  300

ns_section ns/server/s2/tdav/shares
    ns_param    share1      "OpenACS"
    # ns_param  share2      "Share 2 description"

ns_section ns/server/s2/tdav/share/share1
    ns_param    uri    "/dav/*"
    # all WebDAV options
    ns_param    options    "OPTIONS COPY GET PUT MOVE DELETE HEAD MKCOL POST PROPFIND PROPPATCH LOCK UNLOCK"

#ns_section ns/server/s2/tdav/share/share2
    # ns_param  uri "/share2/path/*"
    # read-only WebDAV options
    # ns_param options "OPTIONS COPY GET HEAD MKCOL POST PROPFIND PROPPATCH"

#---------------------------------------------------------------------
# nsproxy configuration
#---------------------------------------------------------------------
ns_section ns/server/s2/module/nsproxy
    # ns_param  maxslaves          8
    # ns_param  sendtimeout        5000
    # ns_param  recvtimeout        5000
    # ns_param  waittimeout        1000
    # ns_param  idletimeout        300000

#---------------------------------------------------------------------
# Database Pools: This is how NaviServer  ``talks'' to the RDBMS. You need
# three for OpenACS: main, log, subquery. Make sure to replace ``yourdb''
# and ``yourpassword'' with the actual values for your db name and the
# password for it, if needed.
#
# NaviServer can have different pools connecting to different databases
# and even different different database servers.  See
# http://openacs.org/doc/tutorial-second-database.html
# An example 'other db' configuration is included (and commented out)
# using other1_db_name
# set other1_db_name "yourDBname"
#---------------------------------------------------------------------

ns_section ns/db/pools
    ns_param    s2_pool1        "s2 Pool 1"
    ns_param    s2_pool2        "s2 Pool 2"
    ns_param    s2_pool3        "s2 Pool 3"

ns_section ns/server/s2/db
    ns_param    pools              s2_pool1,s2_pool2,s2_pool3
    ns_param    defaultpool        s2_pool1

ns_section ns/db/pool/s2_pool1
    ns_param    connections        15
    ns_param    verbose            $debug
    ns_param    logsqlerrors      $debug
    ns_param    driver            postgres
    ns_param    datasource        ${db_host}:${db_port}:${s2_db_name}
    ns_param    user              $db_user
    ns_param    password          ""

ns_section ns/db/pool/s2_pool2
    ns_param    connections        5
    ns_param    verbose            $debug
    ns_param    logsqlerrors      $debug
    ns_param    driver            postgres
    ns_param    datasource        ${db_host}:${db_port}:${s2_db_name}
    ns_param    user              $db_user
    ns_param    password          ""

ns_section ns/db/pool/s2_pool3
    ns_param    connections        5
    ns_param    verbose            $debug
    ns_param    logsqlerrors      $debug
    ns_param    driver            postgres
    ns_param    datasource        ${db_host}:${db_port}:${s2_db_name}
    ns_param    user              $db_user
    ns_param    password          ""
#---------------------------------------------------------------------
# end
#---------------------------------------------------------------------

ns_log notice "nsd.tcl: using threadsafe tcl: [info exists tcl_platform(threaded)]"
ns_log notice "nsd.tcl: finished reading config file."