Nginx搭建 Https 运行Docker项目

一、环境介绍

阿里云centos 7.4

Nginx/1.12.1

Let’s Encrypt 永久免费 SSL 证书

Docker已打包好项目的镜像 (详情参考http://www.cnblogs.com/killall007/p/8477484.html)

二、Nginx安装

首先安装ssl,pcre,zlib,gzip等,使用如下命令:

1(yum install -y httpd-devel pcre perl pcre-devel zlib zlib-devel GeoIP GeoIP-devel) 2要安装下一些gcc库用于编译 和一些nginx的扩展lib包: 3 yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel

下载所需的包: 
分别从这些网站下载最新稳定版:

1http://www.pcre.org/ 2http://zlib.net/ 3http://openssl.org/ 4cd 5wget https://ftp.pcre.org/pub/pcre/pcre-8.00.tar.gz 6wget http://zlib.net/zlib-1.2.11.tar.gz 7wget ftp://ftp.openssl.org/source/openssl-1.0.2n.tar.gz

解压这些文件,并不需要安装:

1tar -xvf pcre-8.00.tar.gz 2tar -xvf openssl-1.0.2n.tar.gz 3从http://www.nginx.org上下载nginx源码包: 4cd 5wget http://nginx.org/download/nginx-1.12.1.tar.gz 6tar -xvf nginx-1.12.1.tar.gz 7cd nginx-1.12.1 8 9进入nginx目录 10[root@admin local]# cd nginx-1.12.1 11首先,设置安装目录为 /usr/local/nginx 12[root@admin nginx-1.12.1]# ./configure --with-http_ssl_module 13如果没有报错,开始编译安装 14[root@admin nginx-1.12.1]# make 15[root@admin nginx-1.12.1]# make install

防火墙开启80、443端口

1systemctl start firewalld.service 2firewall-cmd --add-port=80/tcp --permanent 3firewall-cmd --add-port=443/tcp --permanent 4firewall-cmd --reload netstat -tunpl #查看已开启端口及服务

启动nginx服务

1进入安装目录 2 /usr/local/nginx 3[root@admin ~]# cd /usr/local/nginx 4[root@admin sbin]# ./nginx 5 6查看进程,可以看到nginx的master和worker进程 7[root@admin sbin]# ps -ef | grep nginx 8root 32150 1 0 13:28 ? 00:00:00 nginx: master process ./nginx 9nobody 32151 32150 0 13:28 ? 00:00:00 nginx: worker process 10root 32154 28494 0 13:28 pts/1 00:00:00 grep nginx `` 11可以通过访问ip:80测试是否成功

三、安装Let’s Encrypt 永久免费 SSL 证书(有效期90天)

1yum -y install git 2git clone https://github.com/letsencrypt/letsencrypt 3cd letsencrypt 4chmod +x letsencrypt-auto

安装证书:

./letsencrypt-auto certonly  --email 120459905@qq.com -d www.xiaowenxiao.com   #-d后对应的是域名

根据提示安装完后会显示证书和私钥的保存位置

在nginx.conf中添加代码:

1 #gzip on; 2 3 server { 4 listen 80; 5 server_name www.xiaowenxiao.xin; 6 rewrite ^/(.*) https://$server_name$1 permanent; #跳转到Https 7 } 8 server { 9 listen 443; 10 server_name www.xiaowenxiao.xin; 11 ssl on; 12 ssl_certificate /etc/letsencrypt/live/www.xiaowenxiao.xin/fullchain.pem; #证书位置 13 ssl_certificate_key /etc/letsencrypt/live/www.xiaowenxiao.xin/privkey.pem; #私钥位置 14 15 16 location / { 17 proxy_pass http://172.17.0.2:5000; #反向代理到把请求转发到已经部署好项目的docker容器 18 } 19 20 # proxy the PHP scripts to Apache listening on 127.0.0.1:80 21 # 22 #location ~ \.php$ { 23 # proxy_pass http://127.0.0.1; 24 #}

四、启动docker容器运行项目

(详情参考http://www.cnblogs.com/killall007/p/8477484.html)

docker run -p 5000 xiaowenxiao/hellodocker.web:v1

五、重启nginx

[root@admin sbin]# ./nginx -s reload(停止服务:ps -ef | grep nginx查进程号之后 kill -9 进程号 即可)

浏览器输入:http://www.xiaowenxiao.xin 自动跳转https://www.xiaowenxiao.xin 请求会转发到docker已部署好的项目上。

至此,https部署升级结束。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )