Browse Source

tests: check for raw IPv4/6 used as VIRTUAL_HOST

Nicolas Duchon 3 years ago
parent
commit
ba86bc04f6
2 changed files with 63 additions and 0 deletions
  1. 15 0
      test/test_raw-ip-vhost.py
  2. 48 0
      test/test_raw-ip-vhost.yml

+ 15 - 0
test/test_raw-ip-vhost.py

@@ -0,0 +1,15 @@
+import pytest
+
+
+def test_raw_ipv4_vhost_forwards_to_web1(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://172.20.0.4")
+    assert r.status_code == 200
+    web1_container = docker_compose.containers.get("web1")
+    assert r.text == f"I'm {web1_container.id[:12]}\n"
+
+
+def test_raw_ipv6_vhost_forwards_to_web2(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://[fd00::4]", ipv6=True)
+    assert r.status_code == 200
+    web2_container = docker_compose.containers.get("web2")
+    assert r.text == f"I'm {web2_container.id[:12]}\n"

+ 48 - 0
test/test_raw-ip-vhost.yml

@@ -0,0 +1,48 @@
+version: '2'
+
+networks:
+  net1:
+    enable_ipv6: true
+    ipam:
+      config:
+        - subnet: 172.20.0.0/16
+        - subnet: fd00::/80  
+
+services:
+  web1:
+    container_name: web1
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: 81
+      VIRTUAL_HOST: "172.20.0.4"
+    networks:
+      net1:
+        ipv4_address: 172.20.0.2
+        ipv6_address: fd00::2
+
+  web2:
+    container_name: web2
+    image: web
+    expose:
+      - "82"
+    environment:
+      WEB_PORTS: 82
+      VIRTUAL_HOST: "[fd00::4]"
+    networks:
+      net1:
+        ipv4_address: 172.20.0.3
+        ipv6_address: fd00::3
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    environment:
+      ENABLE_IPV6: "true"
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./lib/ssl/dhparam.pem:/etc/nginx/dhparam/dhparam.pem:ro
+    networks:
+      net1:
+        ipv4_address: 172.20.0.4
+        ipv6_address: fd00::4