경로 구성
.magento/routes.yaml
디렉터리의 routes.yaml
파일은 클라우드 인프라 통합, 스테이징 및 프로덕션 환경에서 Adobe Commerce의 경로를 정의합니다. 경로는 애플리케이션이 수신 HTTP 및 HTTPS 요청을 처리하는 방법을 결정합니다.
기본 routes.yaml
파일은 단일 기본 도메인이 있는 프로젝트와 여러 도메인에 대해 구성된 프로젝트에서 HTTP 요청을 HTTPS로 처리하기 위한 경로 템플릿을 지정합니다.
"http://{default}/":
type: upstream
upstream: "mymagento:http"
"http://{all}/":
type: upstream
upstream: "mymagento:http"
구성된 경로 목록을 보려면 magento-cloud
CLI를 사용하십시오.
magento-cloud environment:routes
+-------------------+----------+---------------+
| Route | Type | To |
+-------------------+----------+---------------+
| http://{default}/ | upstream | mymagento |
+-------------------+----------+---------------+
Pro 환경에 대한 구성 업데이트
routes.yaml
파일의 경로 구성과 .magento.app.yaml
파일의 cron 구성을 업데이트하려면 지원 티켓이 필요합니다. Adobe은 통합 환경에서 YAML 구성 파일을 업데이트하고 테스트한 다음 스테이징 환경에 변경 사항을 배포하는 것을 권장합니다. 다시 배포한 후 변경 사항이 스테이징 사이트에 적용되지 않고 로그에 관련 오류 메시지가 없는 경우 시도한 구성 변경 사항을 설명하는 MUST Adobe Commerce 지원 티켓을 제출합니다. 업데이트된 YAML 구성 파일을 티켓에 포함합니다.루트 템플릿
routes.yaml
파일은 템플릿으로 설정된 경로와 해당 구성 목록입니다. 경로 템플릿에서 다음 자리 표시자를 사용할 수 있습니다.
-
{default}
자리 표시자는 프로젝트의 기본값으로 구성된 정규화된 도메인 이름을 나타냅니다.예를 들어 기본 도메인이
example.com
이고 다음 경로 템플릿을 사용하는 프로젝트입니다.code language-text https://www.{default}/ https://{default}/blog
이러한 템플릿은 프로덕션 환경에서 다음 URL로 확인됩니다.
code language-text https://www.example.com/ https://example.com/blog
-
{all}
자리 표시자는 프로젝트에 대해 구성된 모든 도메인 이름을 나타냅니다.예를 들어 다음 경로 템플릿을 가진
example.com
및example1.com
도메인이 있는 프로젝트의 경우:code language-text https://www.{all}/ https://{all}/blog
이러한 템플릿은 프로젝트의 모든 도메인에 대해 다음 경로로 확인됩니다.
code language-text https://www.example.com/ https://www.example1.com/ https://example.com/blog https://example1.com/blog
{all}
자리 표시자는 여러 도메인에 대해 구성된 프로젝트에 유용합니다. 비프로덕션 분기에서{all}
은(는) 각 도메인의 프로젝트 ID 및 환경 ID로 대체됩니다.프로젝트에 개발 중에 일반적으로 사용되는 구성된 도메인이 없는 경우
{all}
자리 표시자는{default}
자리 표시자와 같은 방식으로 동작합니다.
또한 Adobe Commerce은 모든 활성 통합 환경에 대한 경로를 생성합니다. 통합 환경의 경우 {default}
자리 표시자가 다음 도메인 이름으로 대체됩니다.
[branch]-[per-environment-random-string]-[project-id].[region].magentosite.cloud
예를 들어 us
클러스터에서 호스팅되는 mswy7hzcuhcjw
프로젝트의 refactorcss
분기에는 다음 도메인이 있습니다.
https://refactorcss-oy3m2pq-mswy7hzcuhcjw.us.magentosite.cloud/
후행 슬래시
경로 정의에는 폴더 또는 디렉토리를 나타내는 후행 슬래시가 포함되어 있습니다. 그러나 동일한 컨텐츠에 후행 슬래시를 사용하거나 사용하지 않을 수 있습니다. 다음 URL은 동일하게 확인되지만 두 개의 다른 URL로 해석될 수 있습니다.
https://www.example.com/blog/
https://www.example.com/blog
경로 프로토콜
모든 환경에서는 자동으로 HTTP와 HTTPS를 모두 지원합니다.
-
구성에서 HTTP 경로만 지정하는 경우 HTTPS 경로가 자동으로 생성되므로 리디렉션 없이 HTTP와 HTTPS 모두에서 사이트를 제공할 수 있습니다.
예를 들어 기본 도메인이
example.com
이고 다음 경로 템플릿을 사용하는 프로젝트입니다.code language-text http://{default}/
이 템플릿은 다음 URL로 확인됩니다.
code language-text http://example.com/ https://example.com/
-
구성에서 HTTPS 경로만 지정하는 경우 모든 HTTP 요청은 HTTPS로 리디렉션됩니다.
예를 들어, 다음 경로 템플릿을 가진 기본 도메인이
example.com
인 프로젝트:code language-text https://{default}/
이 템플릿은 다음 URL로 확인됩니다.
code language-text https://example.com/
또한 다음 리디렉션을 처리합니다.
http://example.com/
==>https://example.com/
모든 페이지를 TLS에서 제공합니다. 이 구성의 경우 다음 방법 중 하나를 사용하여 암호화되지 않은 모든 요청에서 TLS에 해당하는 리디렉션을 구성해야 합니다.
-
routes.yaml
파일에서 프로토콜을 HTTPS로 변경합니다.code language-yaml "https://{default}/": type: upstream upstream: "mymagento:http" "https://{all}/": type: upstream upstream: "mymagento:http"
-
스테이징 및 프로덕션 환경의 경우 관리 UI에서 TLS를 Fastly로 강제 적용 옵션을 활성화합니다. 이 옵션을 사용하면 Fastly가 HTTPS로의 리디렉션을 처리하므로
routes.yaml
구성을 업데이트할 필요가 없습니다.
경로 옵션
다음 속성을 사용하여 각 경로를 별도로 구성합니다.
type: upstream
.magento.app.yaml
에 정의됨)과 :http
끝점을 지정하는 upstream
속성도 있습니다.type: redirect
to
속성이 있으며, 이 속성은 해당 템플릿으로 식별되는 다른 경로로의 HTTP 리디렉션입니다.cache:
redirects:
ssi:
단순 경로
다음 예에서 경로 구성은 apex 도메인과 www
하위 도메인을 mymagento
응용 프로그램으로 라우팅합니다. 이 경로는 HTTPS 요청을 리디렉션하지 않습니다.
예 1:
"http://{default}/":
type: upstream
upstream: "mymagento:http"
"http://www.{default}/":
type: redirect
to: "http://{default}/"
이 예에서 요청 라우팅은 다음 규칙을 따릅니다.
-
서버는 다음 URL 패턴으로 요청에 직접 응답합니다.
code language-text http://example.com/path
-
서버가 다음 URL 패턴의 요청에 대해 301 리디렉션 을 발행합니다.
code language-text http://www.example.com/mypath
이러한 요청은 Apex 도메인으로 리디렉션됩니다. 예:
code language-text http://example.com/mypath
다음 예제에서는 라우트 구성이 www 도메인에서 apex 도메인으로 URL을 리디렉션하지 않습니다. 대신 요청은 www와 apex 도메인 모두에서 제공됩니다.
예 2:
"http://{default}/":
type: upstream
upstream: "mymagento:http"
"http://www.{default}/":
type: upstream
upstream: "mymagento:http"
와일드카드 경로
클라우드 인프라의 Adobe Commerce은 와일드카드 경로를 지원하므로 여러 하위 도메인을 동일한 애플리케이션에 매핑할 수 있습니다. 리디렉션 및 업스트림 경로에 대해 작동합니다. 경로 접두사로 별표(*)를 사용합니다. 예를 들어, 다음 경로는 동일한 애플리케이션입니다.
*.example.com
www.example.com
blog.example.com
us.example.com
라이브 환경에서 다목적 캐치 도메인으로서 작동합니다.
매핑되지 않은 도메인 라우팅
점(.
)을 사용하여 도메인에 매핑되지 않은 시스템으로 라우팅하여 하위 도메인을 분리할 수 있습니다.
예:
add-theme
분기가 있는 프로젝트가 다음 URL로 라우팅됩니다.
http://add-theme-projectID.us.magento.com/
다음 경로 템플리트를 정의하는 경우
http://www.{default}/
경로는 다음 URL로 확인됩니다.
http://www.add-theme-projectID.us.magento.com/
점과 경로가 확인되기 전에 하위 도메인을 삽입할 수 있습니다.
예:
다음 경로 템플릿을 정의합니다.
http://*.{default}/
이 템플릿은 다음 URL을 모두 확인합니다.
http://foo.add-theme-projectID.us.magentosite.cloud/
http://bar.add-theme-projectID.us.magentosite.cloud/
환경에 대한 SSH 연결을 설정하고 magento-cloud
CLI를 사용하여 경로를 나열하면 매핑되지 않은 도메인에 대한 경로 패턴을 볼 수 있습니다.
vendor/bin/ece-tools env:config:show routes
Magento Cloud Routes:
+------------------------------------------+--------------------------------------------------------------+
| Route configuration | Value |
+------------------------------------------+--------------------------------------------------------------+
| http://www.add-theme-projectID.us.magento.com/: |
+------------------------------------------+--------------------------------------------------------------+
| primary | false |
| id | null |
| attributes | |
| type | upstream |
| to | mymagento |
| original_url | https:/{default}/ |
+------------------------------------------+--------------------------------------------------------------+
| https://*.add-theme-projectID.us.magentosite.cloud/: |
+------------------------------------------+--------------------------------------------------------------+
| primary | false |
| id | null |
| attributes | |
| type | upstream |
| to | mymagento |
| original_url | https://*.{default}/ |
+------------------------------------------+--------------------------------------------------------------+
리디렉션 및 캐싱
리디렉션에서 자세히 설명한 대로 부분 리디렉션 과 같은 복잡한 리디렉션 규칙을 관리하고 경로 기반 캐싱에 대한 규칙을 지정할 수 있습니다.
https://www.{default}/:
type: redirect
to: https://{default}/
https://{default}/:
cache:
cookies: [""]
default_ttl: 0
enabled: true
headers:
- Accept
- Accept-Language
ssi:
enabled: false
type: upstream
upstream: mymagento:http