群晖怎么改nginx的配置 群晖搭建nginx

Nginx是一款高性能的Web和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。在《Mac系统docker安装配置及基本使用》中已使用过nginx镜像创建docker容器,这里介绍如何通过nginx容器映射宿主机站点目录,从而实现网页浏览。

1 获取官方Nginx镜像

获取镜像命令如下,请在终端中执行

# 当前latest版本对应1.17.9版本 # docker pull nginx:1.17.9 docker pull nginx
# 当前latest版本对应1.17.9版本 # docker pull nginx:1.17.9 docker pull nginx
# 当前latest版本对应1.17.9版本 # docker pull nginx:1.17.9 docker pull nginx

2 创建本地目录

~/docker/目录下创建nginx文件夹,然后在nginx文件夹内创建以下目录

  • conf:存放nginx配置
  • www:存放nginx站点数据文件
  • log:存放nginx运行日志

3 准备本地目录文件

3.1 nginx配置文件

先临时创建一个nginx容器,将容器内的nginx配置文件复制到本地,后面根据实际需要调整本地宿主机的配置文件,并将本地配置文件挂载到nginx容器内部,nginx容器内配置文件目录为/etc/nginx。操作命令如下

# 创建临时容器 docker run --name tmpnginx -d nginx # 复制容器内的配置文件目录到本地文件目录 docker cp tmpnginx:/etc/nginx ~/docker/nginx/conf # 删除临时容器 docker rm -f tmpnginx
# 创建临时容器 docker run --name tmpnginx -d nginx # 复制容器内的配置文件目录到本地文件目录 docker cp tmpnginx:/etc/nginx ~/docker/nginx/conf # 删除临时容器 docker rm -f tmpnginx
# 创建临时容器 docker run --name tmpnginx -d nginx # 复制容器内的配置文件目录到本地文件目录 docker cp tmpnginx:/etc/nginx ~/docker/nginx/conf # 删除临时容器 docker rm -f tmpnginx

nginx配置文件复制到本地后做相应调整,假设本地的~/docker/nginx/www目录内包含多个站点,目前只放一个站点site1,nginx容器使用site1。先备份默认的nginx配置文件~/docker/nginx/conf/conf.d/default.conf~/docker/nginx/conf/conf.d/default.conf.bak,然后调整~/docker/nginx/conf/conf.d/default.conf内容如下,使站点首页指向site1站点内的index.html页面:

server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/www/site1; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/www/site1; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/www/site1; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }

群晖怎么改nginx的配置 群晖搭建nginx_mac

3.2 站点静态文件

~/docker/nginx/www目录下放置site1文件夹,文件夹内存放静态站点文件,文件内容可根据具体情况而定。

3.3 nginx文件目录结构

经过上面两个步骤,nginx文件夹下目录结构如下图

群晖怎么改nginx的配置 群晖搭建nginx_mac_02

4 创建nginx容器

上一步骤中准备好所有文件后,创建正式的nginx容器,命令如下

# --name nginx 容器名称为nginx # -v ~/docker/nginx/conf:/etc/nginx 挂载配置目录 # -v ~/docker/nginx/log:/var/log/nginx 挂载日志目录 # -v ~/docker/nginx/www:/usr/share/www 挂载站点目录 # -p 8880:80 本地8880端口映射容器内部的80端口 # -d 后台运行 docker run --name nginx -v ~/docker/nginx/conf:/etc/nginx -v ~/docker/nginx/log:/var/log/nginx -v ~/docker/nginx/www:/usr/share/www -p 8880:80 -d nginx
# --name nginx 容器名称为nginx # -v ~/docker/nginx/conf:/etc/nginx 挂载配置目录 # -v ~/docker/nginx/log:/var/log/nginx 挂载日志目录 # -v ~/docker/nginx/www:/usr/share/www 挂载站点目录 # -p 8880:80 本地8880端口映射容器内部的80端口 # -d 后台运行 docker run --name nginx -v ~/docker/nginx/conf:/etc/nginx -v ~/docker/nginx/log:/var/log/nginx -v ~/docker/nginx/www:/usr/share/www -p 8880:80 -d nginx
# --name nginx 容器名称为nginx # -v ~/docker/nginx/conf:/etc/nginx 挂载配置目录 # -v ~/docker/nginx/log:/var/log/nginx 挂载日志目录 # -v ~/docker/nginx/www:/usr/share/www 挂载站点目录 # -p 8880:80 本地8880端口映射容器内部的80端口 # -d 后台运行 docker run --name nginx -v ~/docker/nginx/conf:/etc/nginx -v ~/docker/nginx/log:/var/log/nginx -v ~/docker/nginx/www:/usr/share/www -p 8880:80 -d nginx

5 访问容器内站点

上一步骤中,宿主机的8880端口映射到了nginx容器的80 端口,所以在宿主机使用8880端口访问容器内网站。如下图

群晖怎么改nginx的配置 群晖搭建nginx_mac_03

此时日志目录~/docker/nginx/log下已有访问日志,如下图

群晖怎么改nginx的配置 群晖搭建nginx_开发工具_04

参考

[1] 官方nginx容器镜像

原文链接:https://blog.51cto.com/u_16213650/10137151

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享