前提条件
下载最新的nginx的docker image
docker pull nginx:latest
创建目录 nginx, 用于存放后面的相关东西
mkdir -p /home/nginx/www /home/nginx/logs /home/nginx/conf
把我们的静态HTML页面放到 /home/nginx/www 文件夹下面;
在创建的 /home/nginx/conf 文件夹下面创建一个叫 nginx.conf 的文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
user nginx;
worker_processes 1;
error_log /var/log/nginx/error .log warn;
pid /var/run/nginx .pid;
events {
worker_connections 1024;
}
http {
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 on;
include /etc/nginx/conf .d/*.conf;
|
部署nginx
docker run -d -p 80:80 -p 443:443 --name nginx-server -v /home/nginx/www:/usr/share/nginx/html -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/logs:/var/log/nginx nginx
命令说明:
-p 80:80: 将容器的 80 端口映射到主机的 80 端口。
-p 443:443: 将容器的 80 端口映射到主机的 443 端口。
--name nginx-server:将容器命名为 nginx-server。-v /home/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。
-v /home/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。
启动之后便可以通过域名访问到我们的HTML页面了,但是还没完
修改nginx.conf
在我们刚刚创建的 nginx.conf 文件里面插入以下内容:(注意先不要重启)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
server {
listen 443 ssl;
server_name fightingtop.cn www.fightingtop.cn;
root /usr/share/nginx/html ;
ssl_certificate /ssl/certificate .pem;
ssl_certificate_key /ssl/2832429_fightingtop .cn.key;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:1m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html ;
index index.html index.htm;
}
}
server {
listen 80;
server_name fightingtop.cn www.fightingtop.cn;
rewrite ^ https: // $host$1 permanent;
}
|
将两个证书文件拷贝到nginx容器
先进入nginx容器在根目录创建一个ssl文件夹,用来放证书
docker exec -it aa5badebd38a /bin/bash<br data-filtered="filtered">cd /<br data-filtered="filtered">mkdir ssl
开始拷贝证书
docker cp /home/ssl/certificate.key aa5badebd38a:/ssl/
docker cp /home/ssl/certificate.pem aa5badebd38a:/ssl/
大功告成啦,重启完事!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/mingweiyard/p/11535286.html