docker-compose部署nginx-arm版本
启动普通的nginx创建目录文件然后删除
//启动容器 docker run -p 10080:80 --name mynginx -d nginx //进入容器 docker exec -it mynginx bash //查看nginx目录 ls -al /etc/nginx //退出容器复制mynginx容器中/etc/nginx下的文件到当前目录 exit docker cp mynginx:/etc/nginx/nginx.conf . docker cp mynginx:/etc/nginx/conf.d . docker cp mynginx:/usr/share/nginx/html . //删除容器 docker stop mynginx && docker rm mynginx
创建docker-compose文件
cat > docker-compose.yaml << EOF version: '3' services: nginx: container_name: nginx image: nginx restart: always ports: - 11080:80 privileged: true volumes: - /etc/localtime:/etc/localtime:ro - ./conf/nginx/log/:/var/log/nginx # 注意:如下挂载都是覆盖 #- ./conf/nginx/conf.d:/etc/nginx/conf.d #- ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf:ro #- ./conf/nginx/html:/usr/share/nginx/html EOF
在当前目录启动nginx
docker-compose up -d
访问测试
ip:11080/index.html
docker-compose最后的挂载
//在/usr/local/myApp/html 中添加一个页面内容为hello world cd /usr/local/myApp/html cat >index.html << EOF hello world EOF //挂载到nginx中 cd /usr/local/docker/nginx/ vim docker-compose.yaml //追加到最后 - /usr/local/myApp/html:/usr/share/nginx/html //退出保存
前端项目放在指定目录中挂载到nginx的html中
启动测试
docker restart nginx
nginx.conf常用配置
########### 每个指令必须有分号结束。################# #user administrator administrators; #配置用户或者组,默认为nobody nobody。 #worker_processes 2; #允许生成的进程数,默认为1 #pid /nginx/pid/nginx.pid; #指定nginx进程运行文件存放地址 error_log log/error.log debug; #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg events { accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off #use epoll; #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport worker_connections 1024; #最大连接数,默认为512 } http { include mime.types; #文件扩展名与文件类型映射表 default_type application/octet-stream; #默认文件类型,默认为text/plain #access_log off; #取消服务日志 log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式 access_log log/access.log myFormat; #combined为日志格式的默认值 sendfile on; #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。 sendfile_max_chunk 100k; #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。 keepalive_timeout 65; #连接超时时间,默认为75s,可以在http,server,location块。 upstream mysvr { server 127.0.0.1:7878; server 192.168.10.121:3333 backup; #热备 } error_page 404 https://www.baidu.com; #错误页 server { keepalive_requests 120; #单连接请求上限次数。 listen 4545; #监听端口 server_name 127.0.0.1; #监听地址 location ~*^.+$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。 #root path; #根目录 #index vv.txt; #设置默认页 proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表 deny 127.0.0.1; #拒绝的ip allow 172.18.5.54; #允许的ip } } }
nginx常用命令
./nginx -s reload # 重新加载nginx配置文件并重启nginx ./nginx # 启动nginx ./nginx -s stop # 强制停止nginx ./nginx -s reopen # 重启nginx ./nginx -s quit # 优雅的停止nginx nginx -v # 查看nginx的版本 killall nginx # 杀死所有nginx进程 ps -ef | grep nginx # 查看nginx是否启动
标签:
Docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
2019-07-14 11.13 Java集合容器及线程安全性