우분투 새로 깔고 도커 설정(nginx)

ssl인증서 발급 받을 떄는 구글 도메인에 가서 로컬ip를 지우고 인증서 발급한다.

로컬ip를 넣은 이유는 집 와이파이(로컬 인터넷)에서 접속이 안되서였다

//도커 nginx letsencrypt 인증서 발급
docker run -d-it -p 80:80 -p 443:443 –name 컨테이너 이름 ubuntu /bin/bash
apt update
apt install -y software-properties-common
add-apt-repository ppa:certbot/certbot
apt update
apt install -y certbot
certbot certonly –standalone -d domain.com,www.domain.com

****프록시 서버 
/etc/nginx/conf.d/도메인이름.conf

server{

    listen 443 ssl;

    server_name    도메인이름;

    ssl_certificate /etc/letsencrypt/live/도메인이름/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/도메인이름/privkey.pem;

    location / {

        proxy_set_header  Host               $host;

        proxy_set_header  X-Real-IP          $remote_addr;

        proxy_set_header  X-Forwarded-Host   $host;

        proxy_set_header  X-Forwarded-Server $host;

        proxy_set_header  X-Forwarded-For    $proxy_add_x_forwarded_for;

        proxy_pass        https://ip:포트;

    }

}

****웹서버

server {

    listen         프록시에서 설정한 포트 ssl;

    server_name    도메인이름;

    root          루트 패스;

    index          index.html index.php index.htm index.nginx-debian.html;

    ssl_certificate /etc/letsencrypt/live/도메인이름/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/도메인이름/privkey.pem;

    location / {

      try_files $uri $uri/ /index.php?q=$uri&$args;

      index index.php index.html index.htm index.nginx-debian.html;

    }

    location ~* \.php$ {

      fastcgi_pass unix:/run/php/php7.3-fpm.sock;

      include         fastcgi_params;

      fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;

      fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;

    }

}

server {

    if ($host = 도메인이름) {

        return 301 https://$host$request_uri;

    }

    listen         80;

    server_name    도메인이름;

    return 404;

}

*********도커 계속 실행시키고 싶으면

docker exec -it 컨테이너 이름 /bin/bash

기본적으로 내가 쓰고있는 도메인 .dev는 https연결만을 허용하기 때문에 ssl 발급은 필수.

comment

タイトルとURLをコピーしました