-
docker拉取nginx
docker pull nginx:1.18.0
-
创建挂载目录
mkdir /data/mynginx -p
-
启动容器
docker run -d --name nginx -p 80:80 -p 443:443 nginx:1.18.0
-
从容器内部复制主要文件到宿主机,用作配置文件挂载目录
docker cp nginx:/etc/nginx /data/mynginx/nginx docker cp nginx:/var/log/nginx /data/mynginx/log docker cp nginx:/usr/share/nginx/html /data/mynginx/html
-
删除原容器
docker rm -f nginx
-
启动容器
docker run -d --name nginx -p 80:80 -p 443:443 -v /data/mynginx/log:/var/log/nginx -v /data/mynginx/nginx:/etc/nginx -v /data/mynginx/html:/usr/share/nginx/html nginx:1.18.0 #查看启动情况 docker ps #如果未启动成功,查看报错日志 docker logs nginx
-
更改配置信息
nginx1.18.0 目前静态页面的root根目录 /etc/nginx/html/ 在/data/mynginx目录下创建文件夹html和ssl 在html目录下放置静态页面文件 在ssl目录下放置域名证书 在nginx.conf文件中配置新的server 目前配置如下,注意根据自己的情况更改相关的关键信息 user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; 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; upstream tomcat { server localhost:8001; } map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { client_max_body_size 60m; #SSL 访问端口号为 443 listen 443 ssl; #填写绑定证书的域名 server_name www.baidu.com.cn baidu.com.cn; #证书文件名称 ssl_certificate /etc/nginx/ssl/baidu.com.cn_bundle.crt; #私钥文件名称 ssl_certificate_key /etc/nginx/ssl/baidu.com.cn.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1.2 TLSv1.3; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location /map { #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 #例如,您的网站运行目录在/etc/www下,则填写/etc/www。 #root html; # index index.html index.htm; proxy_set_header HOST $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://你的内网或者外网IP:80; } location / { #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 #例如,您的网站运行目录在/etc/www下,则填写/etc/www。 #root html; # index index.html index.htm; proxy_set_header HOST $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://你的内网或者外网IP:你的服务端口; } location /entry { proxy_set_header HOST $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://你的内网或者外网IP:你的服务端口; } location /chat { proxy_pass http://你的内网或者外网IP:8082; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } } server { listen 80; server_name newbaidu.com; #没有生效,实际用的要目录是docker内部的/ect/nginx/html location /usr/share/nginx/html/newbaidu { index index.html index.htm; } } server { listen 80; server_name www.newbaidu.com; #没有生效,实际用的要目录是docker内部的/ect/nginx/html location /usr/share/nginx/html/newbaidu { index index.html index.htm; } } }
-
重新启动
docker restart nginx #注意,API接口转发的ip最好设置为内网IP,只暴露域名给客户端,这样更安全
docker安装nginx并配置域名证书
于 2023-06-25 00:04:34 首次发布
该文详细描述了如何使用Docker拉取Nginx1.18.0镜像,创建挂载目录,启动并配置容器,包括设置SSL证书,定义服务器代理规则,以及处理静态页面。同时,文章还提到了日志查看、容器重启和安全注意事项。
摘要由CSDN通过智能技术生成