|
Purpose:
Scope:
|
|---|
The Gateway Port is the HTTPS port used to open Visulox in a browser.
-
The default Gateway Port is
8180. -
Port
8080is the REST API port, not the Gateway Port. -
Port
443can be used so the HTTPS URL does not need a port number.
Set the port during installation
The best time to choose the Gateway Port is during the initial setup — the setup-master step described in Installing Visulox.
Setup displays:
Enter Gateway Port (default 8180):
Press Enter to use 8180, or enter another port such as 443.
For a file-based installation, set:
"GatewayPort": 443
Setup then creates the matching Portal, Connector, Visulox Core, Nginx, firewall, and SELinux configuration.
Change The Port After Installation
The following procedure changes a single-node installation from 8180 to 443. HTTPS remains enabled. The REST API port 8080 and Connector API port 8085 do not change.
In a multi-node (cluster) installation, repeat the configuration steps on every master and worker server that runs the Portal or Connector service.
Run all steps in the same SSH session.
The procedure restarts the Portal and Connector services, which disconnects active user sessions. Perform the change in a maintenance window.
Important: Do not modify the configuration until you have checked the environment (See: Preparation and pre-change checks). After applying the changes, check again (See: Post-change checks and cleanup). Keep the old port open until all post-change checks pass.
1. Edit the Connector configuration
Open the Connector configuration:
vim /opt/visulox-portal-connector/configs/config.json
Three values must be changed.
First, search for:
/GatewayPort
Change:
- "GatewayPort": 8180
+ "GatewayPort": 443
Next, search for the TusHandler section:
/TusHandler
Search for /VISULOXPort and change:
- "VISULOXPort": 8180
+ "VISULOXPort": 443
Then search for the Entra section:
/Entra
Search for /VISULOXPort and make the same change:
- "VISULOXPort": 8180
+ "VISULOXPort": 443
Save and exit with:
:wq
The fields above are complete for the current version, but later versions may reference the Gateway Port in additional sections. Search the whole file for any remaining occurrence of the old port and change those values too:
grep -n 8180 /opt/visulox-portal-connector/configs/config.json
The command should return no output. Any line that is printed still contains the old port and must be reviewed.
2. Edit the Portal configuration
Open the Portal configuration:
vim /opt/visulox-portal/configs/config.json
Search for /GatewayPort and change:
- "GatewayPort": 8180
+ "GatewayPort": 443
Search for /WebSocketServerPort and change:
- "WebSocketServerPort": 8180
+ "WebSocketServerPort": 443
Save and exit with :wq.
Search this file for any remaining occurrence of the old port as well:
grep -n 8180 /opt/visulox-portal/configs/config.json
The command should return no output. Any line that is printed still contains the old port and must be reviewed.
Validate both files:
restorecon /opt/visulox-portal-connector/configs/config.json
restorecon /opt/visulox-portal/configs/config.json
python3 -m json.tool \
/opt/visulox-portal-connector/configs/config.json >/dev/null
python3 -m json.tool \
/opt/visulox-portal/configs/config.json >/dev/null
No output means both JSON files are valid.
3. Update Visulox Core
visulox config -name "api.gateway_port=443"
visulox config -name api.gateway_port
The displayed value should be 443.
4. Regenerate Nginx
Do not edit the generated Nginx files manually. Regenerate them from the Connector configuration:
/opt/visulox-portal-connector/bin/vlx-connectord \
refresh-node-gateway-nginx \
-c /opt/visulox-portal-connector/configs/config.json
Confirm the generated values:
grep -n 'listen 443 ssl' \
/etc/nginx/conf.d/visulox-gateway-node.conf
grep -n 'default "443"' \
/etc/nginx/includes/visulox-gateway-node-variables.conf
5. Apply the change
Validate Nginx before reloading it:
nginx -t
If the test succeeds:
systemctl reload nginx
systemctl restart vlx-portal vlx-connector
sleep 10
systemctl is-active vlx-portal vlx-connector nginx firewalld
systemctl --failed --no-legend
ss -ltnp | grep ':443[[:space:]]'
Then continue with checking the system.
Preparation and pre-change checks
Complete these checks before editing any configuration.
Connect and check the server
sudo -i
Check the services, Nginx configuration, and current listener:
systemctl is-active vlx-portal vlx-connector nginx firewalld
nginx -t
ss -ltnp | grep -E ':(443|8180)[[:space:]]' || true
Test the current Portal:
curl -ksS -o /dev/null -w 'Current UI: %{http_code}\n' \
https://127.0.0.1:8180/ui4/login
The expected result is HTTP 200. Also confirm that no other process is using port 443.
Open port 443 if it is not already open
Keep port 8180 open until the change has been tested.
firewall-cmd --permanent --zone=public \
--add-rich-rule='rule family="ipv4" port port="443" protocol="tcp" accept'
firewall-cmd --reload
firewall-cmd --zone=public \
--query-rich-rule='rule family="ipv4" port port="443" protocol="tcp" accept'
The query should return yes. Port 443 is already allowed for HTTPS by the standard SELinux policy.
Post-change checks and cleanup
Complete these checks after applying the configuration changes. Remove the old firewall rule only after all checks pass.
Test the new port
Test the UI and the Connector-to-Core route:
curl -ksS -o /dev/null -w 'Local UI: %{http_code}\n' \
https://127.0.0.1:443/ui4/login
curl -ksS -o /dev/null -w 'Core route: %{http_code}\n' \
https://127.0.0.1:443/visulox/api/v1/portal/user/owner
Both tests should return HTTP 200.
Run the health check:
/opt/visulox-portal/bin/vlx-portald health-check
Confirm that the Portal Servers and Connector Servers sections are healthy.
Open the Portal from another computer:
https://<visulox-hostname>/ui4/login
Test login, application launch, XPRA connectivity, file upload, Portal Connect, and Entra login when those features are enabled. The hostname and TLS certificate do not change.
Remove the old firewall rule
Only after all tests pass, remove the old firewall rule:
firewall-cmd --permanent --zone=public \
--remove-rich-rule='rule family="ipv4" port port="8180" protocol="tcp" accept'
firewall-cmd --reload
firewall-cmd --zone=public --list-rich-rules
The final state is Nginx listening on 443, with a rich rule allowing port 443.