docker安装nginx并配置通过https访问的方法
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,1. 下载最新的nginx的docker image$ docker pull nginx:latest2. 启动nginx容器运行如下命令来启动nginx containerdocker run -
千家信息网最后更新 2025年12月02日docker安装nginx并配置通过https访问的方法
1. 下载最新的nginx的docker image
$ docker pull nginx:latest
2. 启动nginx容器
运行如下命令来启动nginx container
docker run --detach \ --name wx-nginx \ -p 443:443\ -p 80:80 \ -v /home/evan/workspace/wxserver/nginx/data:/usr/share/nginx/html:rw\ -v /home/evan/workspace/wxserver/nginx/config/nginx.conf:/etc/nginx/nginx.conf/:rw\ -v /home/evan/workspace/wxserver/nginx/config/conf.d/default.conf:/etc/nginx/conf.d/default.conf:rw\ -v /home/evan/workspace/wxserver/nginx/logs:/var/log/nginx/:rw\ -v /home/evan/workspace/wxserver/nginx/ssl:/ssl/:rw\ -d nginx
- 映射端口443,用于https请求
- 映射端口80,用于http请求;
- nginx的默认首页html的存放目录映射到host盘的目录, /home/evan/workspace/wxserver/nginx/data
- nginx的配置文件映射到host盘的文件,/home/evan/workspace/wxserver/nginx/config/nginx.conf
这里需要准备如下几个文件,
1、nginx的配置文件
首先是nginx.conf文件,默认的配置文件如下
#运行nginx的用户user nginx;#启动进程设置成和CPU数量相等worker_processes 1;#全局错误日志及PID文件的位置error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;#工作模式及连接数上限events { #单个后台work进程最大并发数设置为1024 worker_connections 1024;}http { #设定mime类型 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压缩 #gzip on; include /etc/nginx/conf.d/*.conf;}可以看到最后一行还要包含另一个配置文件conf.d/default.conf,用来配置server字段
server { listen 80; #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉 server_name www.buagengen.com; #域名 #charset koi8-r; #access_log /var/log/nginx/host.access.log main; # 定义首页索引目录和名称 location / { root /usr/share/nginx/html; index index.html index.htm; } #定义错误提示页面 #error_page 404 /404.html; #重定向错误页面到 /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }}2、nginx的默认首页的html文件
这个html可以自己定义一个,任意的都可以。
这个时候直接通过IP地址就可以访问nginx定义的这个html文件了。但是这个时候的访问只是http的,https的访问还是不行的,需要添加证书到nginx服务器。
3. 通过openssl生成证书
设置server.key,这里需要设置两遍密码:
openssl genrsa -des3 -out server.key 1024
参数设置,首先这里需要输入之前设置的密码:
openssl req -new -key server.key -out server.csr
然后需要输入如下的信息,大概填一下就可以了,反正是测试用的
Country Name (2 letter code) [AU]: 国家名称State or Province Name (full name) [Some-State]: 省Locality Name (eg, city) []: 城市Organization Name (eg, company) [Internet Widgits Pty Ltd]: 公司名Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: 网站域名Email Address []: 邮箱Please enter the following 'extra' attributesto be sent with your certificate requestA challenge password []: 这里要求输入密码An optional company name []:
写RSA秘钥(这里也要求输入之前设置的密码):
openssl rsa -in server.key -out server_nopwd.key
获取私钥:
openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt
完成这一步之后就得到了我们需要的证书文件和私钥了
- server.crt
- server.key
4. 配置nginx服务器,支持https访问
把前面一步生成的文件拷贝到host上的ssl目录,/home/evan/workspace/wxserver/nginx/ssl。
然后修改配置文件default.conf,添加ssl支持,
server { listen 80; #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉 listen 443 ssl; server_name www.buagengen.com; #域名 # 增加ssl #ssl on; #如果强制HTTPs访问,这行要打开 ssl_certificate /ssl/server.crt; ssl_certificate_key /ssl/server.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; # 指定密码为openssl支持的格式 ssl_protocols SSLv2 SSLv3 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; # 密码加密方式 ssl_prefer_server_ciphers on; # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码 # 定义首页索引目录和名称 location / { root /usr/share/nginx/html; index index.html index.htm; } #重定向错误页面到 /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }}重启nginx容器,现在就可以通过https来访问nginx的服务器了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
文件
密码
配置
目录
服务器
端口
错误
首页
支持
服务
输入
名称
域名
证书
页面
强制
容器
日志
时候
格式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
哪里能查到未上市公司数据库
西安软件开发哪家靠谱
服务器关闭数据还能接受吗
数据库防火墙测试
网络安全服务基准价百分比
蒲公英软件开发公司
1.7.2服务器核心
数控宏程序软件开发
腾讯服务器续费
数据库达梦引擎
什么叫idc服务器
数据库复杂计算方法
软件开发方案中的保密约定
neo4j数据库并发
医院安全指标数据库
互联网科技给生活带来惊喜
云南专业回收服务器云主机
用vc 实现软件开发
浙大数据库怎么用
诺顿网络安全2018
网络安全原理与实践答案
服务器关闭数据还能接受吗
山西正规软件开发服务应用
k3金蝶帐套服务器修改公司名称
大数据科技互联网模板
mysql还原指定数据库
济南行搜网络技术有限公司
网络技术基础瑜伽
巨匠互联网络科技有限公司
贵州省交通厅网络安全管理办法