Salut
j’utilise un FreeBSD avec une jail nginx pour reverse proxy vers différents services selon le nom dns
et dans certains cas, selon l'uri
ma conf est en gros :
dans /usr/local/etc/nginx/nginx.conf
Code:
user www;
worker_processes 2;
events {
worker_connections 1024;
multi_accept off;
}
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 64;
client_max_body_size 64m;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 60;
keepalive_requests 100;
#gzip on;
include sites-enabled/vhost_*.conf;
}
dans un répertoire /usr/local/etc/nginx/site_enabled
un fichier default :
Code:
server {
listen 80 default_server;
server_name localhost;
index index.html index.htm;
server_tokens 'off';
location '/.well-known/acme-challenge' {
default_type "text/plain";
root /www/letsencrypt-auto;
}
}
qui ne sert qu'à letsencrypt pour renouveler mes certifcats ssl
un fichier par vhost sur ce modèle :
Code:
server {
listen 443 ssl;
server_name $MY_FQDN;
index index.html index.htm;
server_tokens 'off';
ssl_certificate /$PATH_TO_MY_FQDN_CERT/fullchain.pem;
ssl_certificate_key /$PATH_TO_MY_FQDN_KEY/privkey.pem;
ssl_session_cache shared:SSL:1m;
ssl_protocols TLSv1.2;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_prefer_server_ciphers on;
ssl_dhparam /usr/local/etc/letsencrypt/dhparam.pem;
location / {
proxy_pass http://$MON_SERVICE_INTERNE:$SON_PORT/;
}
}
cas d'un vhost redirigeant selon l'uri
Code:
server {
listen 443 ssl;
server_name $AUTRE_FQDN;
index index.html index.htm;
server_tokens 'off';
ssl_certificate /usr/local/etc/letsencrypt/live/$AUTRE_FQDN/fullchain.pem;
ssl_certificate_key /usr/local/etc/letsencrypt/live/$AUTRE_FQDN/privkey.pem;
ssl_session_cache shared:SSL:1m;
ssl_protocols TLSv1.2;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_prefer_server_ciphers on;
ssl_dhparam /usr/local/etc/letsencrypt/dhparam.pem;
location / {
proxy_pass http://$SITE_INTERNE/;
sub_filter 'http://$SITE_INTERNE/' 'https://$AUTRE_FQDN/';
sub_filter_last_modified on;
}
location /service1/ {
proxy_pass http://ip_service1:81/;
}
location /service2/ {
proxy_pass http://ip_service2:81/;
}
}
l'ordre des location est importante....
je crois que j'avais utilisé sub_filter pour éviter que le site renvois la vrai url dans un cas ou détecte que le service est via un reverse proxy.. je sais plus...
si tu héberges une jail nginx sur ton Freenas et que tu reverseproxy des services sur ton Freenas, pas forcément besoin de ssl entre eux je dirais
pour tester, modifies ton fichier hosts et testes en interne ton reverse proxy
en espérant que ca peut t'aider