Docker搭建LNMP环境实战(七):安装nginx

1、模拟应用场景描述

假设我要搭建一个站点,假设虚拟的域名为:api.test.site,利用docker实现nginx+php-fpm+mariadb部署。

2、目录结构

2.1、dockers根目录

由于目前的安装是基于Win10+VMWare+CentOS虚拟机,同时已经安装了VMWareTools,并配置了虚拟目录,虚拟目录是仅仅是为了简化文件的传输,虚拟目录在CentOS里的全路径为:/mnt/hgfs/dockers,此目录为CentOS里的dockers根目录,读者可以根据需要自己指定dockers根目录。

2.2、演示项目目录结构

dockers演示项目目录结构

3、安装nginx

3.1、windows环境下修改hosts文件,实现虚拟域名的解析

在文件夹C:\Windows\System32\drivers\etc下找到hosts文件,并编辑,加入一行:

192.168.16.128 api.test.site

保存即可。其中:192.168.16.128为我现在VMware虚拟机里的centos的ip地址,请读者改成自己环境下的正确配置。

3.2、编写nginx部署配置文件test_site_nginx.yml

在文件夹:/mnt/hgfs/dockers/test_site/compose下创建文件:test_site_nginx.yml,内容如下:

nginx 部署配置文件内容

version: "3.5"

services:

    test_site_nginx:

        container_name: test_site_nginx

        image: nginx:1.13

        privileged: true

        restart: always

        networks:

            - test_site_network

        ports:

            - 80:80

            - 443:443

        volumes:

            - /mnt/hgfs/dockers/test_site/www:/var/test_site/www

            - /mnt/hgfs/dockers/nginx/conf.d:/etc/nginx/conf.d

        environment:

            - TZ=Asia/Shanghai

networks:

    test_site_network:

        name: test_site_network

3.3、站点默认页面及nginx支持HTTP协议访问的配置

1)编辑生产index.html文件,

进入目录: /mnt/hgfs/dockers/test_site/www;编辑生成index.html文件,内容为:

hello world!!!!!! From index.html

2)编辑生成nginx默认配置问default.conf

进入目录:/mnt/hgfs/dockers/nginx/conf.d;编辑生产default.conf。内容为:

server {

    listen      80;

    server_name  api.test.site;

    location / {

        root  /var/test_site/www;

        index  index.html index.htm;

    }

    error_page  500 502 503 504  /50x.html;

    location = /50x.html {

        root  /var/test_site/www;

    }

}

3)运行docker-compose命令进行部署

docker-compose -f test_site_nginx up -d

docker-compose部署nginx

4)验证安装效果

在浏览器里访问:http://api.test.site,返回结果如下:

验证通过http访问nginx 的80端口成功

验证通过http协议访问nginx的80端口成功!

3.4、ssl证书的生成及nginx支持https协议访问的配置

3.4.1、ssl证书的生成

# cd /mnt/hgfs/dockers/nginx/ssl

1)设置server.key

这里需要设置两遍密码(自己随便选一个密码输入两次):

# openssl genrsa -des3 -out server.key 1024

生成server.kry

会在当前目录下生成文件:server.key

2)参数设置

这里需要输入之前设置的密码:

# openssl req -new -key server.key -out server.csr

由于是测试,可以随便输入一些信息就可以了,这样会生成文件:server.csr

3)写RSA秘钥

这里也要求输入之前设置的密码:

# openssl rsa -in server.key -out server_nopwd.key

生成文件:server_nopwd.key,使用这个文件可以在应用时避免输入密码

4)获取私钥:

···

# openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt

···

完成这一步之后就得到了我们需要的证书文件和私钥了:

ssl证书及私钥文件

3.4.2、配置nginx服务器,支持https访问

1)修改yml文件

修改test_site_nginx.yml文件,增加ssl目录的绑定

在yml文件里增加ssl目录绑定

2)修改配置文件default.conf,添加ssl支持


修改配置文件default.conf,添加ssl支持

红色框内为新增的配置项。修改后的文件内容如下:

server {

    listen      80;

    listen      443 ssl;

    server_name  api.test.site;

    #ssl on;

    ssl_certificate /etc/nginx/ssl/server.crt;

    ssl_certificate_key /etc/nginx/ssl/server_nopwd.key;

    # 指定密码为openssl支持的格式

    ssl_protocols  SSLv2 SSLv3 TLSv1.2;

    ssl_ciphers  HIGH:!aNULL:!MD5;  # 密码加密方式

    ssl_prefer_server_ciphers  on;  # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码

    location / {

        root  /var/test_site/www;

        index  index.html index.htm;

    }

    error_page  500 502 503 504  /50x.html;

    location = /50x.html {

        root  /var/test_site/www;

    }

}

3)卸载和重新安装nginx

# cd /mnt/hgfs/dockers/test_site/compose

# docker-compose -f test_site_nginx down

# docker-compose -f test_site_nginx up -d

4)测试https访问

浏览器里输入:https://api.test.site,会出现问题,返回结果为:

https访问出现问题

点击“高级”按钮,出现下面界面

高级选项后的界面

点击红框中的链接  继续前往api.test.site,不知道什么原因,就是证书不对,但可以在“不安全”的模式下访问到首页:index.html,总算是可以访问了,也算基本成功吧!哪位有正确处理的方法,请赐教,谢谢。

不安全的模式访问成功



上一篇:Docker搭建LNMP环境实战(六):Docker及Docker-compose常用命令

下一篇:Docker搭建LNMP环境实战(八):安装php-fpm

所属文集:Docker搭建LNMP环境实战


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343