2017-11-16 5 views
0

나는 윈스턴 서버 (젠킨스) 8443 젠킨스에서 수신이 유효한 인증서를 가지고 있으며, 젠킨스는 성공적으로 인증서의 종료를하고있다 :443에서 nginx 패스 스루를 만들고 80을 443으로 리디렉션하는 방법은 무엇입니까?

JENKINS_ARGS="--httpPort=-1 --httpsKeyStore=/secure/jenkins.keystore --httpsKeyStorePassword=MY_PASSWORD --httpsPort=8443" 

유일한 문제는 사용자가 지금 가야한다는 것입니다 : https://example.com:8443

URL에 해당 포트 번호가 필요하지 않습니다. 내가 원하는 :

https://example.com:8443 -> https://example.com 
https://example.com  -> https://example.com 
http://example.com  -> https://example.com 

그래서 내가 젠킨스를 실행하는 동일한 인스턴스에서 nginx를 실행하겠습니다 파악.

그래서 제 질문은 :

  1. 내가 그 nginx를 만 그것을 않습니다 있도록 인증서 해지하지하는 젠킨스를 다시 구성해야합니까?
  2. nginx는 인증서없이 localhost : 8443으로 80 및 443을 리디렉션 할 수 있습니까 (Jenkins는 CERT 종료 이후)?
  3. nginx와 Jenkins는 모두 CERT 종료해야합니까?

비슷한 질문입니다.

AWS ELB가 nginx를 대체 할 수 없다고 확신하지만 ELB가이 문제를 해결할 수 있을지도 모르겠다.

답변

1

1) 아니요, Stream Module을 사용하여 Nginx 스트림에 Jenkins에 직접 연결할 수 있습니다.

참고 : 1.9.0에 추가되었지만 기본 빌드의 일부가 아니므로 을 작성해야합니다.을 직접 작성하십시오.

블록은 httpserver 블록과 비슷하지만 http 블록 외부에 설정해야합니다.

stream { 
    upstream jenkins_server { 
     server jenkins:443; 
    } 

    server { 
     listen 443; 
     proxy_pass jenkins_server; 
    } 
} 

2) 당신은 nginx에 인증서가 필요하지 않습니다하지만 당신은 443 스트림에 301 않는 포트 80에 대한 http 서버 블록을 가져야한다는 응답 부분에 대해 이야기 1.

server { 
    listen 80; 
    server_name your_server_name_here; 
    return 301 https://$host$request_uri; 
} 

3) 아니오, 클라이언트에서 젠킨스 서버로의 SSL을 통과하기 위해 nginx 스트림을 사용할 수는 없습니다.