1

I want to make a reverse proxy for rpi 4 and I have some questions and some issues to solve. First things first I successfully deployed my containers. Then I made a docker compose for my nginx service. The written compose is down below. Now the nginx.conf file I made is for reverse proxy my dashy container and my jellyfin. My issue is that I cannot access to them, except if I use my private ip and my port. Because I'm a newbie and I don't have huge knowledge about nginx can anyone help me with this.

(Also I made certificates with certbot.)

One more thing is that ... is my external ip address

nginx code

version: '3.8'

services:
  nginx:
    container_name: nginx
    image: nginx
    restart: unless-stopped
    volumes:
      - /portainer/Files/AppData/Config/nginx/:/usr/share/nginx/html
      - /etc/letsencrypt/live/.../:/etc/ssl/certs:ro
    ports:
      - "8080:80"
    command: sh -c 'cp -r /usr/share/nginx/html/nginx.conf /etc/nginx/nginx.conf && tail -f /dev/null'
    environment:
      - NGINX_HOST=...
      - NGINX_PORT=9100,8096



networks:
  nginx:

nginx.conf

##Version 2023/04/13 - Changelog: https://github.com/linuxserver/docker-baseimage-alpine-nginx/commits/master/root/defaults/nginx/nginx.conf.sample

### Based on alpine defaults
# https://git.alpinelinux.org/aports/tree/main/nginx/nginx.conf?h=3.15-stable

user root;

# Set number of worker processes automatically based on number of CPU cores.
include /config/nginx/worker_processes.conf;

# Enables the use of JIT for regular expressions to speed-up their processing.
pcre_jit on;

# Configures default error logger.
error_log /config/log/nginx/error.log;

# Includes files with directives to load dynamic modules.
include /etc/nginx/modules/*.conf;

# Include files with config snippets into the root context.
include /etc/nginx/conf.d/*.conf;

events {
    # The maximum number of simultaneous connections that can be opened by
    # a worker process.
    worker_connections 1024;
}

http {
    # Includes mapping of file name extensions to MIME types of responses
    # and defines the default type.
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    # Name servers used to resolve names of upstream servers into addresses.
    # It's also needed when using tcpsocket and udpsocket in Lua modules.
    #resolver 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001;
    include /config/nginx/resolver.conf;

    # Don't tell nginx version to the clients. Default is 'on'.
    server_tokens off;

    # Specifies the maximum accepted body size of a client request, as
    # indicated by the request header Content-Length. If the stated content
    # length is greater than this size, then the client receives the HTTP
    # error code 413. Set to 0 to disable. Default is '1m'.
    client_max_body_size 0;

    # Sendfile copies data between one FD and other from within the kernel,
    # which is more efficient than read() + write(). Default is off.
    sendfile on;

    # Causes nginx to attempt to send its HTTP response head in one packet,
    # instead of using partial frames. Default is 'off'.
    tcp_nopush on;

    # all ssl related config moved to ssl.conf
    # included in server blocks where listen 443 is defined

    # Enable gzipping of responses.
    #gzip on;

    # Set the Vary HTTP header as defined in the RFC 2616. Default is 'off'.
    gzip_vary on;

    # Helper variable for proxying websockets.
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }

    # Sets the path, format, and configuration for a buffered log write.
    access_log /config/log/nginx/access.log;

    # Includes virtual hosts configs.
    include /etc/nginx/http.d/*.conf;
    include /config/nginx/site-confs/*.conf;

    server {
        listen 443 ssl http2;
        server_name ...;

        ssl_certificate /config/keys/fullchain.pem; #cert.crt
        ssl_certificate_key /config/keys/privkey.pem; #cert.key
        ssl_trusted_certificates /config/keys/fullchain.pem;

        location /jellyfin {
                proxy_pass http://localhost:8096/;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
        }
        location /dashy {
                proxy_pass http://localhost:9100/;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
        }
    }
}


#daemon off;
#pid /run/nginx.pid;
Cheat3d
  • 35
  • 6
  • Does this answer your question? [How to access a docker container behind a reverse proxy on it's public address from another container](https://stackoverflow.com/questions/52162675/how-to-access-a-docker-container-behind-a-reverse-proxy-on-its-public-address-f) – Codemaker2015 Jul 08 '23 at 13:58
  • actually not.. this does not fix my issue – Cheat3d Jul 18 '23 at 08:51

0 Answers0