浏览文章

文章信息

Magento2 Nginx set multisite 使用 Nginx 设置多个网站 408

步骤 1:在管理界面创建网站、商店和商店视图

请参阅在管理员中设置多个网站、商店和商店视图

第 2 步:创建 nginx 虚拟主机

此步骤讨论如何在店面上加载网站。您可以使用网站或商店视图;如果使用商店视图,则必须相应地调整参数值。您必须以具有权限的用户身份完成本节中的任务sudo

通过使用一个nginx 虚拟主机文件,您可以保持 nginx 配置简单干净。通过使用多个虚拟主机文件,您可以自定义每个商店(例如使用自定义位置french.mysite.mg)。

要创建一个虚拟主机(简化):

此配置扩展了nginx 配置

  1. 打开文本编辑器并将以下内容添加到名为 的新文件中/etc/nginx/sites-available/magento

    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. 验证服务器配置:

    nginx -t
    
  4. 如果成功,将显示以下消息:

    nginx: configuration file /etc/nginx/nginx.conf test is successful
    

    如果显示错误,请检查虚拟主机配置文件的语法。

  5. 在目录中创建符号链接/etc/nginx/sites-enabled

    cd /etc/nginx/sites-enabled
    
    ln -s /etc/nginx/sites-available/magento magento
    

有关 map 指令的更多详细信息,请参阅nginx 文档中的 map 指令

要创建多个虚拟主机

  1. 打开文本编辑器并将以下内容添加到名为 的新文件中/etc/nginx/sites-available/french.mysite.mg

    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,其内容如下:

    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. 验证服务器配置:

    nginx -t
    
  5. 如果成功,将显示以下消息:

    nginx: configuration file /etc/nginx/nginx.conf test is successful
    

    如果显示错误,请检查虚拟主机配置文件的语法。

  6. 在目录中创建符号链接/etc/nginx/sites-enabled

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

步骤3:修改nginx.conf.sample

提示
请勿编辑该nginx.conf.sample文件;它是核心 Commerce 文件,可能会随每个新版本更新。相反,请复制该nginx.conf.sample文件,重命名,然后编辑复制的文件。

要编辑主应用程序的 PHP 入口点

要修改nginx.conf.sample文件**:

  1. 打开文本编辑器并查看nginx.conf.sample文件<magento2_installation_directory>/nginx.conf.sample。查找以下部分:

    # 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. nginx.conf.sample在 include 语句之前使用以下两行更新文件:

    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 管理员中的french和网站的基本 URL 。german

更新法语网站基本 URL

  1. 登录 Commerce 管理员并导航至Stores > Settings > Configuration > General > Web
  2. 配置范围改为french网站。
  3. 展开“Base URLs”部分并将“Base URL”“Base Link URL”值更新为http://french.magento24.com/
  4. 展开“基本 URL(安全)”部分并将“安全基本 URL”安全基本链接 URL值更新为https://french.magento24.com/
  5. 单击“保存配置”并保存配置更改。

更新德语网站基本 URL

  1. 登录 Commerce 管理员并导航至Stores > Settings > Configuration > General > Web
  2. 配置范围改为german网站。
  3. 展开“Base URLs”部分并将“Base URL”“Base Link 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. 添加静态路由,格式如下:

    <ip-address> french.mysite.mg
    <ip-address> german.mysite.mg
    
  3. 在浏览器中访问以下任一 URL:

    http://mysite.mg/admin
    http://french.mysite.mg/frenchstoreview
    http://german.mysite.mg/germanstoreview
    
信息
  • 在托管环境中部署多个网站可能需要执行其他任务;请咨询您的托管服务提供商以获取更多信息。
  • 在云基础架构上设置 Adob​​e Commerce 需要执行其他任务;请参阅云基础架构上的 Commerce 指南中的设置多个云网站或商店

故障排除

  • 如果您的法国和德国网站返回 404 但您的管理员加载,请确保您已完成第 6 步:将商店代码添加到基本 URL
  • 如果所有 URL 都返回 404,请确保您已重新启动 Web 服务器。
  • 如果管理员不能正常运行,请确保您正确设置了虚拟主机。

原创