zoukankan      html  css  js  c++  java
  • docker安装nginx并配置通过https访问

    1. 下载最新的nginx的docker image

    docker pull nginx:latest

    创建挂载路径

    2.准备nginx需要的文件

     nginx的配置文件

    首先是nginx.conf文件,默认的配置文件如下

    [root@master ~]# cat /nginx/config/nginx.conf
    #运行nginx的用户
    user nginx;
    #启动进程设置成和CPU数量相等
    worker_processes 1;

    #全局错误日志及PID文件的位置
    error_log /var/log/nginx/error.log warn;
    pid /var/run/nginx.pid;

    #工作模式及连接数上限
    events {
    #单个后台work进程最大并发数设置为1024
    worker_connections 1024;
    }


    http {
    #设定mime类型
    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压缩
    #gzip on;
    include server/*.cn;
    include /etc/nginx/conf.d/*.conf;
    }

    可以看到最后一行还要包含另一个配置文件conf.d/default.conf,用来配置server字段

    default.conf配置文件

    [root@master ~]# cat /nginx/config/conf.d/default.conf
    server {
    listen 80; #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉
    listen 443 ssl;
    server_name www.buagengen.com; #域名

    # 增加ssl
    #ssl on; #如果强制HTTPs访问,这行要打开
    ssl_certificate /ssl/server.crt;
    ssl_certificate_key /ssl/server.key;

    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;

    # 指定密码为openssl支持的格式
    ssl_protocols SSLv2 SSLv3 TLSv1.2;

    ssl_ciphers HIGH:!aNULL:!MD5; # 密码加密方式
    ssl_prefer_server_ciphers on; # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码

    # 定义首页索引目录和名称
    location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
    }

    #重定向错误页面到 /50x.html
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root /usr/share/nginx/html;
    }
    }

    nginx的默认首页的html文件
    这个html可以自己定义一个,任意的都可以

    这个时候直接通过IP地址就可以访问nginx定义的这个html文件了。但是这个时候的访问只是http的,https的访问还是不行的,需要添加证书到nginx服务器。

    通过openssl生成证书

    设置server.key,这里需要设置两遍密码:

     说明:

     openssl genrsa -des3 -out server.key 1024  //生成私钥

     openssl req -new -key server.key -out server.csr   //创建签名请求的证书(CSR),生成证书颁发机构,用于颁发公钥

     openssl rsa -in server.key.org -out server.key  //除去密码以便reload询问时不需要密码

     openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt //配置nginx最后标记证书使用上述私钥和CSR

    这里注意:将原来的service,key重命名,将server_nopwd.key重命名为 server.key

    [root@master ~]# cp server.crt /nginx/ssl/
    [root@master ~]# cp server.key /nginx/ssl/

    [root@master ~]# cp nginx.conf /nginx/config/
    [root@master ~]# ls /nginx/config/
    conf.d nginx.conf
    [root@master ~]# cp default.conf /nginx/config/conf.d/
    [root@master ~]# cp 123.html /nginx/data/

     启动容器,同时挂载本地路径配置文件,日志路径,证书文件

    [root@master ~]# docker run --detach --name nginx-test -p 443:443 -p 80:80 -v /nginx/data:/usr/share/nginx/html:rw -v /nginx/config/nginx.conf:/etc/nginx/nginx.conf/:rw -v /nginx/config/conf.d/default.conf:/etc/nginx/conf.d/default.conf:rw -v /nginx/logs:/var/log/nginx/:rw -v /nginx/ssl:/ssl/:rw -d docker.io/nginx
    00b8e78a0dae516cf2e56138d44a5f2cb84f58275758387249f25a2b7386947a

    打开浏览器访问

  • 相关阅读:
    FZU 2098 刻苦的小芳(卡特兰数,动态规划)
    卡特兰数总结
    FZU 1064 教授的测试(卡特兰数,递归)
    HDU 4745 Two Rabbits(区间DP,最长非连续回文子串)
    Java 第十一届 蓝桥杯 省模拟赛 正整数的摆动序列
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
    Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
  • 原文地址:https://www.cnblogs.com/hailun1987/p/10004719.html
Copyright © 2011-2022 走看看