Nginx를 사용하여 여러 웹 사이트 설정

다음과 같이 가정합니다.

  • 개발 컴퓨터(랩톱, 가상 컴퓨터 또는 이와 유사한 컴퓨터)에서 작업 중입니다.

    호스팅 환경에서 여러 웹 사이트를 배포하려면 추가 작업이 필요할 수 있습니다. 자세한 내용은 호스팅 공급자에게 문의하십시오.

    클라우드 인프라에서 Adobe Commerce을 설정하려면 추가 작업이 필요합니다. 이 항목에서 설명한 작업을 완료하면 Commerce on Cloud Infrastructure 안내서 ​의 여러 웹 사이트 또는 스토어 설정을 참조하십시오.

  • 하나의 가상 호스트 파일에서 여러 도메인을 허용하거나 웹 사이트당 하나의 가상 호스트를 사용합니다. 가상 호스트 구성 파일은 /etc/nginx/sites-available에 있습니다.

  • 이 자습서에서 설명한 수정 사항만 사용하여 Commerce에서 제공한 nginx.conf.sample을(를) 사용합니다.

  • Commerce 소프트웨어가 /var/www/html/magento2에 설치되어 있습니다.

  • 기본 이외의 두 개의 웹 사이트가 있습니다.

    • french.mysite.mg(웹 사이트 코드 french 및 스토어 보기 코드 fr 포함)
    • german.mysite.mg(웹 사이트 코드 german 및 스토어 보기 코드 de 포함)
    • mysite.mg은(는) 기본 웹 사이트 및 기본 스토어 보기입니다.
TIP
이러한 값을 찾는 데 도움이 필요하면 웹 사이트 만들기스토어 보기 만들기를 참조하십시오.

다음은 ngix를 사용하여 여러 웹 사이트를 설정하는 로드맵입니다.

  1. 관리자의 웹 사이트, 스토어 및 스토어 보기 설정.

  2. Nginx 가상 호스트)를 만들어 여러 웹 사이트 또는 Commerce 웹 사이트당 하나의 Nginx 가상 호스트를 매핑합니다(아래 설명된 단계).

  3. Magento이 제공한 nginx.conf.sample을(를) 사용하여 MAGE 변수 $MAGE_RUN_TYPE$MAGE_RUN_CODE의 값을 nginx에 전달합니다(아래 설명된 단계).

    • $MAGE_RUN_TYPE은(는) store 또는 website일 수 있습니다.

      • website을(를) 사용하여 상점에 웹 사이트를 로드합니다.
      • store을(를) 사용하여 상점 전면의 상점 보기를 로드합니다.
    • $MAGE_RUN_CODE은(는) $MAGE_RUN_TYPE에 해당하는 고유한 웹 사이트 또는 스토어 보기 코드입니다.

  4. Commerce 관리자에서 기본 URL 구성을 업데이트합니다.

1단계: 관리자에서 웹 사이트, 스토어 및 스토어 보기 만들기

관리에서 여러 웹 사이트, 스토어 및 스토어 보기 설정을 참조하십시오.

2단계: nginx 가상 호스트 생성

이 단계에서는 상점 첫 화면에서 웹 사이트를 로드하는 방법에 대해 설명합니다. 웹 사이트 또는 스토어 보기를 사용할 수 있습니다. 스토어 보기를 사용하는 경우 매개 변수 값을 적절하게 조정해야 합니다. sudo 권한이 있는 사용자로 이 섹션의 작업을 완료해야 합니다.

nginx 가상 호스트 파일을 하나만 사용하면 nginx 구성을 단순하고 깔끔하게 유지할 수 있습니다. 여러 가상 호스트 파일을 사용하여 각 저장소를 사용자 지정할 수 있습니다(예를 들어 french.mysite.mg의 사용자 지정 위치를 사용하도록).

가상 호스트 1개를 만들려면(간소화):

이 구성은 nginx 구성에 따라 확장됩니다.

  1. 텍스트 편집기를 열고 /etc/nginx/sites-available/magento(이)라는 새 파일에 다음 내용을 추가하십시오.

    code language-conf
    map $http_host $MAGE_RUN_CODE {
        default '';
        french.mysite.mg french;
        german.mysite.mg german;
    }
    
    server {
        listen 80;
        server_name mysite.mg french.mysite.mg german.mysite.mg;
        set $MAGE_ROOT /var/www/html/magento2;
        set $MAGE_MODE developer;
        set $MAGE_RUN_TYPE website; #or set $MAGE_RUN_TYPE store;
        include /var/www/html/magento2/nginx.conf;
    }
    
  2. 파일에 변경 사항을 저장하고 텍스트 편집기를 종료합니다.

  3. 서버 구성 확인:

    code language-bash
    nginx -t
    
  4. 성공하면 다음 메시지가 표시됩니다.

    code language-none
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    

    오류가 표시되면 가상 호스트 구성 파일의 구문을 확인합니다.

  5. /etc/nginx/sites-enabled 디렉터리에 심볼 링크를 만듭니다.

    code language-bash
    cd /etc/nginx/sites-enabled
    
    code language-bash
    ln -s /etc/nginx/sites-available/magento magento
    

map 지시문에 대한 자세한 내용은 map 지시문에서 nginx 설명서를 참조하십시오.

여러 가상 호스트를 만들려면:

  1. 텍스트 편집기를 열고 /etc/nginx/sites-available/french.mysite.mg(이)라는 새 파일에 다음 내용을 추가하십시오.

    code language-conf
    server {
        listen 80;
        server_name french.mysite.mg;
        set $MAGE_ROOT /var/www/html/magento2;
        set $MAGE_MODE developer;
        set $MAGE_RUN_TYPE website; #or set $MAGE_RUN_TYPE store;
        set $MAGE_RUN_CODE french;
        include /var/www/html/magento2/nginx.conf;
    }
    
  2. 다음 내용이 포함된 동일한 디렉터리에 german.mysite.mg(이)라는 다른 파일을 만듭니다.

    code language-conf
    server {
        listen 80;
        server_name german.mysite.mg;
        set $MAGE_ROOT /var/www/html/magento2;
        set $MAGE_MODE developer;
        set $MAGE_RUN_TYPE website; #or set $MAGE_RUN_TYPE store;
        set $MAGE_RUN_CODE german;
        include /var/www/html/magento2/nginx.conf;
    }
    
  3. 파일에 변경 사항을 저장하고 텍스트 편집기를 종료합니다.

  4. 서버 구성 확인:

    code language-bash
    nginx -t
    
  5. 성공하면 다음 메시지가 표시됩니다.

    code language-none
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    

    오류가 표시되면 가상 호스트 구성 파일의 구문을 확인합니다.

  6. /etc/nginx/sites-enabled 디렉터리에 심볼 링크를 만듭니다.

    code language-bash
    cd /etc/nginx/sites-enabled
    
    code language-bash
    ln -s /etc/nginx/sites-available/french.mysite.mg french.mysite.mg
    
    code language-bash
    ln -s /etc/nginx/sites-available/german.mysite.mg german.mysite.mg
    

3단계: nginx.conf.sample 수정

TIP
nginx.conf.sample 파일을 편집하지 마십시오. 이 파일은 각 새 릴리스로 업데이트할 수 있는 핵심 Commerce 파일입니다. 대신 nginx.conf.sample 파일을 복사하고 이름을 바꾼 다음 복사한 파일을 편집하십시오.

기본 응용 프로그램의 PHP 진입점을 편집하려면:

nginx.conf.sample 파일을 수정하려면 다음을 **.

  1. 텍스트 편집기를 열고 nginx.conf.sample 파일 <magento2_installation_directory>/nginx.conf.sample을(를) 검토합니다. 다음 섹션을 찾습니다.

    code language-conf
    # PHP entry point for main application
    location ~ (index|get|static|report|404|503|health_check)\.php$ {
        try_files $uri =404;
        fastcgi_pass   fastcgi_backend;
        fastcgi_buffers 1024 4k;
    
        fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
        fastcgi_param  PHP_VALUE "memory_limit=1G \n max_execution_time=18000";
        fastcgi_read_timeout 600s;
        fastcgi_connect_timeout 600s;
    
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    
  2. include 문 앞에 다음 두 줄로 nginx.conf.sample 파일을 업데이트합니다.

    code language-conf
    fastcgi_param MAGE_RUN_TYPE $MAGE_RUN_TYPE;
    fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;
    

기본 응용 프로그램에 대해 업데이트된 PHP 진입점의 예는 다음과 같습니다.

# PHP entry point for main application

location ~ (index|get|static|report|404|503|health_check)\.php$ {
    try_files $uri =404;
    fastcgi_pass   fastcgi_backend;
    fastcgi_buffers 1024 4k;

    fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
    fastcgi_param  PHP_VALUE "memory_limit=1G \n max_execution_time=18000";
    fastcgi_read_timeout 600s;
    fastcgi_connect_timeout 600s;

    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    # START - Multisite customization
    fastcgi_param MAGE_RUN_TYPE $MAGE_RUN_TYPE;
    fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;
    # END - Multisite customization
    include        fastcgi_params;
}

4단계: 기본 URL 구성 업데이트

Commerce 관리자의 frenchgerman 웹 사이트에 대한 기본 URL을 업데이트해야 합니다.

프랑스어 웹 사이트 기본 URL 업데이트

  1. Commerce 관리자에 로그인하고 스토어 > 설정 > 구성 > 일반 > ​으로 이동합니다.
  2. 구성 범위 ​을(를) french 웹 사이트로 변경합니다.
  3. 기본 URL 섹션을 확장하고 기본 URL기본 링크 URL 값을 http://french.magento24.com/(으)로 업데이트합니다.
  4. 기본 URL(보안) 섹션을 확장하고 보안 기본 URL보안 기본 링크 URL 값을 https://french.magento24.com/(으)로 업데이트합니다.
  5. 구성 저장 ​을 클릭하고 구성 변경 내용을 저장합니다.

독일어 웹 사이트 기본 URL 업데이트

  1. Commerce 관리자에 로그인하고 스토어 > 설정 > 구성 > 일반 > ​으로 이동합니다.
  2. 구성 범위 ​을(를) german 웹 사이트로 변경합니다.
  3. 기본 URL 섹션을 확장하고 기본 URL기본 링크 URL 값을 http://german.magento24.com/(으)로 업데이트합니다.
  4. 기본 URL(보안) 섹션을 확장하고 보안 기본 URL보안 기본 링크 URL 값을 https://german.magento24.com/(으)로 업데이트합니다.
  5. 구성 저장 ​을 클릭하고 구성 변경 내용을 저장합니다.

캐시 정리

다음 명령을 실행하여 configfull_page 캐시를 정리합니다.

bin/magento cache:clean config full_page

사이트 확인

스토어의 URL에 대해 DNS를 설정하지 않은 경우 hosts 파일의 호스트에 정적 경로를 추가해야 합니다.

  1. 운영 체제 hosts 파일을 찾습니다.

  2. 정적 경로를 다음 형식으로 추가합니다.

    code language-conf
    <ip-address> french.mysite.mg
    <ip-address> german.mysite.mg
    
  3. 브라우저에서 다음 URL 중 하나로 이동합니다.

    code language-http
    http://mysite.mg/admin
    http://french.mysite.mg/frenchstoreview
    http://german.mysite.mg/germanstoreview
    
INFO
  • 호스팅 환경에서 여러 웹 사이트를 배포하려면 추가 작업이 필요할 수 있습니다. 자세한 내용은 호스팅 공급자에게 문의하십시오.
  • 클라우드 인프라에서 Adobe Commerce을 설정하려면 추가 작업이 필요합니다. Commerce on Cloud Infrastructure 안내서 ​의 여러 클라우드 웹 사이트 또는 스토어 설정을 참조하십시오.

문제 해결

  • 프랑스어 및 독일어 사이트가 404를 반환하지만 관리자가 로드되는 경우 6단계: 기본 URL에 스토어 코드를 추가를 완료했는지 확인하십시오.
  • 모든 URL이 404를 반환하는 경우 웹 서버를 다시 시작했는지 확인하십시오.
  • 관리자가 제대로 작동하지 않는 경우 가상 호스트를 제대로 설정했는지 확인하십시오.
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c