{"id":2437,"date":"2025-03-22T00:55:27","date_gmt":"2025-03-21T23:55:27","guid":{"rendered":"https:\/\/alessandromasciadri.com\/?p=2437"},"modified":"2025-03-22T01:01:28","modified_gmt":"2025-03-22T00:01:28","slug":"come-configurare-openlitespeed-in-modalita-transparent-proxy-verso-una-applicazione-containerizzata-con-docker","status":"publish","type":"post","link":"https:\/\/alessandromasciadri.com\/come-configurare-openlitespeed-in-modalita-transparent-proxy-verso-una-applicazione-containerizzata-con-docker\/","title":{"rendered":"Come configurare OpenLiteSpeed in modalit\u00e0 transparent proxy verso una applicazione containerizzata con Docker"},"content":{"rendered":"\t\t<div data-akihiro-type=\"ama-post\" data-akihiro-id=\"2437\" class=\"akihiro akihiro-2437\" data-akihiro-post-type=\"post\">\n\t\t\t\t<div class=\"akihiro-element akihiro-element-641c39b e-flex e-con-boxed e-con e-parent\" data-id=\"641c39b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"akihiro-element akihiro-element-753dc0a akihiro-widget akihiro-widget-text-editor\" data-id=\"753dc0a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In questo scenario dobbiamo affrontare il seguente problema. Abbiamo un web server basato su OpenLiteSpeed con vari virtual host attivi e ora abbiamo la necessit\u00e0 di far girare sullo stesso server anche una applicazione Laravel containerizzata con Docker. Vediamo in questo tutorial come impostare OpenLiteSpeed in modalit\u00e0 transparent proxy per inoltrare il traffico verso l&#8217;applicazione dockerizzata.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-81c4b87 akihiro-widget akihiro-widget-heading\" data-id=\"81c4b87\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h3 class=\"akihiro-heading-title akihiro-size-default\">Creare un nuovo Virtual Host<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-ebe4165 akihiro-widget akihiro-widget-text-editor\" data-id=\"ebe4165\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>La prima cosa da fare \u00e8 creare un Virtual Host per la nostra Laravel app. Dall&#8217;interfaccia di OpenLiteSpeed selezioniamo dal menu laterale la voce <strong>Virtual Hosts<\/strong> e premiamo sul pulsante <strong>+<\/strong>. Facciamo riferimento alla seguente immagine personalizzando con il dominio della nostra app.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-f2f10a3 akihiro-widget akihiro-widget-image\" data-id=\"f2f10a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"466\" src=\"https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-01-1024x596.png\" class=\"attachment-large size-large ama-image-2442\" alt=\"\" srcset=\"https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-01-1024x596.png 1024w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-01-300x175.png 300w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-01-768x447.png 768w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-01-1536x894.png 1536w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-01.png 1590w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-e4d46b8 akihiro-widget akihiro-widget-text-editor\" data-id=\"e4d46b8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Premiamo sul pulsante Salva e procediamo quindi con le seguenti impostazioni che si trovano nella scheda <strong>General<\/strong>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-9ef2503 akihiro-widget akihiro-widget-image\" data-id=\"9ef2503\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"163\" src=\"https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-02-1024x208.png\" class=\"attachment-large size-large ama-image-2443\" alt=\"\" srcset=\"https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-02-1024x208.png 1024w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-02-300x61.png 300w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-02-768x156.png 768w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-02-1536x312.png 1536w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-02.png 1590w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-ab6fa06 akihiro-widget akihiro-widget-text-editor\" data-id=\"ab6fa06\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>OpenLiteSpeed proxa ad altri server una volta che sono stati definiti come applicazioni esterne. Procediamo pertanto nella scheda <strong>External App<\/strong> e configuriamo i valori come nella seguente immagine opportunamente personalizzando la voce <strong>Address<\/strong>, la quale deve contenere l&#8217;IP del server e la porta esposta del container Docker su cui gira la nostra applicazione Laravel. Nel nostro esempio, l&#8217;indirizzo del server \u00e8 lo stesso su cui gira OpenLiteSpeed e pertanto usiamo <strong>localhost<\/strong>, mentre la porta \u00e8 la <strong>8000<\/strong> Laravel standard.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-4adba72 akihiro-widget akihiro-widget-image\" data-id=\"4adba72\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"406\" src=\"https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-03-1024x520.png\" class=\"attachment-large size-large ama-image-2444\" alt=\"\" srcset=\"https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-03-1024x520.png 1024w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-03-300x152.png 300w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-03-768x390.png 768w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-03-1536x780.png 1536w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-03.png 1590w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-c83f755 akihiro-widget akihiro-widget-text-editor\" data-id=\"c83f755\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Andiamo ora nella scheda <strong>Context<\/strong> ed impostiamo le due voci come nella seguente screenshot. La voce <strong>Web Server<\/strong> la selezioniamo dalla tendina che riporter\u00e0 il nome della <strong>External App<\/strong> che abbiamo appena configurato nel passaggio precedente.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-78b4c0e akihiro-widget akihiro-widget-image\" data-id=\"78b4c0e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"151\" src=\"https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-04-1024x193.png\" class=\"attachment-large size-large ama-image-2445\" alt=\"\" srcset=\"https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-04-1024x193.png 1024w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-04-300x57.png 300w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-04-768x145.png 768w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-04-1536x290.png 1536w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-04.png 1590w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"akihiro-element akihiro-element-3fec01e e-flex e-con-boxed e-con e-parent\" data-id=\"3fec01e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"akihiro-element akihiro-element-83bc41e akihiro-widget akihiro-widget-heading\" data-id=\"83bc41e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h3 class=\"akihiro-heading-title akihiro-size-default\">Aggiungere il Virtual Host nei Listener<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-cbb2753 akihiro-widget akihiro-widget-text-editor\" data-id=\"cbb2753\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ora dal menu laterale di <strong>OpenLiteSpeed<\/strong> scegliamo la voce <strong>Listeners<\/strong>. Aggiungiamo quindi il Virtual Host appena creato sia nel Listener per l&#8217;<strong>HTTP<\/strong> sia nel Listener per l&#8217;<strong>HTTPS<\/strong>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-bf9cda8 akihiro-widget akihiro-widget-image\" data-id=\"bf9cda8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"161\" src=\"https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-05-1024x206.png\" class=\"attachment-large size-large ama-image-2446\" alt=\"\" srcset=\"https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-05-1024x206.png 1024w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-05-300x60.png 300w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-05-768x155.png 768w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-05-1536x309.png 1536w, https:\/\/alessandromasciadri.com\/ama-uploads\/2025\/03\/openlitespeed-transparent-proxy-05.png 1594w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"akihiro-element akihiro-element-7e8878e e-flex e-con-boxed e-con e-parent\" data-id=\"7e8878e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"akihiro-element akihiro-element-6d0327c akihiro-widget akihiro-widget-heading\" data-id=\"6d0327c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h3 class=\"akihiro-heading-title akihiro-size-default\">Controlliamo la configurazione della nostra Laravel app<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-f7d5c33 akihiro-widget akihiro-widget-text-editor\" data-id=\"f7d5c33\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Verifichiamo che la nostra applicazione sia correttamente configurata per un ambiente di produzione. Controlliamo in particolare che nel file .env queste due variabili siano opportunamente configurate con il nome a dominio per la messa in produzione:<\/p><ul><li>APP_URL=https:\/\/my-laravel-app.com<\/li><li>ASSET_URL=&#8221;${APP_URL}&#8221;<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-0a020c5 akihiro-widget akihiro-widget-text-editor\" data-id=\"0a020c5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Notiamo che <strong>APP_URL<\/strong> \u00e8 configurato per girare in HTTPS e <strong>ASSET_URL<\/strong> ha lo stesso valore di <strong>APP_URL<\/strong>. Questa uguaglianza \u00e8 fondamentale affinch\u00e9 l&#8217;url degli assets messi a disposizione dall&#8217;applicazione Laravel sia consistente con quello dell&#8217;applicazione. La mancata configurazione di queste variabili determinerebbe il mancato funzionamento dell&#8217;applicazione in quanto gli assets (tra cui anche i file CSS e i JS compilati con <strong>Vite<\/strong>) verrebero presentati da Laravel con un URL di tipo localhost:8000.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-668ed31 akihiro-widget akihiro-widget-heading\" data-id=\"668ed31\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h3 class=\"akihiro-heading-title akihiro-size-default\">Avviamo il container della nostra Laravel app<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-e270aa6 akihiro-widget akihiro-widget-text-editor\" data-id=\"e270aa6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>A questo punto siamo pronti per avviare la nostra applicazione Laravel. Lanciamo quindi:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-c8a160c akihiro-widget akihiro-widget-code-highlight\" data-id=\"c8a160c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>docker compose up --build --force-recreate -d<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"akihiro-element akihiro-element-7acfcbf e-flex e-con-boxed e-con e-parent\" data-id=\"7acfcbf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"akihiro-element akihiro-element-6c11999 akihiro-widget akihiro-widget-heading\" data-id=\"6c11999\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h3 class=\"akihiro-heading-title akihiro-size-default\">Aggiunta del certificato SSL<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-857a84d akihiro-widget akihiro-widget-text-editor\" data-id=\"857a84d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Opportuno \u00e8 inoltre configurare la scheda SSL per il nostro Virtual Host. Per fare questo possiamo tenere come riferimento <a href=\"https:\/\/alessandromasciadri.com\/come-ottenere-un-certificato-ssl-per-openlitespeed-con-lets-encrypt\/\" target=\"_blank\" rel=\"noopener\">questa guida<\/a> che avevo scritto in precedenza: <a href=\"https:\/\/alessandromasciadri.com\/come-ottenere-un-certificato-ssl-per-openlitespeed-con-lets-encrypt\/\" target=\"_blank\" rel=\"noopener\">https:\/\/alessandromasciadri.com\/come-ottenere-un-certificato-ssl-per-openlitespeed-con-lets-encrypt\/<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>In questo scenario dobbiamo affrontare il seguente problema. Abbiamo un web server basato su OpenLiteSpeed con vari virtual host attivi e ora abbiamo la necessit\u00e0 di far girare sullo stesso server anche una applicazione Laravel containerizzata con Docker. Vediamo in questo tutorial come impostare OpenLiteSpeed in modalit\u00e0 transparent proxy per inoltrare il traffico verso l&#8217;applicazione [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[27,53],"class_list":["post-2437","post","type-post","status-publish","format-standard","hentry","category-programmazione","tag-docker","tag-openlitespeed"],"_links":{"self":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/2437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/comments?post=2437"}],"version-history":[{"count":16,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/2437\/revisions"}],"predecessor-version":[{"id":2458,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/2437\/revisions\/2458"}],"wp:attachment":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/media?parent=2437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/categories?post=2437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/tags?post=2437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}