nginx 부하 균형 다 중 서버 코드 동기 화 업데이트 (envoy)

2809 단어 nginxlaravellumen
글 목록
  • 장면
  • 참고 문서
  • 해결 (envoy)
  • Envoy 샘플
  • 장면
  • nginx 는 부하 균형 을 이 루 었 기 때문에 각 기계 의 동기 화 업데이트 코드
  • 를 확보 해 야 한다.
    참고 문서
  • laravel envoy 공식 문서
  • envoy 다 중 서버 는 암 호 를 입력 하지 않 습 니 다.
  • ssh-copy-id user@machine로 컬 호스트 의 공개 키 를 원 격 authorized 로 복사 합 니 다.keys 에 적당 한 권한 부여

  • 해결 (envoy)
  • Envoy 샘플 에 commt 인자 가 들 어 오 면 로 컬 코드 를 제출 하고 다른 server 의 code
  • 를 업데이트 합 니 다.
    전역 설치
    composer global require laravel/envoy
    Make sure to place the ~/.composer/vendor/bin directory in your PATH so the envoy executable is found when running the envoy command in your terminal.
    PATH 에 ~ /. copser / vendor / bin 을 넣 어야 터미널 에서 envoy 명령 을 찾 을 수 있 습 니 다 , , , .config/composer/vendor/bin/echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin/"' >> ~/.bashrc source ~/.bashrc
    Write Tasks
    모든 명령 은 프로젝트 의 루트 디 렉 터 리 에 있 는 Envoy. blade. php 에서 Envoy 샘플 을 정의 합 니 다.
    @servers
    파일 첫 줄 에 연결 할 수 있 는 server 를 정의 합 니 다. 현재 server 에서 명령 을 실행 하려 면 server ip 을 127.0.0.1 eg: @servers(['localhost' => '127.0.0.1']) 로 지정 할 수 있 습 니 다.
    @task
    on 속성 은 명령 을 실행 할 server 를 지정 합 니 다. @ task 내 부 는 reote server 에서 실 행 된 bash code 입 니 다.
    Variables
    envoy rundeploy -- commt = '테스트' 명령 행 은 Envoy 에 인 자 를 전달 할 수 있 습 니 다. @ if @ else @ endif 명령 에 따라 조합 기능 을 수행 할 수 있 습 니 다. eg: commt 인 자 를 전달 하지 않 으 면 전달 & 업로드 하지 않 음 을 알려 줍 니 다. 그렇지 않 으 면 다른 명령 을 수행 합 니 다.
    @story
    일부 작은 task 를 한 그룹 에 집합 하여 Multiple Servers 를 통일 적 으로 호출 할 수 있 습 니 다.
    Envoy 를 사용 하면 여러 서버 에서 쉽게 task 를 실행 할 수 있 습 니 다. 먼저, add add additional servers to your @ server declaration. each server should be assigned a unique name. 각 server 는 고유 한 이름 을 할당 해 야 합 니 다.하지만 여러 대의 기계 에서 의 조작 은 가능 하 다.
    Parallel Execution
    Envoy 는 기본적으로 서버 한 대 를 실행 하고 다른 한 대 를 실행 하 는 것 입 니 다. 그러나 parallel 옵션 을 사용 하면 몇 대의 기계 가 동시에 실행 할 수 있 습 니 다.
    Running Tasks envoy run $task/$story 옵션 을 입력 하면 -- option
    Envoy 샘플
    @servers(['web1' => '127.0.0.1', 'web2' => ['carsonlius@YOUR IP'])
    
    @story('deploy')
        @if($commit)
            push_web1
            pull_web2
        @else
            intro
        @endif
    @endstory
    
    @task('intro')
        echo 'Please input commit!';
    @endtask
    
    @task('pull_web2', ['on' => [ 'web2'], 'parallel' => true])
        cd laravel_learn
        git pull origin master
    @endtask
    
    @task('push_web1',  ['on' => [ 'web1'], 'parallel' => true])
        git add .
        git commit -m 'modify: {{ $commit }}'
        git push
        echo 'well done!'
    @endtask
    
    

    좋은 웹페이지 즐겨찾기