Pages : 1
#1 Le 15/06/2016, à 06:43
- chryslervert
nginx + reverse proxy // cacher le port dans l'url
Bonjour,
Je tache d'utiliser nginx comme proxy à l'aide de docker. J'ai donc deux conteneur:
[*] conteneur A "proxy" : nginx qui écoute sur le port 80[/*]
[*] conteneur B "serveur web" : nginx + php qui ecoute sur le port 12345[/*]
Mon IP est 81.102.50.xx.
***
Ma configuration actuelle
*Conteneur A*
docker-compose.yml
version: '2'
services:
web:
image: nginx:latest
restart: always
ports:
- 80:80
- 443:443
volumes:
- ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./etc/nginx/mime.types:/etc/nginx/mime.types:ro
- ./etc/nginx/conf.d/proxy.conf:/etc/nginx/conf.d/proxy.conf:ro
- ./etc/nginx/conf.d/fastcgi.conf:/etc/nginx/conf.d/fastcgi.conf:ro
- ./etc/nginx/sites-available:/etc/nginx/sites-available:ro
- ./etc/nginx/sites-enabled:/etc/nginx/sites-enabled:ro
- ./etc/nginx/htpasswd:/etc/nginx/htpasswd:ro
- ./var/log/nginx:/var/log/nginx
- /etc/letsencrypt:/etc/letsencrypt:ro
vim etc/nginx/nginx.conf
worker_processes 2;
worker_rlimit_nofile 2000;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
# Maximum connection number
worker_connections 1024;
}
http {
[...]
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
vim etc/nginx/sites-available/my.domain.com
server {
listen 80;
listen [::]:80;
server_name my.domain.com;
access_log off;
location / {
proxy_pass http://localhost:yy/;
proxy_cache cache;
proxy_cache_valid 12h;
expires 12h;
}
}
*Conteneur B*
docker-compose.yml
version: '2'
services:
web:
image: nginx:latest
restart: always
ports:
- 12345:80
volumes:
- ./html:/usr/share/nginx/html
- ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- /home/jbo/reverse-proxy/etc/nginx/mime.types:/etc/nginx/mime.types:ro
- /home/jbo/reverse-proxy/etc/nginx/conf.d/fastcgi.conf:/etc/nginx/conf.d/fastcgi.conf:ro
- ./var/log/nginx:/var/log/nginx
# - /etc/letsencrypt:/etc/letsencrypt:ro
links:
- php
php:
image: php:fpm
restart: always
# ports:
# - 9000:9000
volumes:
- ./html:/usr/share/nginx/html
vim etc/nginx/nginx.conf
worker_processes auto;
worker_rlimit_nofile 2000;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
# Maximum connection number
worker_connections 1024;
}
http {
[...]
server {
listen 80;
listen [::]:80;
server_name my.domain.com;
root /usr/share/nginx/html;
index index.php index.html index.htm;
[...]
}
}
***
Résultat
`http://81.102.50.xx` > ok, je vois la page par défaut de nginx
`http://81.102.50.xx:12345` > ok, je vois le site
`http://my.domain.com` > ko, je vois la page par défaut de nginx
`http://my.domain.com:12345` > ok, je vois le site
Évidemment, je souhaiterai pourvoir accéder au site à partir de l'url sans le port.
Est-ce que le problème pourrait venir de de la configuration du proxy ou du server web?
Il y a bien des propriété comme server_name_in_redirect que j'ai essayé sans succès.
J'ai créé un deuxième site avec mariadb en plus. Je rencontre le même problème (en fait actuellement, j'ai une erreur 502 mais je crois que c'est à cause de la configuration de fastcgi, au passage à faire au niveau du proxy ou du serveur web?)
Par avance, merci pour votre aide.
jb
Dernière modification par chryslervert (Le 15/06/2016, à 06:44)
Orange pressée // Ubuntu 22.04
Hors ligne
Pages : 1