Jenkins 배포 및 Nginx에서 역방향 프록시 설정

4699 단어 Jenkinsnginx프록시
업무로 CI툴로서 Jenkins를 넣게 되었으므로, 그 때의 기록.
jenkins의 설명은 Jenkins란 무엇입니까?이 간단하고 이해하기 쉽습니다.

버전


  • nginx 1.16.1
  • centOS 7.6.1810
  • Jenkins 2.190.3

  • Jenkins 도입 방법



    (1) install Java
    Jenkins는 java로 구현되며 java 실행 환경이 필요하기 때문에 설치하지 않습니다.
    # openJDK
    yum install java-1.8.0-openjdk
    

    (2) install Jenkins

    공식 절차.
    # jenkinsのyumリポジトリを取得
    wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
    
    # 公開鍵追加
    rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
    
    # インストール
    yum install jenkins
    

    (3) 각종 설정
    설정 파일: /etc/sysconfig/jenkins각종 설정은 이 파일에서 변경할 수 있다. 다음은 기본값입니다.
    # ポート
    JENKINS_PORT=“8080"
    ​
    # 実行ユーザ
    JENKINS_USER="jenkins"
    

    실행 유저의 변경을 실시했을 경우 이하의 디렉토리/파일의 권한도 마찬가지로 변경할 필요가 있다.
  • /var/lib/jenkins
  • /var/log/jenkins
  • /var/cache/jenkins

  • (4) 기동
    # 起動
    systemctl start jenkins
    
    # 再起動
    systemctl restart jenkins
    
    # 終了
    systemctl stop jenkins
    
    # 確認
    systemctl status jenkins
    

    시작하고 상태가 실행되면 http://{IP}:{PORT}로 연결할 수 있습니다. 외부로부터의 접속이 차단되고 있는 경우는, 해제하는 것을 잊지 않고.

    firewall 설정 counfigure firewall 참조

    Nginx에서 역방향 프록시 설정



    리버스 프록시란 받은 리퀘스트를 전송하는 기능으로, 로드 밸런스나, 리퀘스트의 재기록, 액세스 제한등에 사용되고 있다.

    이번에 매번 포트 번호 지정하는 대신 http://{IP}/jenkins로 접속할 수 있도록 다음 설정을 실시했다.



    (1) jenkins 측 설정

    설정 파일 (/etc/sysconfig/jenkin)을 다음과 같이 다시 씁니다.
    JENKINS_ARGS="--prefix=/jenkins"
    

    (2) Nginx 측 설정
  • 공통 설정: /etc/nginx/nginx.conf
  • server 블록별 설정: /etc/nginx/conf.d/
  • 기본 청취 포트 80번 설정: /etc/nginx/conf.d/default.conf
  • /etc/nginx/conf.d/default.conf 에서 80번 포트를 청취하고 있는 server 지시어내에 이하를 추기. nginx를 경유하는 것으로, 리퀘스트 정보가 바뀌므로, header를 여기에서 세트 해 줄 필요가 있다.
    location ~ /jenkins {
        proxy_redirect     off;
        proxy_set_header   Host $host;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_pass         http://jenkins;
    }
    

    변수 ($가 붙는 것은 nginx의 내장 변수.)
     L $scheme : 요청된 스키마(http, https)
     L $http_host :포트 번호 첨부 호스트
     L $remote_addr : 액세스 원의 IP 주소
     L $proxy_add_x_forwarded_for : 유저가 경유한 주소
     L $host : 매치한, ​​서버명/Host 헤더의 값.

    지시어
    L proxy_set_header ヘッダーフィールド名 値 : 요청을 프록시 할 때 특정 헤더 정보를 부여합니다.
     L proxy_pass 転送先 :전송처 URL.

    nginx에서 사용할 수 있는 변수나 지시어 목록은 여기여기이 참고가 되었다.
    /etc/nginx/conf.d/jenkins.conf를 만들고 다음을 설명합니다. 127.0.0.1는 루프백 주소 (자신을 가리키는 IP 주소)입니다. default.conf proxy_pass http://jenkins;의 jenkins를 여기서 정의.
    upstream jenkins {
      server 127.0.0.1:8080 fail_timeout=0;
    }
    

    (3) 재부팅
    # jenkins再起動
    systemctl restart jenkins
    
    # nginx再起動
    systemctl restart nginx
    
    http://{IP}/jenkins로 이동하여 jenkins가 성공적으로 표시되면 완료되었습니다.

    jenkins에서 "リバースプロキシの設定がおかしいようです" 오류가 발생했지만 jenkins 관리 → 시스템 설정 → Jenkins URL을 변경하면 사라졌습니다.

    참고


  • nginx 실습 입문
  • htps : // chss 04. 하테나 bぉg. 코m/엔트리/2016/10/25/190000
  • htps : // 우우키. 지킨킨 s. 이오 / ぢ sp ぁ y / ぇ ン キ ン S / ぇ ン キ ン s + ベ ヒン d + 앙 + ン ギン X + ゔ ぇ r 세 + p 로 xy
  • 좋은 웹페이지 즐겨찾기