Files
2026-02-25 12:18:44 -05:00

1.4 KiB

Ngnix

Initial Install

Create your initial secrets/nginx.conf to look something like:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

stream {
    log_format stream_logs '$remote_addr [$time_local] $protocol $status $bytes_sent $bytes_received $session_time "$upstream_addr"';

    access_log /dev/stdout stream_logs;
    error_log stderr info;

    server {
        listen     25565;
        listen     [::]:25565;
        proxy_pass my-minecraft-server.internal.dns:25565;
    }
}

Create the systemd service:

# Get the initial configuration
vim /etc/containers/systemd/nginx.container
[Unit]
Description=Nginx

[Container]
AddCapability=NET_ADMIN
ContainerName=nginx
Image=docker.io/nginx
Network=host
SecurityLabelDisable=true
Volume=/etc/nginx:/etc/nginx

[Service]
Restart=always

[Install]
WantedBy=default.target

Reload the service and start it:

systemctl daemon-reload
systemctl start nginx

Update the Configuration

scp active/container_nginx/secrets/nginx.conf proxy:/etc/nginx/nginx.conf
ssh proxy
systemctl restart nginx

Logs

# Watch client connections
journalctl -u nginx -f | grep -e 'client .* connected'

# Watch upstream proxy connections
journalctl -u nginx -f | grep -e 'proxy .* connected'