docker安装部署Nginx通用标准
安装环境说明:预先在服务器安装docker服务,保证可正常拉取安装镜像。
Nginx环境基线定义:查询官方docker nginx版本地址:https://hub.docker.com/_/nginx
Nginx 需要映射出来相关目录如下:
/data
└── nginx nginx服务映射配置文件目录位置
├── conf nginx配置放在此目录
├── logs nginx日志放在此目录
├── ssl nginx使用SSL证书放在此目录
└── www nginx网站代码放在此目录
Nginx的web默认访问端口为 80 端口
Nginx的反向代理使用默认的端口以实际应用业务服务端口为准
快速部署
#这里使用内网镜像仓库10.10.3.126:8281拉取
docker pull 10.10.3.126:8281/nginx:1.22.0
mkdir -p /data/nginx/{www,conf,ssl,logs}
docker run --name tmp-nginx-container -d 10.10.3.126:8281/nginx:1.22.0
docker cp tmp-nginx-container:/etc/nginx /data/nginx
docker cp tmp-nginx-container:/usr/share/nginx/html /data/nginx
docker rm -f tmp-nginx-container
\cp /data/nginx/nginx/* /data/nginx/conf/
\cp /data/nginx/html/* /data/nginx/www/
rm -rf /data/nginx/{nginx,html}
docker run --name=nginx --restart=always \
-v /data/nginx/www:/usr/share/nginx/html \
-v /data/nginx/conf/:/etc/nginx/ \
-v /data/nginx/logs:/var/log/nginx \
-v /data/nginx/ssl:/usr/local/nginx/ssl \
-v /etc/localtime:/etc/localtime \
--net=host \
-d 10.10.3.126:8281/nginx:1.22.0
部署详解
1、拉取Nginx镜像件和目录
docker pull 10.10.3.126:8281/nginx:1.22.0
2、创建对应配置文件和目录
注意创建的目录权限需要777,否则启动会报错创建文件没有权限
mkdir -p /data/nginx/{www,conf,ssl,logs}
创建后文件目录如下:
/data
└── nginx nginx服务映射配置文件目录位置
├── conf nginx配置放在此目录
├── logs nginx日志放在此目录
├── ssl nginx使用SSL证书放在此目录
└── www nginx网站代码放在此目录
3、导出docker中nginx官方默认配置
文件内容命令如下:
$ docker run --name tmp-nginx-container -d nginx
#以下根据使用场景选用配置目录
#仅复制nginx.conf这个文件(针对配置变动加大,需要手动修改,或者已有子目录配置)
$ docker cp tmp-nginx-container:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf
#复制nginx下的conf文件夹所有内容(需要使用官方原版内容,变更内容较小时候)
$ docker cp tmp-nginx-container:/etc/nginx /data/nginx
$ docker rm -f tmp-nginx-container
$ mv /data/nginx/nginx/* /data/nginx/conf/
rm -rf /data/nginx/nginx
nginx.conf 默认配置如下:
(使用哪个端口监听,反向代理这些请全部写到/data/nginx/conf.d目录下按域名划分配置文件,请勿修改/data/nginx/nginx.conf文件)
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;
}
4、启动docker Nginx命令
docker run --name=nginx \
--restart=always \
-v /data/nginx/www:/usr/share/nginx/html \
-v /data/nginx/conf/:/etc/nginx/ \
-v /data/nginx/logs:/var/log/nginx \
-v /data/nginx/ssl:/usr/local/nginx/ssl \
-v /etc/localtime:/etc/localtime \
--net=host \
-d 10.10.3.126:8281/nginx:1.22.0
5、检测Nginx服务是否启动成功,
查看服务端口是否监听命令:
netstat -antulp | grep 80
服务端口监听后,在浏览器的地址栏中输入服务器的ip地址:80,例:http://10.10.71.22:80/,即可访问Nginx的默认开始界面,注意服务器需要报80、443及相关业务端口加入安全组并且防火墙需要开发该端口(或者直接关掉防火墙)外网才能成功访问。
6、nginx版本隐藏设置
文章参考:https://l-t.top/2276.html
7、nginx日志分割设置
文章参考:https://l-t.top/2277.html
8、其他配置设置参考:
这篇文章带你全面掌握 Nginx !:https://l-t.top/2188.html
文章目录
关闭