docker运行nginx&挂载本地&配置ssl证书

1、证书申请(在自己的域名商哪里申请,反正有免费的)

2、证书下载(nginx版本的)

3、docker上pull下最新的nginx镜像(这里讲的不是利用自定义镜像的方式,存本地挂载)

4、在宿主机上找一个存放软件的地方放如下配置:

        我习惯的地址是 /usr/software/nginx/XXXX.      (software 下存放各类挂载)

        4.1、conf(作为配置文件,挂载使用)

        4.2、ssl(存放ssl证书,我是放在conf里面的,在运行的时候就不用写多一个 -v了)

        4.3、logs(日志啦)

        可以仿照我的地址来放挂载文件,这样也方便其他镜像挂载数据的记录(有个归类的好习惯)

5、先随意运行下nginx的镜像,目的是为了生成配置文件(也可以直接跳到第7步,在conf里面生创建一个nginx.conf的文件)

docker run -d --name nginx -p 80:80 nginx

6、当执行成功之后,就可以运行下面的命令,把镜像里面的配置文件复制到宿主机上

docker cp <容器名称或ID>:<容器内文件夹路径> <宿主机目标路径>

7、复制完之后要关掉并且删掉docker上的nginx服务

docker stop <容器名称或ID>

docker rm <容器名称或ID>

8、复制成功之后,就需要修改配置文件了,打开复制到宿主机上的配置文件


user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
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;

    server {
   	listen 80;
    	server_name XXX; (填写自己的域名,注意前面是有空格的)
 
    	location / {
            return 301 https://$host$request_uri;
        }
    }

    server {
    	listen 443 ssl;
    	server_name XXX; (填写自己的域名,注意前面是有空格的)

    	ssl_certificate /etc/nginx/xxx; (这里xxx填写自己的证书 一般是pem、crt结尾的)
    	ssl_certificate_key /etc/nginx/xxx;(这里xxx填写自己的证书 是key结尾的)

    	location / {
        	proxy_pass http://127.0.0.1:81;(注意,因为nginx是用容器启动的,所以不能用127.0.0.1和localhost,自己找到服务器的内网,填上即可)
        	proxy_set_header Host $host;
        	proxy_set_header X-Real-IP $remote_addr;
		proxy_ssl_server_name on;
            	proxy_ssl_verify off;
	}
    }
}

9、配置修改好了之后,就执行启动命令

docker run -d --name nginx -p 80:80 -p 443:443 -v /usr/software/nginx/conf:/etc/nginx -v /usr/software/nginx/log:/var/log/nginx nginx

        注意里面的挂载地址,切记要跟配的一样

10、如果https不能访问,一般的问题如下:

        10.1、防火墙要放开,443、80(服务器、宿主机都操作吧)

        10.2、ssl证书挂载的路径有问题

        10.3、跳转的地址,上面有提过,不能用localhost、127.0.0.1之类的本地地址,需要指向宿主机(即服务器的ip),用内网ip就好

        

之前基本上都是用阿里的SLB的,方便啊,但是造成了对这一块的生疏,虽然以前配置过,但都是直接在服务器上配置的,没有使用镜像容器,不过,这一次配完之后,长记性了 哈哈哈。

PS:如果有不对的地方,同处IT界的朋友们,麻烦您指出问题所在,避免后面后看到这篇文章的朋友误导了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Docker安装Nginx配置SSL证书的步骤如下: 1. 准备SSL证书:根据不同的云服务商,证书文件的后缀可能有所不同。腾讯云的证书文件后缀为.crt和.key,阿里云的证书文件后缀为.pem和.key。确保证书文件正确并可用。 2. 下载最新的Nginx镜像:使用以下命令下载最新的Nginx镜像: ``` docker pull nginx ``` 3. 创建目录:创建几个目录,用于挂载Nginx容器内的配置文件和日志文件。使用以下命令创建目录: ``` mkdir -p /usr/local/nginx/{conf,html,logs,ssl} ``` 4. 启动一个Nginx临时容器:使用以下命令启动一个Nginx临时容器,并将配置文件复制到主机上: ``` docker run --name nginx-temp -d nginx docker cp nginx-temp:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf docker rm -f nginx-temp ``` 5. 上传SSL证书:将SSL证书上传到服务器的指定目录,例如将证书文件复制到/usr/local/nginx/ssl目录下。 6. 修改nginx.conf配置文件:编辑/usr/local/nginx/conf/nginx.conf文件,配置SSL证书的路径。确保路径是在容器内的地址,而不是主机的地址。 7. 正式启动Nginx:使用以下命令启动Nginx容器,并将挂载目录和端口映射配置好: ``` docker run --name nginx -p 80:80 -p 443:443 \ -v /usr/local/nginx/html:/usr/share/nginx/html \ -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /usr/local/nginx/conf.d:/etc/nginx/conf.d \ -v /usr/local/nginx/logs:/var/log/nginx \ -v /usr/local/nginx/ssl:/etc/nginx/ssl \ --privileged=true -d --restart=always nginx ``` 8. 检查Nginx是否成功启动:使用以下命令检查Nginx容器是否成功启动: ``` docker ps ``` 以上是使用Docker安装Nginx配置SSL证书的步骤。请根据实际情况进行操作。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [docker安装nginx配置ssl证书](https://blog.csdn.net/LuoHuaX/article/details/127320361)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值