Server Support Forum
Anzeige:
Apache Reverse Proxy: JSON in HTML verpackt :(

Zurück   Server Support Forum > >

Anzeige:

Antwort
 
Themen-Optionen Thema bewerten
  #1  
Alt 19.05.2017, 13:19
greystone greystone ist gerade online
Registered User
 
Registriert seit: 05.2016
Beiträge: 180
[gelöst] Apache Reverse Proxy: JSON in HTML verpackt :(

Hallo zusammen,

ich habe hier ein kleines Problem. Ich habe eine Webseite, vor die ich einen Apache als Reverse-Proxy davor geschaltet habe. Der Grund dafür ist, dass
ich eine eigenen Hostnamen für die Seite habe, der beim Benutzer einen SSL-Fehler produziert.(SSL-Zertifikat enthält nicht den Namen der angesprochenen Webseite). Ist ja ganz klar. Der Grund für den Umstand ist, dass ich auch die Anwendung dahinter gebrandet habe. Sprich eigenes Logo, und Design, was der Webserver anzeigt, wenn er unter meiner Domain aufgerufen wird.

Deswegen der Reverse-Proxy, der also mein SSL-Zertifikat enthält und hintenrum den obigen Fehler stillschweigend akzeptiert.

Das Problem ist jetzt, dass das verwendete Apache-Modul mod_proxy_html die AJAX-Requests sprich die JSON-Daten manipuliert, so dass letztlich das JSON in HTML eingebettet wird und demzufolge das clientseitige Javascript mit Fehlern abbricht(JSON: Cannot parse...).

Hier erst mal die Apache Konfiguration:
https://pastebin.com/L88zRUeT

So sehen die JSON-Daten aus:

Mit Reverse-Proxy:

Code:
<html><body><p>{&quot;pager&quot;:&quot;</p><div class="\&quot;navbar" paginator-widget-wrapper>\n  
  <form class="\&quot;form-inline" change-items-per-page-form pull-left action="\&quot;\/quarantine.php
\&quot;" method="\&quot;get\&quot;">\n        <div class="\&quot;input-group" input-group-sm>\n
...
Ohne Reverse-Proxy:

Code:
{"pager":"<div class=\"navbar paginator-widget-wrapper\">\n    <form class=\"form-inline change-items-per-page-form
 pull-left\" action=\"\/quarantine.php\" method=\"get\">\n        <div class=\"input-group input-group-sm
\">\n            <div class=\"form-control-static\">\n                Seite 1 von 29. Eintr\u00e4ge gesamt
: 1416. Eintr\u00e4ge pro Seite:\n         
...
Bisherige Versuche:
  • LocationMatch auf die URL(Geht aber nicht, weil URL-Parameter nicht in den Match einbezogen werden).
  • Idee, JSON-Dokumente irgendwie als Ausnahme zu definieren.(Ich habe noch nicht verstanden, wie das gehen könnte.

Umgebung: Debian 8 / Apache 2.4.10

Zu dem Problem findet man im Internet das ein oder andere. Das Besondere in dem Fall ist, dass die URLs die JSON und normales HTML produzieren hier so vermischt sind.

Habt Ihr eine Idee, wie man da weiterkommen könnte?

Geändert von greystone (19.05.2017 um 15:57 Uhr)
Mit Zitat antworten

  #2  
Alt 19.05.2017, 15:34
Benutzerbild von Joe User
Joe User Joe User ist offline
Registered User
 
Registriert seit: 11.2008
Ort: Hamburg
Alter: 38
Beiträge: 3.758
Packe die JSON ordnungsgemäss in passende <script>-Tags, dann läufts auch.
__________________
PayPal.Me/JoeUserWings for LifeWings for Life World Run
RootForum CommunityRootForum FacebookRootForum TwitterFreeBSD Remote Installation

„If there’s more than one possible outcome of a job or task, and one of those outcomes will result in disaster or an undesirable consequence, then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Mit Zitat antworten
  #3  
Alt 19.05.2017, 15:40
GwenDragon GwenDragon ist offline
Registered User
 
Registriert seit: 12.2008
Ort: Franken
Alter: 56
Beiträge: 2.798
Welchen Mime-Type lieferst du denn aus bei JSON-Daten?
application/json oder was?
__________________
die Gwen, also die Drachin... nix anderscht!
Mit Zitat antworten
  #4  
Alt 19.05.2017, 15:48
greystone greystone ist gerade online
Registered User
 
Registriert seit: 05.2016
Beiträge: 180
Zitat:
Packe die JSON ordnungsgemäss in passende <script>-Tags, dann läufts auch.
Die Anwendung liegt weit ausserhalb meines Einflussbereiches.

Ansonsten scheinst Du mich missverstanden zu haben. Das ist ein AJAX-Request der JSON-zurückliefern soll. Da hat HTML absolut nix verloren.

---

Ich habe jetzt das Apache-Modul proxy_html komplett rausgeschmissen. Das ändert wohl viel mehr als mir lieb ist.

Die Änderungen, also die Ersetzungen vom versteckten Hostnamen zum Servernamen des Frontendservers habe ich jetzt mit dem Apache Modul substitute erledigt.

Damit läuft es. Das war die notwendige Ergänzung:

Code:
AddOutputFilterByType SUBSTITUTE text/html
Substitute "s/antispam.meinedomain.de/spamschutz.meinedomain.de/i"

Geändert von greystone (19.05.2017 um 15:52 Uhr)
Mit Zitat antworten
  #5  
Alt 19.05.2017, 17:58
Benutzerbild von Joe User
Joe User Joe User ist offline
Registered User
 
Registriert seit: 11.2008
Ort: Hamburg
Alter: 38
Beiträge: 3.758
Zitat:
Zitat von greystone Beitrag anzeigen
Ansonsten scheinst Du mich missverstanden zu haben. Das ist ein AJAX-Request der JSON-zurückliefern soll. Da hat HTML absolut nix verloren.
Auf Grund der Note in http://httpd.apache.org/docs/2.4/en/...roxyhtmlenable bin ich nunmal von HTML ausgegangen.


Zitat:
Zitat von greystone Beitrag anzeigen
Code:
AddOutputFilterByType SUBSTITUTE text/html
Substitute "s/antispam.meinedomain.de/spamschutz.meinedomain.de/i"
Das ist allerdings wieder falsch und wird erneut Probleme bereiten, denn JSON ist nunmal kein text/html
__________________
PayPal.Me/JoeUserWings for LifeWings for Life World Run
RootForum CommunityRootForum FacebookRootForum TwitterFreeBSD Remote Installation

„If there’s more than one possible outcome of a job or task, and one of those outcomes will result in disaster or an undesirable consequence, then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Mit Zitat antworten
  #6  
Alt 19.05.2017, 18:01
greystone greystone ist gerade online
Registered User
 
Registriert seit: 05.2016
Beiträge: 180
Zitat:
Zitat von Joe User Beitrag anzeigen
Das ist allerdings wieder falsch und wird erneut Probleme bereiten, denn JSON ist nunmal kein text/html
Da scheinst Du mich schon wieder missverstanden zu haben Die Ersetzungen sollen nicht in den JSON-Daten vorgenommen sondern in den HTML-Seiten. Dass da auch JSON-Daten durchgehen ist mir erst später aufgefallen.

Wenn ich die Ersetzung im JSON haben möchte, dann werde ich wahrscheinlich application/json verwenden.

Geändert von greystone (19.05.2017 um 18:56 Uhr)
Mit Zitat antworten
  #7  
Alt 19.05.2017, 18:58
Benutzerbild von Joe User
Joe User Joe User ist offline
Registered User
 
Registriert seit: 11.2008
Ort: Hamburg
Alter: 38
Beiträge: 3.758
Du musst Dich schon entscheiden, entweder Du hast AJAX eingebettet in HTML, dann muss das AJAX aka Javascript auch ordnungsgemäss in <script>-Tags stehen, oder Du hast JSON-Daten, dann müssen diese allerdings auch mit dem korrekten MIME-Type ausgeliefert werden.

Dein aktueller wilder Mix führt zwangsläufig zu unvorhersehbaren Problemen...
__________________
PayPal.Me/JoeUserWings for LifeWings for Life World Run
RootForum CommunityRootForum FacebookRootForum TwitterFreeBSD Remote Installation

„If there’s more than one possible outcome of a job or task, and one of those outcomes will result in disaster or an undesirable consequence, then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Mit Zitat antworten
Antwort

Lesezeichen


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wordpress admin on Nginx / Apache (reverse proxy) results sometimes in 500, sometimes user12345678 Webserver 0 18.11.2013 12:19
[apache] "you don't have permission to access" .psd Webserver 1 06.12.2012 12:11
Hack Angriffe erfolgreich / erfolglos? freakshow10000 Dedizierte Server 10 23.10.2011 01:52
[Fedora 9] Apache Berechtigungen werden nicht angenommen DooMRunneR Webserver 1 05.06.2008 14:18
Apache optimieren / Apache lahmt combat Webserver 14 20.05.2007 11:47


Apache Reverse Proxy: JSON in HTML verpackt :(
Apache Reverse Proxy: JSON in HTML verpackt :(
Apache Reverse Proxy: JSON in HTML verpackt :( Apache Reverse Proxy: JSON in HTML verpackt :(
Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2017 DragonByte Technologies Ltd.