Docker部署nginx并使用https+二级域名访问静态网站

news/2024/5/20 15:12:22/文章来源:https://blog.csdn.net/weixin_43553153/article/details/113172138

1. 安装docker(略)

2. 拉取nginx

docker pull nginx

3. 进入nginx,将相关文件和目录拷贝到宿主机上(这里为腾讯云centos7.8)关键路径如下:

# nginx的主配置文件
/etc/nginx/nginx.conf
# 虚拟主机的配置文件
/etc/nginx/conf.d
# nginx的日志文件
/var/log/nginx
# 存放静态资源
/usr/share/nginx/html
# 存放ssl证书
/etc/ssl

4. 挂载到上述位置前,先将nginx.conf、conf.d下的default.conf文件从容器中拷贝到宿主机中,这样就无需自己在宿主机创建配置文件及其内容了,其余的都是一些目录,使用mkdir命令创建即可

先直接创建nginx容器,不挂载,目的是使用docker cp命令将相关配置文件拷贝到宿主机

docker run -id --name=c_nginx -p 80:80 nginx

将nginx容器中的nginx.conf拷贝到/root/nginx目录中(只是为了暂存这两个文件,路径可自行修改)

docker cp c_nginx:/etc/nginx/nginx.conf /root/nginx

将nginx容器中的default.conf拷贝到/root/nginx目录中

docker cp c_nginx:/etc/nginx/conf.d/default.conf /root/nginx

创建相关目录,为挂载做准备
在这里插入图片描述
注意路径

mkdir html
mkdir conf.d
mkdir logs
mkdir ssl

删除nginx容器,重新创建并挂载相关文件及目录
先停止nginx容器运行

docker stop c_nginx

再删除

docker rm c_nginx # c_nginx是我起的容器名

重新创建nginx容器并挂载相关文件及目录,这一步是关键,一定要确认宿主机的相关目录或文件是否与nginx容器一一对应,这一步比较容易出错,不要忘记映射443端口,否则无法通过https访问

# 创建并启动nginx容器,注意,$PWD这里为/root/nginx
docker run -id --name=c_nginx \
-p 80:80 \
-p 443:443 \
-v $PWD/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/conf.d:/etc/nginx/conf.d \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
-v $PWD/ssl:/etc/ssl \
nginx

查看nginx容器是否成功运行

docker ps

只要STATUS为Up即可,如果为已退出状态,请检查上一步
在这里插入图片描述

5. 下载ssl证书,我的是腾讯云,具体过程略,申请后等10分钟左右会出结果,若申请成功可以下载一个压缩包,解压后有一个Nginx目录,里面有两个文件:1_你的域名_bundle.crt 和 2_你的域名.key

将这两个文件放在宿主机/root/nginx/ssl下即可,这里我放在ssl下又创建了一个目录,以域名命名,将上述的两个文件放入即此目录在这里插入图片描述

6. 将静态资源上传至/root/nginx/html并配置default.conf

如果主配置文件nginx.conf中没有include /etc/nginx/conf.d/*.conf;就在nginx.conf中写server即可,一般是一个网站对应conf.d目录中的一个xxx.conf,这里我直接在default.conf中配置server,配置内容如下

# web前端课程期末设计 https配置
server {#侦听443端口,这个是ssl访问端口listen    443 ssl;# 如果强制所有的访问都必须是HTTPs的,这行需要注销掉#listen       80;#定义使用 访问域名server_name  申请证书的域名;# 这些都是腾讯云推荐的配置,直接拿来用就行了,只是修改证书的路径,注意这些路径是相对于/etc/nginx/nginx.conf文件位置ssl_certificate /etc/ssl/自定义目录/1_你的域名_bundle.crt;ssl_certificate_key /etc/ssl/自定义目录/2_你的域名.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置ssl_prefer_server_ciphers on;#默认请求location / {     # 需要注意的是,由于是docker部署,所以root是容器内的路径,而不能是宿主机的,否则404# 以后再部署静态网站时,root就写/usr/share/nginx/html/要部署的静态资源目录名# root /root/nginx/html/web前端课程期末设计 错误写法!!404root /usr/share/nginx/html/web前端课程期末设计;index index.html index.htm; }
}
server {  listen 80;server_name 你的二级域名;#把http的域名请求转成httpsreturn 301 https://$host$request_uri; 
}

检查配置文件语法是否正确,首先进入nginx容器

docker exec -it c_nginx bash
nginx -t

出现以下提示则语法正确
在这里插入图片描述
再使用查看nginx容器是否运行,若没运行,请检查上文操作的正确性

docker ps

最后输入域名,访问成功
在这里插入图片描述
补充:server_name 一定是已存在的域名,比如二级域名xxx.xxx.com,这需要在控制台添加主机记录,以腾讯云为例
在这里插入图片描述

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

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

相关文章

快速下载一个网站

有时候我们需要分析一个网站,或者基于一个网站进行魔改,这个就需要一些特殊的手段将网站源码下载到本地了,其实目前大部分网站都是有代码压缩的,很难去有修改。 这里我就教大家如何快速获取一个网站的所有资源,包括源码…

android wap网站自动适应

做个整理。 研究了一下新浪的wap网站&#xff0c;发现原来我们的head存在着这样的差异……<%page contentType"text/html;charsetUTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"><h…

使用 Tampermonkey 编写高级跨网站自动化任务脚本

文章目录Tampermonkey 介绍官方介绍作用快速安装有关平台TM 的 API 解读&#xff0c;及简单脚本的编写基础 API 的解读基础脚本编写&#xff0c;以修改 CSDN 样式、表单自动填写为例高级 API 应用程序接口高级脚本的编写分析 技术方案 以 M2C 为例总结Tampermonkey 介绍 官方介…

Windows Azure -Azure 网站、云服务和虚拟机的对比

Azure 网站、云服务和虚拟机对比 概述 Azure提供了几种方法来承载网站&#xff1a; Azure网站、云服务和虚拟机。本文帮助您了解选项和为您的Web应用程序做出正确选择。 Azure网站是大多数web应用程序的最佳选择。部署和管理都整合到平台&#xff0c;网站可以迅速扩展以处理高流…

Python爬虫小实践:获取某个网站所有的外部链接以及内部链接

我们在进行爬虫时有的时候不可能只是在一个网站上进行内容上的爬取&#xff0c;理想中的爬虫应该是顺着一个链接从一个页面到另外一个页面&#xff0c;这需要获取页面上的所有的外链&#xff0c;同时收集每个页面上的内链。网站首页上不一定会发现外链&#xff0c;为了防止程序…

程序员提升码字代码速度网站

文章目录1 SpeedCoder1 SpeedCoder 官网&#xff1a;http://www.speedcoder.net/ 这个是专门针对于程序员的打字练习网站&#xff0c;支持各种编程语言的练习&#xff0c;包括C/C/C#/Html/Ruby/CSS/Python/Perl/JavaScript/Java/PHP 会给出一段代码释放&#xff0c;并且显示…

穷建站(一):申请免费的tk顶级域名

文章目录1 序2 注册免费的tk顶级域名1 序 建一个个人网站我相信是很多人从初中甚至是高中开始就想做的一件事情&#xff0c;起码我是这样的。 在初中的时候第一次上网&#xff0c;我就很好奇网站到底是怎么建起来的&#xff0c;我们又是如何通过互联网去访问到我们的站点并成功…

穷建站(二):在DnsPod中为申请的tk域名进行域名解析

文章目录1 序2 DnsPod域名解析2.1 DnsPod网站账号注册2.2 在DnsPod中添加需要解析的域名3 在Freenom中进行域名解析配置1 序 在上一篇博文中&#xff1a;穷建站&#xff08;一&#xff09;&#xff1a;申请免费的tk顶级域名 博文中已经成功的申请了一个tk顶级域名&#xff0c;…

查看别人的网站是用的WordPress的哪个主题

文章目录1 Whatwpthemeisthat2 wpthemedetector1 Whatwpthemeisthat 网站&#xff1a;https://whatwpthemeisthat.com/ 2 wpthemedetector 网址:http://wpthemedetector.coderschool.cn/ 国内的检测网址&#xff0c;相比于第一个国内打开速度快很多&#xff01;&#xff01…

无需server-U IIS7.5 在已有的多个WEB网站上配置FTP发布

1 新建一个用于ftp登陆的计算机用户。 操作&#xff1a;开始→管理工具→计算机管理→本地用户和组→用户&#xff0c;新建一个计算机用户&#xff0c;设置好用户名和密码&#xff0c;例如&#xff1a;nenkea nkscl2 在web站点文件夹下&#xff0c;把新建用户的所有权限给到。操…

网站个性化 - 添加人形时钟

文章目录1 官网地址2 添加人形时钟1 官网地址 http://chabudai.org/blog/?p59 2 添加人形时钟 &#xff08;1&#xff09;添加透明背景人形时钟的JavaScript代码为&#xff1a; <script charset"Shift_JIS" src"http://chabudai.sakura.ne.jp/blogpart…

工具网站推荐 - DLL‑FILES.COM帮你找到你的应用程序所缺失的dll文件

文章目录1 DLL‑FILES.COM2 使用1 DLL‑FILES.COM 官网&#xff1a;https://cn.dll-files.com/ 2 使用 在搜索框中搜索你所缺失的dll文件名&#xff0c;如果该网站有相关的dll&#xff0c;那么就会在下方弹出可供下载的dll;下载dll将dll复制到C:\Windows\System32或者C:\Win…

工具网站推荐 - 欧拉角四元数在线可视化转化网站/三维在线旋转变换网站

文章目录1 欧拉角四元数在线可视化转换网站1.1 静态变换2 三维在线旋转变换网站2.1 使用3 Rotation Conversion Tool1 欧拉角四元数在线可视化转换网站 网站地址&#xff1a;https://quaternions.online/ 1.1 静态变换 例如绕X轴旋转90度的四元数为&#xff1a; 在下方X处输…

动漫网站基于jquery的横向手风琴特效

今天给大家分享一款动漫网站基于jquery的横向手风琴特效。这款手风琴特效适用浏览器&#xff1a;IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗。效果图如下&#xff1a; 在线预览 源码下载 实现的代码。 html代码&#xff1a; <div class"box2&q…

动态网站开发技术学习1:走进ASP.NET

打开微软官网搜索ASP.NET&#xff0c;首先进入我们视线的就是ASP.NET的介绍&#xff0c;翻译一下&#xff1a;ASP.NET是一个免费的 Web框架构建Web站点&#xff0c;应用程序和服务与HTML&#xff0c;CSS和JavaScript。 ASP.NET是.NET FrameWork的一部分&#xff0c;是一项微软…

动态网站开发技术学习2:VS 2010制作作第一个简单示例网站

制作一个简单示例网站的步骤&#xff1a; 一&#xff0c;启动VS 2010开发环境&#xff0c;选择菜单中的“文件”&#xff0c;选择其中的“新建”&#xff0c;再选择“网站”&#xff0c;会弹出”新建网站“对话框。 二&#xff0c;在“新建网站”的对话框&#xff0c;在“已安装…

动态网站开发技术学习3:ASP.NET内置对象之Response对象

Response对象是HttpRespone类的一个实例。该类主要是封装来自ASP.NET操作的HTTP相应信息。Response 对象将数据作为请求的结果从服务器发送到客户浏览器中&#xff0c;并提供有关响应的消息。它可用来在页面中输出数据&#xff0c;在 页面中跳转&#xff0c;还可以传递各个页…

动态网站开发技术学习4:ASP.NET内置对象之Request对象

Request对象的作用是与客户端交互&#xff0c;收集客户端的Form、Cookies、超链接&#xff0c;或者收集服务器端的环境变量。 request对象是从客户端向服务器发出请求&#xff0c;包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或 在网页地址后面提供参数的方…

网站注册如何让防止被恶意刷....

最近公司平台推出填写推荐人送10券,然后被些恶意分子刷了. 注册时只有短信验证~现在加了点击生成验证码,感觉还是防不住~ 被这样的软件恶意刷了~很是可恶,有没有大神推荐个防刷机制. 一开始短信的话,他们是利用多线程凑短信验证码,现在加了次数,加了页面验证码.理论上经过2道验…

浅谈web网站架构演变过程

前言 我们以javaweb为例&#xff0c;来搭建一个简单的电商系统&#xff0c;看看这个系统可以如何一步步演变。该系统具备的功能&#xff1a;用户模块&#xff1a;用户注册和管理商品模块&#xff1a;商品展示和管理交易模块&#xff1a;创建交易和管理 阶段一、单机构建网站 网…