duncanf293 Posted July 5, 2020 Report Share Posted July 5, 2020 Palīgā, es nemāku Docker! Mēģinu lietot pieredzējušākiem docker lietotājiem iespējams pazīstamo jwilder/nginx-proxy (https://github.com/nginx-proxy/nginx-proxy) Mērķis ir standarta darbība - lokāli palaist nginx, kurš visu http trafiku uz porta 80 pārsūta uz https. Ar self-signed sertifikātu. Nginx konfigurācijas fails un self-signed sertifikāti visticamāk ir pareizi, jo, ja nelietoju nginx-proxy vispār nemaz un vienkārši pieslēdzu savu nginx pa taisno host mašīnas portiem 80 un 443 - tad viss strādā. Savukārt, ja mēģinu vēl priekšā pielikt šo nginx-proxy, tad browserī atpakaļ saņemu 502 Bad Gateway. It kā izdarīts viss, kas minēts dokumentācijā: 1. Kā environment mainīgie konteineram padoti VIRTUAL_HOST=mydomain.local, VIRTUAL_PROTO=https and VIRTUAL_PORT=443 2. Pašam nginx-proxy konteineram kā volume padota mape ar .crt un .key sertifikātiem Un tomēr ir tas 502 Bad Gateway. Nginx error logs ir uzlikts uz "debug" līmenī, bet tajā logā tāpat nekas neiekrīt. Neredzu papildus iespējas, kā debugot. Nginx config fails: server { listen 80; return 301 https://$host$request_uri; } server { listen 443 ssl; listen [::]:443 ssl ipv6only=on; ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; error_log /var/www/storage/logs/nginx-error.log debug; # tukšs access_log /var/www/storage/logs/nginx-access.log; # tukšs # other things... } docker-compose.yml: version: '3' services: nginx: build: context: ../ dockerfile: ./docker/nginx/Dockerfile environment: - VIRTUAL_HOST=mydomain.local - VIRTUAL_PROTO=https - VIRTUAL_PORT=443 volumes: - ${BASE_PATH}/public:/var/www/public - ${BASE_PATH}/storage/logs/nginx-error.log:/var/www/storage/logs/nginx-error.log - ${BASE_PATH}/storage/logs/nginx-access.log:/var/www/storage/logs/nginx-access.log self-signed sertifikātu ģenerācijai lietotā komanda: openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt -subj "/" Quote Link to comment Share on other sites More sharing options...
codehighriga Posted July 18, 2020 Report Share Posted July 18, 2020 Problēma varētu būt tā, ka docker-compose.yml trūkst "expose". Zem expose ir jābūt portiem 80 un 443. Ja Dockerfile ir bāzēts uz oficiālo nginx image bez izmaiņām, tad pēc noklusējuma expose ir tikai ports 80. Tā kā tu ļepini kopā SSL, tad tev vajag expose arī 443. Quote Link to comment Share on other sites More sharing options...
duncanf293 Posted July 20, 2020 Author Report Share Posted July 20, 2020 On 7/18/2020 at 1:47 PM, codehighriga said: Problēma varētu būt tā, ka docker-compose.yml trūkst "expose". Zem expose ir jābūt portiem 80 un 443. Ja Dockerfile ir bāzēts uz oficiālo nginx image bez izmaiņām, tad pēc noklusējuma expose ir tikai ports 80. Tā kā tu ļepini kopā SSL, tad tev vajag expose arī 443. f***k, jā, paldies. Tā kā 80 automātiski ir exposed, tad baigi viegli aizmirst, ka 443 nav exposed. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.