Inhaltsverzeichnis
Magento资源问题上CDN方案研究,magento资源cdn方案
Heim Backend-Entwicklung PHP-Tutorial Magento资源问题上CDN方案研究,magento资源cdn方案_PHP教程

Magento资源问题上CDN方案研究,magento资源cdn方案_PHP教程

Jul 12, 2016 am 08:58 AM
cdn magento Vorgesetzter 方案 研究 资源 问题

Magento资源问题上CDN方案研究,magento资源cdn方案

  通过对Magento的了解,发现Magento的资源文件主要分布在media、js、skin三个文件夹里,media文件夹主要包括了系统自带编辑器WYSIWYG Editor 所有编辑器涉及到的资源(Static Blocks、Pages、Product Intro、Product Images)以及Magento自主生成的媒体资源  (包含了我们允许用户上传文件的文件夹);skin文件夹主要是模板提供的样式、图片、js资源(一般我们对模板再次改造时会改到这个文件夹里的资源);js文件夹包括Magento官方的prototype、varien、scriptaculous、mage等js库以及附属资源(一般我们不会去动这个文件夹),这三个文件夹所包含的全部都是静态资源(图片、js、css、字体、文档等) 也就是我们可以CDN的文件

  通过对Magento源码的观察,网站公开方法getBaseUrl  AT  app/core/Mage/Core/Model/Store.php

<span>public</span> <span>function</span> getBaseUrl(<span>$type</span> = self::URL_TYPE_LINK, <span>$secure</span> = <span>null</span><span>)
{
    </span><span>$cacheKey</span> = <span>$type</span> . '/' . (<span>is_null</span>(<span>$secure</span>) ? 'null' : (<span>$secure</span> ? 'true' : 'false'<span>));
    </span><span>if</span> (!<span>isset</span>(<span>$this</span>->_baseUrlCache[<span>$cacheKey</span><span>])) {
        </span><span>switch</span> (<span>$type</span><span>) {
            </span><span>case</span> self::URL_TYPE_WEB:
                <span>$secure</span> = <span>is_null</span>(<span>$secure</span>) ? <span>$this</span>->isCurrentlySecure() : (bool)<span>$secure</span><span>;
                </span><span>$url</span> = <span>$this</span>->getConfig('web/' . (<span>$secure</span> ? 'secure' : 'unsecure') . '/base_url'<span>);
                </span><span>break</span><span>;

            </span><span>case</span> self::URL_TYPE_LINK:
                <span>$secure</span> = (bool) <span>$secure</span><span>;
                </span><span>$url</span> = <span>$this</span>->getConfig('web/' . (<span>$secure</span> ? 'secure' : 'unsecure') . '/base_link_url'<span>);
                </span><span>$url</span> = <span>$this</span>->_updatePathUseRewrites(<span>$url</span><span>);
                </span><span>$url</span> = <span>$this</span>->_updatePathUseStoreView(<span>$url</span><span>);
                </span><span>break</span><span>;

            </span><span>case</span> self::URL_TYPE_DIRECT_LINK:
                <span>$secure</span> = (bool) <span>$secure</span><span>;
                </span><span>$url</span> = <span>$this</span>->getConfig('web/' . (<span>$secure</span> ? 'secure' : 'unsecure') . '/base_link_url'<span>);
                </span><span>$url</span> = <span>$this</span>->_updatePathUseRewrites(<span>$url</span><span>);
                </span><span>break</span><span>;

            </span><span>case</span> self::URL_TYPE_SKIN:
            <span>case</span> self::URL_TYPE_JS:
                <span>$secure</span> = <span>is_null</span>(<span>$secure</span>) ? <span>$this</span>->isCurrentlySecure() : (bool) <span>$secure</span><span>;
                </span><span>$url</span> = <span>$this</span>->getConfig('web/' . (<span>$secure</span> ? 'secure' : 'unsecure') . '/base_' . <span>$type</span> . '_url'<span>);
                </span><span>break</span><span>;

            </span><span>case</span> self::URL_TYPE_MEDIA:
                <span>$url</span> = <span>$this</span>->_updateMediaPathUseRewrites(<span>$secure</span><span>);
                </span><span>break</span><span>;

            </span><span>default</span>:
                <span>throw</span> Mage::<span>exception</span>('Mage_Core', Mage::helper('core')->__('Invalid base url type'<span>));
        }

        </span><span>if</span> (<span>false</span> !== <span>strpos</span>(<span>$url</span>, '{{base_url}}'<span>)) {
            </span><span>$baseUrl</span> = Mage::getConfig()->substDistroServerVars('{{base_url}}'<span>);
            </span><span>$url</span> = <span>str_replace</span>('{{base_url}}', <span>$baseUrl</span>, <span>$url</span><span>);
        }

        </span><span>$this</span>->_baseUrlCache[<span>$cacheKey</span>] = <span>rtrim</span>(<span>$url</span>, '/') . '/'<span>;
    }

    </span><span>return</span> <span>$this</span>->_baseUrlCache[<span>$cacheKey</span><span>];
}</span>
Nach dem Login kopieren

URL_TYPE_MEDIA的获取方式更复杂些 我们也看看写了什么

<span>protected</span> <span>function</span> _updateMediaPathUseRewrites(<span>$secure</span> = <span>null</span>, <span>$type</span> = self::<span>URL_TYPE_MEDIA)
{
    </span><span>$secure</span> = <span>is_null</span>(<span>$secure</span>) ? <span>$this</span>->isCurrentlySecure() : (bool) <span>$secure</span><span>;
    </span><span>$secureStringFlag</span> = <span>$secure</span> ? 'secure' : 'unsecure'<span>;
    </span><span>$url</span> = <span>$this</span>->getConfig('web/' . <span>$secureStringFlag</span> . '/base_' . <span>$type</span> . '_url'<span>);
    </span><span>if</span> (!<span>$this</span>->getConfig(self::<span>XML_PATH_USE_REWRITES)
        </span>&& Mage::helper('core/file_storage_database')-><span>checkDbUsage()
    ) {
        </span><span>$urlStart</span> = <span>$this</span>->getConfig('web/' . <span>$secureStringFlag</span> . '/base_url'<span>);
        </span><span>$url</span> = <span>str_replace</span>(<span>$urlStart</span>, <span>$urlStart</span> . self::MEDIA_REWRITE_SCRIPT, <span>$url</span><span>);
    }
    </span><span>return</span> <span>$url</span><span>;
}</span>
Nach dem Login kopieren

我们可以发现所有$type 类型的 始终会从 getConfig(string configPath) 中获得,所获得保存数据库 在后台 configuration -> general Web -> Unsecure & Secure 里可以配置修改。

假设把Magento整站当做CDN源服务器,再把BASE_MEDIA_URL、BASE_SKIN_URL、BASE_JS_URL的值改成CDN的地址,是不是就对Magento的资源进行了CDN处理了呢,于是我就先把本地的机器装上了Magento来测试一番(俗话说实践是检验真理的唯一方法),由于CDN需要域名解析,我们暂时不理会也不去搞CDN,但是我们可以用重定向一个新域名来代表这个CDN,比如 hosts里加两个域名用来测试

  <span>127.0</span>.<span>0.1</span><span>       magento.yourdomain.com
  </span><span>127.0</span>.<span>0.1</span>       mage-cdn.yourdomain.com
Nach dem Login kopieren

Nginx里把原来magento.yourdomain.com的配置复制一份并删除php解析那一段保证安全。顺便在资源那加入尽可能多的资源类型(以后不够还可以再加)

重启nginx,然后登陆Magento后台 把 BASE_MEDIA_URL、BASE_SKIN_URL、BASE_JS_URL 中原来的 {{base_unsecure_url}} 都改成 http://mage-cdn.yourdomain.com/ 、{{base_secure_url}} 都改成 https://mage-cdn.yourdomain.com/ 然后保存设置 重新刷下Magento缓存 OK 大功告成。

打开http://magento.yourdomain.com/ 试试,诶 假设你用了别的模板,里面加了很多字体,你可能会看到有跨域访问的错误提示:

Font from origin <span>'</span><span>https://mage-cdn.yourdomain.com</span><span>'</span> has been blocked from loading by Cross-Origin Resource Sharing policy: No <span>'</span><span>Access-Control-Allow-Origin</span><span>'</span> header is present on the requested resource. Origin <span>'</span><span>https://magento.yourdomain.com</span><span>'</span> is therefore <span>not</span> allowed access.
Nach dem Login kopieren

他告诉你magento的站点想访问mage-cdn的一些资源但是由于没有Access-Control-Allow-Origin 头,所以我们在nginx配置mage-cdn站点里资源文件访问时统一加上 add_header Access-Control-Allow-Origin https://magento.yourdomain.com. 为什么不用*呢,假如你很大方的想别的网站也能跨域访问你的资源那你就使用*吧,我是建议那里用的绑哪里,呵呵

然后我们在打开Magento站点 进行各种测试 注册 登陆 下单 上传 后台各种编辑 OK 这次我们真的大功告成了。

加下来就是部署CDN了,登陆CDN服务商,直接将源站点设置为你的 magento.yourdomain.com  一般CDN都提供CNAME服务,那么你大方的解析一个cdn.yourdomain.com CNAME给 CDN服务商提供给你的地址 abcd.xxxx.com ,一般CDN服务商也同样提供headers 的添加 你可以为这个CDN添加需要headers,就是我们需要的跨域请求。再就是配置Magento 然后blablabla 最后你想办法让CDN服务商用你的crt证书。OK 这下可以搞定了

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1102846.htmlTechArticleMagento资源问题上CDN方案研究,magento资源cdn方案 通过对Magento的了解,发现Magento的资源文件主要分布在media、js、skin三个文件夹里,media文件...
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ein tiefer Einblick in Modelle, Daten und Frameworks: eine ausführliche 54-seitige Übersicht über effiziente große Sprachmodelle Ein tiefer Einblick in Modelle, Daten und Frameworks: eine ausführliche 54-seitige Übersicht über effiziente große Sprachmodelle Jan 14, 2024 pm 07:48 PM

Large-Scale Language Models (LLMs) haben überzeugende Fähigkeiten bei vielen wichtigen Aufgaben bewiesen, darunter das Verständnis natürlicher Sprache, die Sprachgenerierung und das komplexe Denken, und hatten tiefgreifende Auswirkungen auf die Gesellschaft. Diese herausragenden Fähigkeiten erfordern jedoch erhebliche Schulungsressourcen (im linken Bild dargestellt) und lange Inferenzzeiten (im rechten Bild dargestellt). Daher müssen Forscher wirksame technische Mittel entwickeln, um ihre Effizienzprobleme zu lösen. Darüber hinaus wurden, wie auf der rechten Seite der Abbildung zu sehen ist, einige effiziente LLMs (LanguageModels) wie Mistral-7B erfolgreich beim Entwurf und Einsatz von LLMs eingesetzt. Diese effizienten LLMs können den Inferenzspeicher erheblich reduzieren und gleichzeitig eine ähnliche Genauigkeit wie LLaMA1-33B beibehalten

Digitale Audio-Ausgangsschnittstelle auf dem Motherboard-SPDIF OUT Digitale Audio-Ausgangsschnittstelle auf dem Motherboard-SPDIF OUT Jan 14, 2024 pm 04:42 PM

Reihenfolge der SPDIFOUT-Verbindungsleitungen auf dem Motherboard. Ich bin kürzlich auf ein Problem bezüglich der Verdrahtungsreihenfolge der Drähte gestoßen. Ich habe online nachgesehen, dass 1, 2 und 4 Ausgang, +5 V und Masse entsprechen, während andere Informationen besagen, dass 1, 2 und 4 Ausgang, Masse und +5 V entsprechen. Am besten schauen Sie im Handbuch Ihres Motherboards nach. Wenn Sie das Handbuch nicht finden, können Sie es mit einem Multimeter messen. Suchen Sie zuerst nach der Erdung, dann können Sie die Reihenfolge der restlichen Verkabelung bestimmen. So schließen Sie die VDG-Verkabelung des Motherboards an. Wenn Sie die VDG-Verkabelung des Motherboards anschließen, müssen Sie ein Ende des VGA-Kabels an die VGA-Schnittstelle des Monitors und das andere Ende an die VGA-Schnittstelle der Grafikkarte des Computers anschließen. Bitte achten Sie darauf, es nicht an den VGA-Anschluss des Motherboards anzuschließen. Sobald die Verbindung hergestellt ist, können Sie es tun

So finden Sie Ressourcen auf einer 115-Netzwerkfestplatte So finden Sie Ressourcen auf einer 115-Netzwerkfestplatte Feb 23, 2024 pm 05:10 PM

Auf der 115-Netzwerkfestplatte befinden sich viele Ressourcen. Wie findet man also Ressourcen? Benutzer können in der Software nach den benötigten Ressourcen suchen, dann die Download-Schnittstelle aufrufen und dann das Speichern auf der Netzwerkfestplatte auswählen. Diese Einführung in die Methode zum Auffinden von Ressourcen auf 115 Netzwerkfestplatten kann Ihnen den spezifischen Inhalt erklären. Im Folgenden finden Sie eine detaillierte Einführung. Schauen Sie sich um. Wie finde ich Ressourcen auf 115 Netzwerkfestplatten? Antwort: Suchen Sie den Inhalt in der Software und klicken Sie dann, um ihn auf der Netzwerkfestplatte zu speichern. Ausführliche Einführung: 1. Geben Sie zunächst die gewünschten Ressourcen in der App ein. 2. Klicken Sie dann auf den angezeigten Schlüsselwort-Link. 3. Rufen Sie dann die Download-Oberfläche auf. 4. Klicken Sie im Inneren auf „Auf Netzwerkfestplatte speichern“.

Probleme bei der Bewertung des Clustering-Effekts in Clustering-Algorithmen Probleme bei der Bewertung des Clustering-Effekts in Clustering-Algorithmen Oct 10, 2023 pm 01:12 PM

Das Problem der Clustering-Effektbewertung im Clustering-Algorithmus erfordert spezifische Codebeispiele. Clustering ist eine unbeaufsichtigte Lernmethode, die ähnliche Stichproben durch Clustering von Daten in eine Kategorie gruppiert. Bei Clustering-Algorithmen ist die Bewertung des Clustering-Effekts ein wichtiges Thema. In diesem Artikel werden mehrere häufig verwendete Indikatoren zur Bewertung des Clustering-Effekts vorgestellt und entsprechende Codebeispiele gegeben. 1. Clustering-Effekt-Bewertungsindex Silhouette-Koeffizient Der Silhouette-Koeffizient bewertet den Clustering-Effekt, indem er die Nähe der Stichprobe und den Grad der Trennung von anderen Clustern berechnet.

Warum hatte Han Xiaoquan plötzlich keine Ressourcen mehr? Warum hatte Han Xiaoquan plötzlich keine Ressourcen mehr? Feb 24, 2024 pm 03:22 PM

Han Xiaoquan ist eine Software, mit der man viele koreanische Dramen ansehen kann. Warum gibt es also plötzlich keine Ressource mehr? Aufgrund von Netzwerkproblemen, Versionsproblemen oder Urheberrechtsproblemen verfügt diese Software möglicherweise nicht über Ressourcen. Dieser Artikel über den Grund, warum Han Xiaoquan plötzlich keine Ressourcen mehr hat, kann Ihnen den spezifischen Inhalt erklären. Im Folgenden finden Sie eine detaillierte Einführung. Schauen Sie sich um. Warum hatte Han Xiaoquan plötzlich keine Ressourcen mehr? Antwort: Aufgrund von Netzwerkproblemen, Versionsproblemen und Urheberrechtsproblemen, detaillierte Einführung: 1. Lösung von Netzwerkproblemen: Sie können ein anderes Netzwerk auswählen und sich dann erneut bei der Software anmelden, um es zu versuchen . 2. Lösung von Versionsproblemen: Benutzer können die neueste Version dieser Software von der offiziellen Website herunterladen. 3. Lösungen für Urheberrechtsprobleme: Einige koreanische Dramen werden aufgrund von Urheberrechtsproblemen aus den Regalen genommen. Sie können andere koreanische Dramen zum Ansehen auswählen.

Erfahren Sie, wie Sie häufige iPhone-Probleme diagnostizieren Erfahren Sie, wie Sie häufige iPhone-Probleme diagnostizieren Dec 03, 2023 am 08:15 AM

Das iPhone ist für seine leistungsstarke Leistung und seine vielseitigen Funktionen bekannt und ist nicht immun gegen gelegentliche Probleme oder technische Schwierigkeiten, ein häufiges Merkmal komplexer elektronischer Geräte. iPhone-Probleme können frustrierend sein, aber normalerweise ist kein Alarm erforderlich. In diesem umfassenden Leitfaden möchten wir einige der am häufigsten auftretenden Herausforderungen im Zusammenhang mit der iPhone-Nutzung entmystifizieren. Unser Schritt-für-Schritt-Ansatz soll Ihnen bei der Lösung dieser häufigen Probleme helfen und praktische Lösungen und Tipps zur Fehlerbehebung bieten, damit Ihre Geräte wieder einwandfrei funktionieren. Unabhängig davon, ob Sie mit einer Störung oder einem komplexeren Problem konfrontiert sind, kann Ihnen dieser Artikel dabei helfen, diese effektiv zu beheben. Allgemeine Tipps zur Fehlerbehebung Bevor wir uns mit den spezifischen Schritten zur Fehlerbehebung befassen, finden Sie hier einige hilfreiche Tipps

I2V-Adapter aus der SD-Community: keine Konfiguration erforderlich, Plug-and-Play, perfekt kompatibel mit dem Tusheng-Video-Plug-in I2V-Adapter aus der SD-Community: keine Konfiguration erforderlich, Plug-and-Play, perfekt kompatibel mit dem Tusheng-Video-Plug-in Jan 15, 2024 pm 07:48 PM

Die Aufgabe der Bild-zu-Video-Generierung (I2V) ist eine Herausforderung im Bereich Computer Vision, die darauf abzielt, statische Bilder in dynamische Videos umzuwandeln. Die Schwierigkeit dieser Aufgabe besteht darin, dynamische Informationen in der zeitlichen Dimension aus einem einzelnen Bild zu extrahieren und zu generieren und dabei die Authentizität und visuelle Kohärenz des Bildinhalts zu wahren. Bestehende I2V-Methoden erfordern häufig komplexe Modellarchitekturen und große Mengen an Trainingsdaten, um dieses Ziel zu erreichen. Kürzlich wurde ein neues Forschungsergebnis „I2V-Adapter: AGeneralImage-to-VideoAdapter for VideoDiffusionModels“ unter der Leitung von Kuaishou veröffentlicht. Diese Forschung stellt eine innovative Bild-zu-Video-Konvertierungsmethode vor und schlägt ein leichtes Adaptermodul vor, d. h.

VPR 2024 perfektes Ergebnispapier! Meta schlägt EfficientSAM vor: schnell alles aufteilen! VPR 2024 perfektes Ergebnispapier! Meta schlägt EfficientSAM vor: schnell alles aufteilen! Mar 02, 2024 am 10:10 AM

Diese Arbeit von EfficientSAM wurde mit einer perfekten Bewertung von 5/5/5 in CVPR2024 aufgenommen! Der Autor teilte das Ergebnis in den sozialen Medien mit, wie im Bild unten gezeigt: Der Gewinner des LeCun Turing Award hat dieses Werk ebenfalls wärmstens empfohlen! In einer aktuellen Forschung haben Meta-Forscher eine neue, verbesserte Methode vorgeschlagen, nämlich das Mask Image Pre-Training (SAMI) unter Verwendung von SAM. Diese Methode kombiniert MAE-Vortrainingstechnologie und SAM-Modelle, um hochwertige vorab trainierte ViT-Encoder zu erhalten. Durch SAMI versuchen Forscher, die Leistung und Effizienz des Modells zu verbessern und bessere Lösungen für Sehaufgaben bereitzustellen. Der Vorschlag dieser Methode bringt neue Ideen und Möglichkeiten zur weiteren Erforschung und Entwicklung der Bereiche Computer Vision und Deep Learning. durch die Kombination verschiedener

See all articles