http(및 https)를 제공하는 여러 고정식 서비스가 있습니다. 내부 http 포트(80)는 도커 수준에서 다른 포트에 매핑되므로 호스트에서 연결할 수 있습니다. 그리고 이것은 잘 작동합니다.
curl localhost:1234
컨테이너의 http 서비스로 이동합니다.
이제 포트를 지정하지 않고도 DNS를 통해 연결할 수 있기를 바랍니다(이 포트 매핑으로부터 클라이언트를 보호하고 싶습니다). nginx를 사용하여 http://myserver1
-> 로 요청을 전달하고 싶습니다 http://localhost:1234
.
nginx를 그런 식으로 구성할 수 있나요? 다음과 같이 다중 전달을 구성할 수 있습니까?
http://myserver1 --> http://localhost:1234
http://myserver2 --> http://localhost:1235
...
답변1
예, 그럴 수 있습니다.
server_name 옵션은 다음과 같이 동일한 nginx 서버에서 호스팅되는 여러 사이트 간의 가장 일치하는 항목을 찾는 데 사용됩니다.
server {
listen 80;
listen [::]:80;
server_name myserver1;
그리고 또 하나는 좋아요
server {
listen 80;
listen [::]:80;
server_name myserver2;
이렇게 하면 포트 80에서 실행될 수 있고 호출 여부에 따라 일치할 수 있습니다.http://myserver1또는http://myserver2.
이제 서비스에 연결하는 방법은 무엇입니까? 다음과 같은 업스트림 서비스 제공자를 정의할 수 있습니다.
#place this outside of the 'server{' block
upstream server1 {
server localhost:1234;
}
그런 다음 다음을 통해 리디렉션합니다.
# place this inside the 'server{' block
location / {
proxy_pass http://server1;
}