当用docker跑nginx镜像时,设置端口映射,则只有该映射端口起作用,nginx配置的其他端口无效

 docker run -d --name nginx --restart always -p 80:80 -v /docker_root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /docker_root/nginx/html:/usr/share/nginx/html -v /docker_root/nginx/logs:/var/log/nginx -v /docker_root/nginx/conf.d:/etc/nginx/conf.d  nginx

nginx 如果想要多个端口起效果,则将 -p 80:80 换成 --net host,即

docker run -d --name nginx --restart always --net host -v /docker_root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /docker_root/nginx/html:/usr/share/nginx/html -v /docker_root/nginx/logs:/var/log/nginx -v /docker_root/nginx/conf.d:/etc/nginx/conf.d  nginx

有时候我们安装了nginx后发现配置文件只有一个,/etc/nginx/nginx.conf
所有的配置包括虚拟目录也在此文件中配置, 这样当虚拟主机多了管理就有些不方便了,
这是需要我们把配置文件拆分开来,在/etc/nginx/conf.d/ 文件建立对应的域名配置文件,比如 /etc/nginx/conf.d/123.com.conf。只需要在原来文件/etc/nginx/nginx.conf 的http 块下加一句话就可以了:

#在http配置节的末尾添加配置引用
http {
    ...

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐