Forum OpenACS Q&A: Re: ACS Site-Wide Administration link
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."