您的位置:首页 > 服务器 > > 正文

docker如何访问nginx(基于docker启动nginxssl配置)

更多 时间:2021-11-08 16:07:09 类别:服务器 浏览量:2318

docker如何访问nginx

基于docker启动nginxssl配置

前提条件

  • 一台云服务器(阿里云、腾讯云等的centOS)
  • 服务器上面要有docker(安装方法这里不做介绍)
  • 一个域名
  • ssl证书(两个文件:一个key后缀,一个pem后缀;生成方法很多这里不再介绍)

下载最新的nginx的docker image

docker pull nginx:latest

创建目录 nginx, 用于存放后面的相关东西

mkdir -p /home/nginx/www /home/nginx/logs /home/nginx/conf

把我们的静态HTML页面放到 /home/nginx/www 文件夹下面;

在创建的 /home/nginx/conf 文件夹下面创建一个叫 nginx.conf 的文件如下:

  • user nginx;
    worker_processes 1;
     
    error_log /var/log/nginx/error.log warn;
    pid    /var/run/nginx.pid;
     
     
    events {
      worker_connections 1024;
    }
     
     
    http {
      include    /etc/nginx/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;
     
      sendfile    on;
      #tcp_nopush   on;
     
      keepalive_timeout 65;
     
      #gzip on;
     
      include /etc/nginx/conf.d/*.conf;
    
  • 部署nginx

    docker run -d -p 80:80 -p 443:443 --name nginx-server -v /home/nginx/www:/usr/share/nginx/html -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/logs:/var/log/nginx nginx  

    命令说明:

    -p 80:80: 将容器的 80 端口映射到主机的 80 端口。

    -p 443:443: 将容器的 80 端口映射到主机的 443 端口。
    --name nginx-server:将容器命名为 nginx-server。

    -v /home/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。

    -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。

    -v /home/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。

    启动之后便可以通过域名访问到我们的HTML页面了,但是还没完

    修改nginx.conf

    在我们刚刚创建的 nginx.conf 文件里面插入以下内容:(注意先不要重启)

  • server {
      listen    443 ssl;
      server_name fightingtop.cn www.fightingtop.cn;
      root     /usr/share/nginx/html;
      ssl_certificate   /ssl/certificate.pem;
      ssl_certificate_key /ssl/2832429_fightingtop.cn.key;
      ssl_session_timeout 5m;
      ssl_session_cache  shared:SSL:1m;
      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;
     
      location / {
        root  /usr/share/nginx/html;
        index index.html index.htm;
      }
    }
     
    server {
      listen 80;
      server_name fightingtop.cn www.fightingtop.cn;
      rewrite ^ https://$host$1 permanent;
    }
    
  • 将两个证书文件拷贝到nginx容器

    先进入nginx容器在根目录创建一个ssl文件夹,用来放证书

    docker exec -it aa5badebd38a /bin/bash<br data-filtered="filtered">cd /<br data-filtered="filtered">mkdir ssl

    开始拷贝证书

    docker cp /home/ssl/certificate.key aa5badebd38a:/ssl/
    docker cp /home/ssl/certificate.pem aa5badebd38a:/ssl/

    大功告成啦,重启完事!

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。

    标签:docker nginx ssl
    您可能感兴趣