Docker 방식 으로 GitLab, Nginx 역방향 에이전트 Https 배치

3160 단어
설치 환경
  • 운영 체제: CentOS 6.7
  • 웹 서비스: nginx / 1.12.0
  • Docker 서비스: docker / 1.7.1
  • GitLab 을 설치 하기 전에 이상 의 환경 이 설치 되 어 있 는 지 확인 하 세 요.
    2. 호스트 에서 데이터 저장 디 렉 터 리 만 들 기
    mkdir /srv/gitlab & cd /srv/gitlab
    mkdir config logs data
    

    설정 수정 과 후기 유 지 를 편리 하 게 하기 위해 서 는 docker 에 있 는 gitlab 서비스 에 있 는 디 렉 터 리 를 새 config, logs, data 세 개의 하위 항목 으로 표시 해 야 합 니 다.
    3. gitlab 미 러 를 끌 어 내 고 용 기 를 시작 합 니 다.
    docker pull gitlab/gitlab-ce:latest
    docker run --detach \
     --hostname gitlab.example.cn \
     --publish 20443:443 \
     --publish 20080:80 \
     --publish 20022:22 \
     --name gitlab \
     --restart always\
     --volume /srv/gitlab/config:/etc/gitlab \
     --volume /srv/gitlab/logs:/var/log/gitlab \
     --volume /srv/gitlab/data:/var/opt/gitlab \
     gitlab/gitlab-ce:latest
    

    docker pull 을 실행 하지 않 아 도 됩 니 다. docker run 을 실행 할 때 대응 하 는 image 가 없 으 면 pull 을 자동 으로 실행 하여 image 를 가 져 옵 니 다.
    4. gitlab 프로필 수정 https 지원 사용
    cd /srv/gitlab/config
    mkdir ssh
    cp /data/wwwroot/crtkey/gitlab.crt gitlab.crt
    cp /data/wwwroot/crtkey/gitlab.key gitlab.key
    vim gitlab.rb
    

    gitlab. crt 와 gitlab. key 는 도 메 인 이름 을 연결 하 는 ssl 에서 보 낸 비밀 키 와 인증서 입 니 다. 따로 신청 해 야 합 니 다.
    gitlab. rb 다음 설정 열기
    external_url 'https://gitlab.example.cn'
    nginx['redirect_http_to_https'] = true
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"
    

    프로필 저장, 용기 다시 시작
    docker restart gitlab
    

    5. Nginx 역방향 에이전트 설정
    nginx 대응 사이트 conf 에 설정 정 보 를 추가 합 니 다.
    ##  HTTP        HTTPS
    server {
        listen       80;
        server_name  gitlab.exmaple.cn;
        charset utf-8;
        access_log  /var/log/nginx/gitlab.access.log;
        error_log  /var/log/nginx/gitlab.error.log;
        rewrite ^ https://gitlab.exmaple.cn;
    }
    
    ##      GitLab  
    server {
        listen       443 ssl;
        server_name  gitlab.exmaple.cn;
        charset utf-8;
        access_log  /var/log/nginx/gitlab.access.log;
        error_log  /var/log/nginx/gitlab.error.log;
        ssl on;
        ssl_certificate         /data/gitlab/ssl/xiaowo/xiaowo.me.crt;
        ssl_certificate_key     /data/gitlab/ssl/xiaowo/xiaowo.me.key;
        ssl_session_timeout     10m;
        ssl_session_cache       shared:SSL:10m; 
        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
        proxy_pass    https://127.0.0.1:20443;#     20443  
        }
    }
    
    service nginx restart  #    
    

    지금 방문 하 셔 도 됩 니 다.https://gitlab.example.cn페이지 를 열 었 지만 이상 하 게 도 페이지 스타일 이 엉망 이 되 었 습 니 다. 사실 js 와 css 파일 은 불 러 오지 않 았 습 니 다.이 문 제 를 일 으 킨 이 유 는 Nginx 가 프 록 시 를 반대 할 때 정적 자원 도 프 록 시 를 설정 해 야 하기 때 문 입 니 다. 다음은 Nigx 설정 파일 에 다음 과 같은 설정 을 추가 합 니 다.
    location ~ .*\.(js|css|png)$ {
        proxy_pass  https://127.0.0.1:20443;
    }
    
    service nginx restart  #    
    

    OK! 이제 https 의 gitlab 를 즐겁게 사용 할 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기