MeiliSearch와 함께 HTTP/2 및 SSL을 사용하는 방법
4952 단어 meilisearchmkcertcertbotssl
따라서 SSL로 MeiliSearch 서버를 시작하는 방법을 볼 수 있습니다. 이 튜토리얼에서는 로컬에서 수행하는 방법을 간략하게 소개하지만 원격 서버에서도 동일한 작업을 수행할 수 있습니다.
우선 binary of MeiliSearch 가 필요하거나 docker를 사용할 수도 있습니다. 후자의 경우 환경 변수를 사용하여 매개변수를 전달하고 볼륨을 통해 SSL 인증서를 전달해야 합니다.
SSL 인증서를 생성하는 도구도 필요합니다. 이 방법에서는 mkcert 을 사용합니다. 그러나 원격 서버에 있는 경우 certbot 또는 인증 기관에서 서명한 인증서를 사용할 수도 있습니다.
그런 다음
curl
를 사용하여 요청을 수행합니다. --http2
옵션을 사용하여 HTTP/2 요청을 보내도록 지정하는 간단한 방법입니다.SSL 없이 HTTP/2를 사용해 보세요.
바이너리를 실행하여 시작하십시오.
./meilisearch
그런 다음 요청을 보냅니다.
curl -kvs --http2 --request GET 'http://localhost:7700/indexes'
서버에서 다음과 같은 응답을 받습니다.
* Trying ::1...
* TCP_NODELAY set
* Connection failed
* connect to ::1 port 7700 failed: Connection refused
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 7700 (#0)
> GET /indexes HTTP/1.1
> Host: localhost:7700
> User-Agent: curl/7.64.1
> Accept: */*
> Connection: Upgrade, HTTP2-Settings
> Upgrade: h2c
> HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
>
< HTTP/1.1 200 OK
< content-length: 2
< content-type: application/json
< date: Fri, 17 Jul 2020 11:01:02 GMT
<
* Connection #0 to host localhost left intact
[]* Closing connection 0
서버가 HTTP/2로 업그레이드를 시도하지만 실패했음을 온라인
> Connection: Upgrade, HTTP2-Settings
에서 볼 수 있습니다.답변
< HTTP/1.1 200 OK
은 서버가 여전히 HTTP/1을 사용하고 있음을 나타냅니다.SSL과 함께 HTTP/2를 사용해 보십시오.
이번에는 SSL 인증서를 생성하여 시작합니다. mkcert는
127.0.0.1.pem
및 127.0.0.1-key.pem
두 파일을 생성합니다.mkcert '127.0.0.1'
그런 다음 인증서와 키를 사용하여 SSL로 MeiliSearch를 구성합니다.
./meilisearch --ssl-cert-path ./127.0.0.1.pem --ssl-key-path ./127.0.0.1-key.pem
다음으로 위와 같은 요청을 하되
http://
를 https://
로 변경합니다.curl -kvs --http2 --request GET 'https://localhost:7700/indexes'
서버에서 다음과 같은 응답을 받습니다.
* Trying ::1...
* TCP_NODELAY set
* Connection failed
* connect to ::1 port 7700 failed: Connection refused
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 7700 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/cert.pem
CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use h2
* Server certificate:
* subject: O=mkcert development certificate; OU=quentindequelen@s-iMac (Quentin de Quelen)
* start date: Jun 1 00:00:00 2019 GMT
* expire date: Jul 17 10:38:53 2030 GMT
* issuer: O=mkcert development CA; OU=quentindequelen@s-iMac (Quentin de Quelen); CN=mkcert quentindequelen@s-iMac (Quentin de Quelen)
* SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x7ff601009200)
> GET /indexes HTTP/2
> Host: localhost:7700
> User-Agent: curl/7.64.1
> Accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS == 4294967295)!
< HTTP/2 200
< content-length: 2
< content-type: application/json
< date: Fri, 17 Jul 2020 11:06:27 GMT
<
* Connection #0 to host localhost left intact
[]* Closing connection 0
이제 서버가 HTTP/2를 지원하는 것을 볼 수 있습니다.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
서버가 HTTP/2 요청을 성공적으로 수신합니다.
< HTTP/2 200
Reference
이 문제에 관하여(MeiliSearch와 함께 HTTP/2 및 SSL을 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/meilisearch/how-to-use-http-2-and-ssl-with-meilisearch-h4p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)