Aller au contenu

Correction Photostation Pour Le Support Du Reverse Proxy


devildant

Messages recommandés

Bonjour à toutes et à tous,

Tout d'abord bonne fête ^^.

Aujourd'hui je vous propose un petit tuto qui permet au toké comme moi de bénéficier pleinement de photostation et ds photo en reverse proxy.

ce tuto va permettre entre autres de :

A ) bénéficier du blocage des IP avec ds photo en reverse proxy

B ) de la connexion automatique a photostation via DSM quand il est utilisé avec reverse proxy.

C ) de bénéficier de pixlr avec un reverse proxy et en https forcé (http fonctionne également)

prérequis :

1) un accès ssh sur votre syno

2) avoir putty

3) avoir photostation ^^

Étape 1: conf

Pour DSM 4.3 et inférieur :

création d'un fichier .htaccess

1) connectez-vous avec putty en ssh à votre syno en root

2) entrez la commande suivante :

cd /volume1/@appstore/PhotoStation/

3) créer un fichier htaccess

vi .htaccess

Appuyer sur la touche i, puis copier le contenu ci-dessous et faite un click droit dans vôtre fenêtre putty pour coller le texte copier

php_value auto_prepend_file "/volume1/@appstore/PhotoStation/checkerProxy.php"

Fermer le ficher en appuyant sur échap puis tapez :wq et valider avec la touche entrer.

Pour DSM 5+ :

1) connectez-vous avec putty en ssh à votre syno en root

2) entrez la commande suivante :

cd /etc/php/conf.d/

3) Édité le fichier user_settings.ini avec la commande suivante :

vi user-settings.ini 

4) ajouté la ligne suivante en début de fichier :

user_ini.filename = .user.ini 

Fermer le ficher en appuyant sur échap puis tapez :wq et valider avec la touche entrer.

5) Créer le fichier user.ini :

vi .user.ini 

6) Ajouter la ligne suivante dans le fichier :

auto_prepend_file = "/volume1/web/remote/checkerProxy.php" 

Fermer le ficher en appuyant sur échap puis tapez :wq et valider avec la touche entrer.

7) redémarrage d'apache :

/usr/syno/sbin/synoservicecfg --restart httpd-user

Etape 2 :

1) créer le fichier checkerProxy.php

vi checkerProxy.php

Appuyer sur la touche i, puis copier le contenu ci-dessous et faite un click droit dans vôtre fenêtre putty pour coller le text copier

if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
	if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') 
	{
                $ip = explode(",", $_SERVER['HTTP_X_FORWARDED_FOR']);
        	$_SERVER['REMOTE_ADDR'] = $ip[0];
        }
}
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
{
if ($_SERVER['SERVER_PORT']=='80')
       $_SERVER['SERVER_PORT']='443';
       $_SERVER['HTTPS']='on';
}

Jusqu'ici ces modification permettre de patch les points A et B, le point C est partielement patché

Étape 3: Correction de pixlr

Executer la commande ci-dessous (elle permet d'éditer le fichier js defaillant)

vi /volume1/@appstore/PhotoStation/photo/javascripts/synophoto_one_admin.js

ensuite faite echap puis tapper (la commande ci-dessous permet de rechercher le terme dans le document)

/pixlr.com

Appuyer sur la touche n jusqu'a avoir trouvez la partie ci-dessous

var a=String.format("{0}//pixlr.com/{1}/?method=get","http:",c.type);

Pour corriger le problème, il suffit de remplacer "http:" par location.protocol

Pour effectuer la modification, placer le curseur sur la " de "http:" appuyer ensuite 7 fois sur la touche x pour supprimer "http:", une fois cela enlevé appuyer sur la touche i et entrer le text ci-dessous

location.protocol

vous devrez au final avoir ceci :

var a=String.format("{0}//pixlr.com/{1}/?method=get",location.protocol,c.type);

Pour finir, ecrivez vos modification et quitter le fichier, pour cela faites échap puis entrer :wq

ATTENTION a se que vous faites, si jamais vous voulez quitter l'edition du fichier sans sauvegardez faite échap puis :q!

Pour information j'ai deja transmit mes modifications a synology, j'espere qu'il en prendront compte

Note modif :

suite au commentaire de pomeh j'ai modifié le script php, merci a lui pour ça remarque

Modifié par devildant
Lien vers le commentaire
Partager sur d’autres sites

Je n'ai pas encode de NAS donc je pourrais pas dire si le patch fonctionne bien ou pas. En revanche je fais du développement PHP et je me permet une petite remarque sur cette ligne:

$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
En cas d'utilisation de plusieurs reverse proxy, la valeur de "$_SERVER['HTTP_X_FORWARDED_FOR']" contient une liste d'IP séparées par des virgules, et la première valeur étant celle du client d'origine (cf. https://en.wikipedia.org/wiki/X-Forwarded-For#Format). Il faut pouvoir gérer ces cas car la valeur de "$_SERVER['REMOTE_ADDR']" doit forcément être une IP simple, et non une liste d'IP.
Lien vers le commentaire
Partager sur d’autres sites

Je n'ai pas encode de NAS donc je pourrais pas dire si le patch fonctionne bien ou pas. En revanche je fais du développement PHP et je me permet une petite remarque sur cette ligne:

$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
En cas d'utilisation de plusieurs reverse proxy, la valeur de "$_SERVER['HTTP_X_FORWARDED_FOR']" contient une liste d'IP séparées par des virgules, et la première valeur étant celle du client d'origine (cf. https://en.wikipedia.org/wiki/X-Forwarded-For#Format). Il faut pouvoir gérer ces cas car la valeur de "$_SERVER['REMOTE_ADDR']" doit forcément être une IP simple, et non une liste d'IP.

Bonsoir,

on en apprend tous les jours :) je ne connaissais pas cette subtilité, je vais appliquer une correction dans ce cas.

bon après il faut avouer que a part sur mon syno je n'utilise que très rarement les reverse proxy, et cela même au boulot, sauf dans le cas de loadbalancing (front/middle) simple ^^

après je suis conscient que la solution que j'apporte est "sale" mais c'est la plus simple et la plus rapide a mettre en place. j'ai communiquer a synology les endroits précis du code de photostation responsable des bugs.

ps : il fonction vue que je l'utilise :P

Modifié par devildant
Lien vers le commentaire
Partager sur d’autres sites

Hello Devildant,

Ton tuto m'intèresse mais j'ai plusieurs interrogations :

- Ou peut-on trouver le package HAProxy ? Impossible de le récupérer, même sur http://www.synocommunity.com/packages

- J'ai installé un Reverse Proxy avec cette méthode :

Ca marche très bien sauf qu'à chaque mise à jour de la DSM, je suis obligé de rajouter une ligne de code à la main. Pas très pratique et puis je suis confronté aussi aux problèmes que tu évoques A,B et C. Donc si je comprends bien, le package HAProxy est plus convivial avec une interface grapique et évite de rajouter une ligne à la mano lors des MAJ ?

- Tes modifs sont à refaire à chaque mise à jour de la DSM?

Lien vers le commentaire
Partager sur d’autres sites

Hello Devildant,

Ton tuto m'intèresse mais j'ai plusieurs interrogations :

- Ou peut-on trouver le package HAProxy ? Impossible de le récupérer, même sur http://www.synocommunity.com/packages

- J'ai installé un Reverse Proxy avec cette méthode :

Ca marche très bien sauf qu'à chaque mise à jour de la DSM, je suis obligé de rajouter une ligne de code à la main. Pas très pratique et puis je suis confronté aussi aux problèmes que tu évoques A,B et C. Donc si je comprends bien, le package HAProxy est plus convivial avec une interface grapique et évite de rajouter une ligne à la mano lors des MAJ ?

- Tes modifs sont à refaire à chaque mise à jour de la DSM?

Bonjour,

oui haproxy vous permet d'éviter de reconfigurer le reverse proxy apres les maj dsm.

concernant mes modifs, il faudra les refaire a chaque maj de photostation mais une fois qu'on a pris le coup de main sa se fait tres vite, c'est pour cela que j'ai transmit mes modif a synology, normalement d'apres ma conversation avec eu le "A) bénéficier du blocage des IP avec ds photo en reverse proxy devrait etre corrigé"

apres concernant le B ) et le C) j'y travail ^^.

j'ai mis ce tuto pour ceux qui veulent patché le plus rapidement possible photstation

Modifié par devildant
Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Bon, si ça intéresse quelqu'un, après de longues heures de bataille avec HAProxy et la documentation... j'ai réussi a mettre PhotoStation derriere HAProxy avec un sous-domaine : pics.MONDOMAINE.FR

2 Petites précisions :

  • Le apache de mon syno tourne sur le 10080 et non plus sur le 80.
  • HAproxy tourne sur le 80 / 443

J'ai configurer HAproxy comme cela :

Frontends :

Nom : HTTPS

Binds : :443 ssl crt /usr/local/haproxy/var/crt/default.pem

Backend par défaut : web

Options : option http-server-close,option forwardfor,rspirep ^Location: http://(.*)$ Location: https://1, acl photo_path path_beg /photo/, redirect prefix https://pics.MONDOMAINE.FR/photo code 301 if { hdr(Host) -i pics.MONDOMAINE.FR } !photo_path

Nom : HTTP

Binds : :80

Backend par défaut : web

Options : redirect scheme https unless { hdr(Host) -i www.MONDOMAINE.FR }

Backends :

Nom : photostation
Serveurs : photostation localhost:10080 check
Options:

Associations :

Frontend: HTTPS
Backend: Photostation
Condition: if { hdr(Host) -i pics.MONDOMAINE.FR }

Voila, j'espère que ça interressera quelqu'un après m'etre cassé la tete pour finalement pas grand chose :P

Modifié par NOTHiNG_Fr
Lien vers le commentaire
Partager sur d’autres sites

wowo !!!!

la tu m'intéresse !!

j'ai pas tous compris au niveau de ce code, de haproxy.

je regarde sur mon nas ce que j'ai et je reviens avec surement des questions.

mais ca ne me semble pas être le lieu. ( je ne veux pas pourri ce poste)

je peux t'écrire en PM dans ce cas ???

Via

edit : j'ai posté mes questions sur ce lien si tu veux bien y repondre , je t'en remerci d'avance

Modifié par via78
Lien vers le commentaire
Partager sur d’autres sites

  • 6 mois après...

Bonjour à tous,

Cela ne fonctionne pas chez moi, j'ai "Désolé, la page que vous recherchez est introuvable.".

Un problème avec le script php ?

Je précisie que j'utilise la dernière version de DSM 5.0 : DSM 5.0-4493 Update 3

Merci à vous :)

Fabien

Modifié par Moonface
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.