Docker 安装 nginx

业务需求

  • 通过Nginx实现蓝绿发布,24小时不停机
  • 修改config文件后执行nginx -s reload命令,该命令的作用:nginx 不停止服务在处理新的请求的时候会平滑的将就得nginx.conf配置文件更新为新的配置文件。

前期准备

  • 确定nginx版本: 1.14.0
  • nginx热启动命令
    docker exec -it nginx:1.14.0 nginx -s reload
  • 统一宿主机挂载路径:usr/loacl
第三方软件安装目录: usr/loacl,之前是 opt;
系统中的配置文件目录:etc 如果你更改了该目录下的某个文件可能会导致系统不能启动。;
用户目录:home;
  • 设置容器开机启动 --restart=always
  • 设置特权级运行的容器 --privileged=true
    • 有的时候我们需要容器具备更多的权限,比如操作内核模块,控制 swap 交换分区,挂载 USB 磁盘,修改 MAC 地址等
  • docker cp 配置文件从容器中复制到宿主机
docker cp 58:/etc/nginx/nginx.conf /nginx.conf
58:容器id;宿主机复制路径:当前路径 

参考连接

搭建

  1. pull nginx
    docker pull nginx:1.14.0
  2. 启动 nginx
docker run -d -p 80:80 
--name nginx 
--restart=always
--privileged=true  
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-v /usr/local/nginx/html/:/usr/share/nginx/html/
-v /usr/local/nginx/logs/:/var/log/nginx/
-v /usr/local/nginx/conf/:/etc/nginx/conf.d
nginx:1.14.0
  1. 初始化nginx.config文件

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;
}

后台多节点转发sessionid变化

  1. 可以将负载轮询方式改为iphash,每个IP发送到同一个后端
  2. Nginx之upstream的四种配置方式

关于端口映射监听的问题

  1. 使用nginx代理请求到百度
  2. nginx监听的端口 需要映射到宿主机; 如 -p 80:80 -p 8847:8847
posted @   BBS_自律  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
点击右上角即可分享
微信分享提示