Chapter 8: Configuring Nginx and Apache
8.6 Task: run a site on a different port
Sometimes a second site or an admin panel must run on another port, e.g. 8081.
# Nginx: /etc/nginx/conf.d/admin.conf (Ubuntu: sites-available + symlink)
server {
listen 8081;
server_name _;
root /var/www/admin;
index index.html;
}
# Apache (AL2023/CentOS): add to /etc/httpd/conf.d/admin.conf
Listen 8081
<VirtualHost *:8081>
DocumentRoot /var/www/admin
<Directory /var/www/admin>
Require all granted
</Directory>
</VirtualHost>
On Ubuntu Apache, put Listen 8081 in /etc/apache2/ports.conf (not in the vhost file). Then:
- Test and reload the web server.
- Check that it listens:
sudo ss -tlnp | grep 8081. - Security group: add an inbound rule Custom TCP 8081 (from My IP for admin pages).
- CentOS Stream 9: open firewalld if active (
sudo firewall-cmd --permanent --add-port=8081/tcp && sudo firewall-cmd --reload) and allow the port in SELinux:
sudo semanage port -l | grep -w http_port_t # ports web servers may bind to
sudo semanage port -a -t http_port_t -p tcp 8081 # add 8081 if not listed
Without the SELinux step, the service fails to start with bind() to 0.0.0.0:8081 failed (13: Permission denied).