dockerfiles/nginx
kev 5771e5c1c7 update nginx 2021-02-02 18:22:31 +08:00
..
arm update nginx 2021-02-02 18:22:31 +08:00
data update nginx 2021-02-02 18:22:31 +08:00
README.md update nginx 2021-02-02 18:22:31 +08:00
docker-compose.yml update nginx 2021-02-02 18:22:31 +08:00

nginx

Nginx is an open source reverse proxy server for HTTP, HTTPS, SMTP, POP3, and IMAP protocols, as well as a load balancer, HTTP cache, and a web server (origin server).

Static Website

File: docker-compose.yml

nginx:
  image: nginx:alpine
  ports:
    - "80:80"
  volumes:
    - ./data/conf.d:/etc/nginx/conf.d
    - ./data/html:/usr/share/nginx/html
  restart: unless-stopped

Reverse Proxy

File: docker-compose.yml

nginx:
  image: nginx:alpine
  volumes:
    - ./data/conf.d:/etc/nginx/conf.d
    - ./data/ssl:/etc/nginx/ssl
    - ./data/htpasswd:/etc/nginx/htpasswd
  net: host
  restart: unless-stopped

Password file can be generated by:

echo "username:$(openssl passwd -apr1 password)" >> data/htpasswd

File: default

server {
    listen 80 default;
    server_name _;
    return 301 http://blog.foobar.site/;
}

server {
    listen 80;
    server_name blog.foobar.site blog.easypi.info;
    location / {
        proxy_pass http://127.0.0.1:6109;
    }
}

server {
    listen 80;
    server_name wiki.foobar.site wiki.easypi.info;
    location / {
        auth_basic restricted;
        auth_basic_user_file /etc/nginx/htpasswd;
        proxy_pass http://127.0.0.1:8000;
    }
}

server {
    listen 80;
    server_name iot.foobar.site iot.easypi.info;
    location / {
        proxy_pass http://127.0.0.1:1880;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

File: rtmp

rtmp {
    server {
        listen 1935;
        application live {
            live on;
        }
    }
}