Docker搭建LNMP环境实战(07):安装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、演示项目目录结构

图1  dockers演示项目目录结构

图1 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,内容如下:
图2  nginx 部署配置文件内容

图2 nginx 部署配置文件内容

version: "3.5"
services:test_site_nginx:container_name: test_site_nginximage: nginx:1.13privileged: truerestart: alwaysnetworks:- test_site_networkports:- 80:80- 443:443volumes:- /mnt/hgfs/dockers/test_site/www:/var/test_site/www- /mnt/hgfs/dockers/nginx/conf.d:/etc/nginx/conf.denvironment:- 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

图3  docker-compose部署nginx

图3 docker-compose部署nginx

4)验证安装效果

在浏览器里访问:http://api.test.site,返回结果如下:
图4  验证通过http访问nginx 的80端口成功

图4 验证通过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

图5  生成server.kry

图5 生成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

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

图6 ssl证书及私钥文件

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

1)修改yml文件

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

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

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

图8 修改配置文件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,会出现问题,返回结果为:
图9  https访问出现问题

图9 https访问出现问题

点击“高级”按钮,出现下面界面
图10  高级选项后的界面

图10 高级选项后的界面

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

图11 不安全的模式访问成功


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

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/786425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《2023腾讯云容器和函数计算技术实践精选集》--在 K8s 上跑腾讯云 Serverless 函数,打破传统方式造就新变革

目录 目录 前言 《2023腾讯云容器和函数计算技术实践精选集》带来的思考 1、特色亮点 2、阅读体验 3、实用建议 4、整体评价 Serverless 和 K8s 的优势 1、关于Serverless 函数的特点 2、K8s 的特点 腾讯云 Serverless 函数在 K8s 上的应用对企业服务的影响 案例分…

如何将 JavaScript 添加到 HTML 页面

介绍 JavaScript,简称 JS,是一种用于网页开发的编程语言。作为 Web 的核心技术之一,JavaScript 与 HTML 和 CSS 一起用于使网页具有交互性并构建 Web 应用程序。现代 Web 浏览器遵循通用的显示标准,通过内置引擎支持 JavaScript&…

vue3 记录页面滚动条的位置,并在切换路由时存储或者取消

需求,当页面内容超出了浏览器可是屏幕的高度时,页面会出现滚动条。当我们滚动到某个位置时,操作了其他事件或者跳转了路由,再次回来时,希望还在当时滚动的位置。那我们就进行一下操作。 我是利用了会话存储 sessionSto…

工业互联网和云计算有关联吗

工业互联网和云计算有关联吗?是的,工业互联网和云计算之间存在紧密的关联。工业互联网是指利用物联网、云计算、大数据分析等技术手段,将传统工业领域与互联网技术相结合,实现设备、工厂和企业之间的连接和数据交互。 工业互联网…

Linux华为云Hadoop配置环境

手工搭建Hadoop环境(Linux)_弹性云服务器 ECS_最佳实践 (huaweicloud.com)https://support.huaweicloud.com/bestpractice-ecs/zh-cn_topic_0000001698668477.html?localezh-cn#ZH-CN_TOPIC_0000001698668477__li49001945163110跟着傻瓜式CV即可。 气死…

SSH常见运维总结

1 -bash: ssh: command not found 解决办法:"yum install -y openssh-server openssh-clinets" 2 ssh登录时提示:Read from socket failed: Connection reset by peer. 原因:/etc/ssh/下没有ssh*key*文件 解决&…

目标检测:数据集划分 XML数据集转YOLO标签

文章目录 1、前言:2、生成对应的类名3、xml转为yolo的label形式4、优化代码5、划分数据集6、画目录树7、目标检测系列文章 1、前言: 本文演示如何划分数据集,以及将VOC标注的xml数据转为YOLO标注的txt格式,且生成classes的txt文件…

Ubuntu 大压缩文件解压工具

Ubuntu 大压缩文件解压工具 任务解决 任务 需要解压一个百度网盘上下载的压缩文件,zip格式。 直接右键’提取到此处’,会报错:empty archive 用unzip指令,会报错: Archive: 实验.zip warning [实验.zip]: 12540984…

李笑来-财富自由之路【边读边记】2

2024-04-01 23:50 处理完杂事,已经快12点了,但还是想读完这本书。 昨天晚上看完前8章,对李笑来这个同志有了初步的判断,然后不由得去抖音搜了下这个人的资料,果然关于炒币狂转上百亿一下子就出来了,还有就是…

Nginx 日志输出配置json格式

nginx日志输出配置json格式 nginx服务器日志相关指令主要有两条: (1) 一条是log_format,用来设置日志格式 (2) 另外一条是access_log,用来指定日志文件的存放路径、格式和缓存大小。 log_format指令用来设置日志的记录格式,它的语…

Javaweb的学习22_JavaScript简介

JavaScript 简介: 概念:一门客户端脚本语言 运行在客户端浏览器中;每一个浏览器都有JavaScript的解析引擎 脚本语言:不需要编译,直接就可以被浏览器解析执行 功能: 可以来增强用户和html页面的交互过程&…

iOS移动应用实时查看运行日志的最佳实践

目录 一、设备连接 二、使用克魔助手查看日志 三、过滤我们自己App的日志 📝 摘要: 本文介绍了如何在iOS iPhone设备上实时查看输出在console控制台的日志。通过克魔助手工具,我们可以连接手机并方便地筛选我们自己App的日志。 &#x1f4…

目标检测——工业安全生产环境违规使用手机的识别

一、重要性及意义 首先,工业安全生产环境涉及到许多复杂的工艺和设备,这些设备和工艺往往需要高精度的操作和严格的监管。如果员工在生产过程中违规使用手机,不仅可能分散其注意力,降低工作效率,更可能因操作失误导致…

云原生技术赋能AI绘图:Stable Diffusion在腾讯云的部署与应用新篇章

摘要 随着信息技术的飞速发展和数字化转型的深入推进,云原生架构已成为企业数字化转型的重要基石。Docker容器、Serverless和微服务等技术作为云原生的核心组成部分,正在不断推动着企业应用架构的革新与升级。本文旨在总结近期在云原生实践、容器技术、…

linux三件客之awk全解

01.awk awk:编程语言 GNU/awk 作用:1.取行2.取列3.模糊过滤4.数据统计,数据运算5.支持for循环 if判断 数组……6.格式化输出 sed后向引用 语法结构:awk 模式 file # 模式是找谁 指定行 指定列 模糊查找 不加任何动作awk 模式&#xff08…

rust并行计算库Rayon

rust并行计算库Rayon rust并行计算库Rayon什么是并行计算Rayon工作窃取算法第一个Rayon应用Rayon线程池Rayon任务调度Rayon并行迭代Rayon并行计算模式map-reduceRayon并行计算模式filter-mapRayon并行计算模式scanRayon并行策略Rayon并行策略静态分块Rayon并行策略动态分块Ray…

工作常用Linux命令记录

工作常用Linux命令记录 一、基础部分1、光标快速移动2、杀死指定端口3、查看磁盘占用4、CPU占用5、JVM命令 二、日志部分1、固定打印日志2、追加打印日志3、查询关键字周围4、浏览日志 一、基础部分 1、光标快速移动 mac下 移动到上一个单词:option➡️ 移动到下一…

混合现实(MR)开发工具

混合现实(MR)开发工具是一系列软件和框架,它们使得开发者能够创建和优化能够在虚拟与现实世界之间无缝交互的应用程序。以下是一些在MR领域内广泛使用的开发工具。 1.Microsoft Mixed Reality Toolkit (MRTK) MRTK是一个跨平台的工具包&…

【操作系统】FCFS、SJF、HRRN、RR、EDF、LLF调度算法及python实现代码

文章目录 一、先来先服务调度算法(FCFS) 二、短作业优先调度算法(SJF) 三、高响应比优先调度算法(HRRN) 四、轮转调度算法(RR) 五、最早截至时间优先算法(EDF&#…

Mysql故障解析

目录 一、Mysql单实例故障排查 1.故障一 2.故障二 3.故障三 4.故障四 5.故障五 6.故障六 7.故障七 8.故障八 二、Mysql主从故障排查 1.故障一 2.故障二 3.故障三 三、Mysql优化 1.硬件方面 (1)关于CPU (2)关于内…