nginx 컨테이너로 서버 구축은 됐는데 외부접속이 안돼요.


아마존 AWS EC2 서비스를 이용하고 있습니다.

며칠동안 아무리 이것저것 만져봐도 제대로 동작을 안 해서 정말 답답한 마음에 올립니다.

jwilder/nginx-proxy를 이용해서 컨테이너를 생성하고 프록시로 배포하는 것 까지 성공했는데요.

문제는 버추얼 호스트를 이용해서 여러개의 컨테이너를 구축하고 개별로 가상 호스트를 설정했습니다.

예를들면,

homepage1.test.com /
homepage2.test.com  /
homepaege3.test.com  /

위와 같이 가상 호스트를 만드는 것까지는 성공했습니다. DNS도 등록하고, 로컬에서 curl 홈페이지 주소 테스트를 했는데 정상적으로 실행되는 것을 확인했습니다.

문제는 외부에서 접속했을 떄

503 Service Temporarily Unavailable

nginx/1.13.6

위와 같은 메시지가 뜨면서 접속이 안됩니다. 인바운드 포트도 80포트 열어두고, 아웃바운드는 모든 트래픽 허용을 했는데도 불구하고 외부에서는 homepage1.test.com 으로 접속이 안 됩니다.

버추얼 호스트에 대한 개념을 제가 잘못 잡은 건가요? 예를 들어 제가 test.com 이라는 도메인을 소유하고 있어서 test.com을 프록시 네트워크에 homepage1이라는 문장을 붙이면 내부에서만 볼 수 있고, 외부에서는 확인할 수 없는 것인지 궁금합니다.

각 컨테이너마다 개별 호스팅을 하고 싶은데 버추얼 호스트를 일일이 다 구입을 해야하는 건가요? 이미지

root@ip-172-31-10-22:/home/ubuntu/testtttttttttt# docker network inspect $(docker network ls -q)
[
    {
        "Name": "bridge",
        "Id": "34a95531c780943ad363c959b0ed68fcfea1fce0a9a14ff30ef89a6104d25030",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Containers": {},
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    },
    {
        "Name": "host",
        "Id": "adb25670d32e005552f0fce768bce357032f6f56f6948229effaaf4f86df1a59",
        "Scope": "local",
        "Driver": "host",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": []
        },
        "Internal": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    },
    {
        "Name": "none",
        "Id": "31bdfd3b98d97b7e8f3ba772f22d6c00613ec1959210d09ff596729e51dd284f",
        "Scope": "local",
        "Driver": "null",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": []
        },
        "Internal": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    },
    {
        "Name": "testttttttttttt_default",
        "Id": "cc9c232bdefe1df16e8355a1922f7f20ab8dbfa0fa1e2b5e73e1e6a6b7a50369",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1/16"
                }
            ]
        },
        "Internal": false,
        "Containers": {
            "876f9c3799fc9b5e9bb6373be5f14e4e754400ec9eb0a6338835a0152881da0f": {
                "Name": "testtttttttttt2",
                "EndpointID": "3131e71998368124c4435062593a3324c47795110397ccfbb7c5d677581f2cfd",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            },
            "a7902f15fd9b57478efc31f19cbf7968b692f15b4c79ed740757eb8e7703b651": {
                "Name": "testttttttttt3t",
                "EndpointID": "fed538dc1e1045acc32e81640797248d16f94890bd0fa66b67b34d7471ca5c76",
                "MacAddress": "02:42:ac:12:00:03",
                "IPv4Address": "172.18.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]


  • nginx 에러로그를 올려주시면 더 빠를거같아요~ 참고로 도메인하나만 있으면 서브도메인은 구매안해도 됩니다.    김선우   2017.11.15 13:00     
  • 답변 감사합니다. 질문이 부실해서 죄송합니다. ㅠㅠ본문 수정했습니다.    오늘만같아라   2017.11.15 13:55     
조회수 145


Banner bitmango

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close