2016-07-28 4 views
0

nginx를 사용하여 gitlab을 포함한 여러 컨테이너 앞에 리버스 프록시를 설정하려고합니다. 기본적으로 mydomain.com/gitlab에 액세스하려고 할 때 mydomain.com : 7777로 전달하려고합니다.설정 컨테이너 리버스 프록시

두 서버가 자체 컨테이너를 통해 실행 중이며 두 서버가 모두 실행 중입니다. 그러나 요청이 gitlab에 전달되지 않습니다.

여기서 내 config.d 파일은 nginx입니다.

upstream gitlab { 
    server     mydomain.com:7777 fail_timeout=0; 
} 

# let gitlab deal with the redirection 
server { 
    listen     *:80; 
    server_name    mydomain.com; 
    server_tokens    off; 
    root      /dev/null; 

    # Increase this if you want to upload larger attachments 
    client_max_body_size  20m; 

    # individual nginx logs for this vhost 
    access_log    /var/log/nginx/gitlab_access.log; 
    error_log     /var/log/nginx/gitlab_error.log; 

    location /gitlab/ { 
    proxy_set_header  Host    $host; 
    proxy_set_header  X-Real-IP   $remote_addr; 

    proxy_pass    http://gitlab; 
    } 
} 

domain.com 주소를 내부 도커로 대체하려고 시도했지만 성공하지 못했습니다.

+0

동일한 네트워크에 있거나 연결된 컨테이너? – opHASnoNAME

+0

지원해 주셔서 감사합니다. 컨테이너가 동일한 네트워크에 있고 컨테이너 IP 주소와 포트 (도커 검사)를 사용하면 이제 gitlab에 액세스 할 수 있습니다. 그런데 gitlab은 http://example.com/gitlab/users/sign 대신 http://example.com/users/sign_in으로 리디렉션됩니다 (http://example.com/gitlab을 외부 URL로 설정했습니다). –

답변

1

당신은 고정 표시기 컨테이너에 대한 컨테이너 실행의 nginx와 고정 표시기 세대를

의 nginx 프록시 설정을 자동 Nginx에 리버스 프록시를 사용할 수 있습니다. docker-gen은 nginx에 대해 역방향 프록시 구성을 생성하고 컨테이너가 시작되고 중지 될 때 nginx 을 다시로드합니다.

+0

글쎄,이 단계에서 추가 컨테이너의 사용을 피하고 싶습니다. –

+0

지원해 주셔서 감사 드리며, 마침내 nginx-proxy 및 여기에 설명 된대로 일부 네트워크 수정으로 문제를 해결할 수 있습니다. http://stackoverflow.com/questions/36149196/setup-subdomains-in-docker-en viroment –