dockerを使用してnginxを実行し、ssl証明書を追加


dockerを使用してnginxを実行し、ssl証明書を追加
  • ダウンロードnginxミラー
  • ssl証明書
  • を申請する
  • nginx構成
  • nginx
  • を起動
    nginxミラーのダウンロードdocker pull nginx:alpine
    ssl証明書の申請
    アリクラウドで無料のssl証明書を申請することができて、アリクラウドコンソールのトップページに入って、ssl証明書をクリックして、ssl証明書の管理ページに入って、証明書を購入することをクリックして、ガイドの操作に従って、申請が完成した後、証明書を/etc/nginx/certディレクトリの下にアップロードします
    nginx構成
    /etc/nginxディレクトリの下でnginxプロファイルvim /etc/nginx/nginx.confを作成
    user root;
    worker_processes  1;
    error_log  /var/log/nginx/error.log  info;
    worker_rlimit_nofile 1024;
    events {
        worker_connections  1024;
    }
    http {
        proxy_http_version 1.1;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
        proxy_send_timeout 600;
        client_max_body_size 50m;
        include       mime.types;
        default_type  application/octet-stream;
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        access_log  /var/log/nginx/access.log  main;
        keepalive_timeout  65;
        gzip on;
        sendfile on;
        gzip_buffers 16 8k;
        gzip_comp_level 2;
        gzip_http_version 1.1;
        gzip_min_length 256;
        gzip_proxied any;
        gzip_vary on;
        gzip_types
            text/xml application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml
            text/javascript application/javascript application/x-javascript
            text/x-json application/json application/x-web-app-manifest+json
            text/css text/plain text/x-component
            font/opentype font/ttf application/x-font-ttf application/vnd.ms-fontobject
            image/x-icon image/jpeg image/gif image/png;
        map $http_upgrade $connection_upgrade {
            default upgrade;
            ''      close;
        }
        upstream demo {
            server server01:8080 weight=5 max_fails=5 fail_timeout=60s;
        }
        server {
            listen       80;
            server_name  new.dxnbr.com;
            return       301 https://$server_name$request_uri;
        }
        server {
            listen                    443 ssl;
            server_name               new.dxnbr.com;
            ssl_certificate           /etc/nginx/cert/new.dxnbr.com.pem;
            ssl_certificate_key       /etc/nginx/cert/new.dxnbr.com.key;
            ssl_ciphers               ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
            ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
            ssl_prefer_server_ciphers on;
            ssl_session_timeout       5m;
            location ^~/demofile/ {
                proxy_pass http://server02/demofile/;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_redirect off;
            }
            location ^~/api/{
                proxy_pass http://demo;
                proxy_http_version 1.1;
                proxy_set_header Host $host;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_redirect off;
                proxy_connect_timeout 1;
                proxy_buffer_size 64k;
                proxy_buffers   4 64k;
                proxy_busy_buffers_size 128k;
            }
            location / {
                root /root/react-demo/;
                index index.html;
            }
        }
    }
    

    nginxの起動
    docker run -d --name nginx \
    #       
    -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf \
    #       
    -v /etc/nginx/cert:/etc/nginx/cert \
    #       
    -v /var/log/nginx:/var/log/nginx \
    -v /root/react-demo:/root/react-demo \
    #     
    -v /etc/localtime:/etc/localtime \
    -p 80:80 \
    -p 443:443 \
    #   host  
    --add-host server01:172.26.245.47 \
    --add-host server02:172.26.245.48 \
    nginx:alpine
    

    -vディレクトリのマウント用:-v :