2016-12-07 8 views
2

나는 클라이언트를 위해 구축 한 사이트의 공유 호스팅 환경으로 사용하는 서버 (호스팅 된 VPS)를 관리합니다. 앞으로 구축 할 모든 새 사이트는 HTTPS에서 실행되지만 대부분의 이전 사이트는 HTTPS를 지원하도록 구성되지 않습니다. 우리는 언젠가 모든 것을 곧 바꿀 것 같지만, 우리는 아직 거기에 있지 않습니다.비 SSL/TLS 웹 사이트와 공유되는 서버에서 HTTP/2를 안전하게 활성화 할 수 있습니까?

HTTP/2를 사용하도록 설정하여 새 사이트에서 사용할 수 있도록하고 싶지만 지금은 HTTP/1을 통해 계속 제공되어야하는 기존 사이트를 간섭 할 수 없습니다. SSL/TLS 인증서가없는 사이트는 자동으로 HTTP/1로 대체되거나 브라우저가 HTTP/2 지원을 감지하고 SSL/TLS를 통해 연결하려고 시도하여 유효하지 않은 인증서 보안 경고를 생성합니까? 올바른 행동을하기 위해 할 수있는 일이 있습니까?

우리는 Phenk Onyx 17을 CentOS 6에서 실행하고 있으며, nginx를 리버스 프록시로 사용하는 Apache를 사용합니다 (중요한 경우).

+0

Nginx는 다른 구성을 가진 여러 사이트를 제공 할 수 있습니다. 그러면 HTTP/1을 사용하여 하나의 사이트를 제공하고 다른 사이트는 HTTP/2 + HTTPS를 사용하여 제공 할 수 있습니다. – laike9m

+0

Plesk를 사용하지 않고 Nginx conf 파일을 편집 할 수있는 권한을 부여합니까? – laike9m

+0

저는 주로 개발자이며 대부분의 서버 관리에 Plesk를 사용합니다. Plesk에는 알고있는 사이트 단위로 HTTP 버전을 설정할 수있는 옵션이 없습니다. 나는 nginx 설정 파일에 익숙하지 않은 제한이 있기 때문에 여기서 확실한 대답을 찾을 수 없다. 개별 사이트의 구성 파일을 개별적으로 수동으로 편집해야한다고 제안하는 경우 올바른 대답입니다. 그러나 "공유 호스팅"이란 공유 IP상의 가상 호스트를 의미합니다. 나는 그 nginx가 IP 주소에 의해서만 다른 HTTP 프로토콜을 구성 할 수 있다고 생각했다. 비록 그것이 유일한 해결책이라면 나는 아마도 2 차 IP를 스윙 할 수있을 것이다. –

답변

0
upstream oldhttp1site { 
    server 127.0.0.1:8000; # Apache instance listens on port 8000 
} 

upstream newhttp2site { 
    server 127.0.0.1:8001; 
} 

http { 
    server { 
     listen  80; 
     server_name www.domain1.com; 
     proxy_pass http://localhost:8000/; 
    } 

    server { 
     listen 443 ssl http2 default_server; 
     server_name www.domain2.com; 

     ssl_certificate /path-to/yoursite.chain.crt; 
     ssl_certificate_key /path-to/yoursite.key; 
     # other HTTP/2 and SSL specific settings 

     proxy_pass http://localhost:8001/; 
    } 
} 

절대적으로 가능합니다. 당신에게 기본적인 아이디어를주기 위해서.