====== Reverse proxy ====== Ce service sert d'intermédaire entre les sites webs de MiNET et internet. Il est un intermédiaire de sécurité : le reverse proxy protège les serveurs Web des attaques provenant de l'extérieur. La ré-écriture programmable des URL permet de masquer et de contrôler, par exemple, l'architecture d'un site web interne. Mais cette architecture permet surtout le filtrage en un point unique des accès aux ressources Web. Un deuxième avantage à MiNET est que cela nous permet d'économiser nos ips publiques et de ne pas demander des ouvertures de ports tous les 4 matins à la DISI. Il nous permet de rendre accessible des sites webs hébergés dans des vlans privés. D'autres possibilités existent : l'utilisation de mémoire cache afin de décharger les serveurs webs situé derrière, par exemple. Nous utilisons **nginx** comme reverse proxy. ==== Ajouter un site ==== Rien de plus simple : c'est exactement le même principe que pour les virtual hosts d'apache. Par exemple pour bidon.fr : * Éditez le fichier **/etc/nginx/sites-available/bidon.fr** pour qu'il ressemble vaguement à ceci : server { listen 80; listen [::]:80; listen 443; listen [::]:443; server_name bidon.fr access_log /var/log/nginx/bidon.access.log; error_log /var/log/nginx/bidon.error.log; location / { proxy_pass http://192.168.102.105/; allow 157.159.40.0/21; deny all; } } Ainsi, je peux définir le fichier de log, qui y a accès (ici uniquement l'int. Pour corriger ceci si tel est votre souhait, remplacez les lignes allow et deny par allow all), qui est le serveur ciblé, avec son ip, et les ports sur lesquels on écoute. * On édite maintenant un lien entre **/etc/nginx/sites-available/bidon.fr** et **etc/nginx/sites-enabled/bidon.fr** : cd /etc/nginx/sites-enabled ln -s ../sites-available/bidon.fr * on recharge la configuration nginx : /etc/init.d/nginx reload Et voilà, ça marche ! ===== Le https ===== Le concept ici est de faire du https entre l'extérieur et *nginx*, afin de sécuriser le tout, et du http entre *nginx* : {{:wiki:services:https.png?400|}} Il va donc nous falloir les certificats : ''/etc/nginx/certs/minet.crt'' et ''/etc/nginx/certs/minet.key'' Ensuite, éditez la configuration du site dans sites-available : * Vous redirigez le http vers le https : server { listen 80; listen [::]:80; server_name site.minet.net; rewrite ^(.*)$ https://$host$1 permanent; } * Vous configurez ensuite le https pour avoir accès au site : server { listen 443; listen [::]:443; server_name site.minet.net; access_log /var/log/nginx/site.access.log; error_log /var/log/nginx/site.error.log; location / { proxy_pass http:///; } } Pour le owncloud, il faut augmenter la taille maximale des fichiers upload dans /etc/php5/fpm/php.ini : post_max_size = 1G upload_max_filesize = 1G et dans /etc/nginx/nginx.conf client_max_body_size 1G