nginx.org的Command-line parameters页面翻译

本文详细介绍了Nginx支持的各种命令行参数及其用法,包括如何打印帮助信息、指定配置文件、设置全局指令、改变nginx路径前缀等。此外还介绍了用于测试配置文件、重启进程及重新打开日志文件的参数。
英文文档对应页面:Command-line parameters,链接地址:http://nginx.org/en/docs/switches.html

命令行参数

nginx支持如下的命令行参数:

-? | -h

打印命令行参数的帮助信息

-c file

使用一个其他的配置文件,代理默认的配置文件

-g directives

设置全局配置指令,例如:

nginx -g "pid /var/run/nginx.pid; worker_processes sysctl -n hw.ncpu;"(应该是:beginners_guide中讲到的 "main context",不在任意contexts中的指令)

-p prefix

设置nginx路径前缀,即存放服务器文件的目录(默认是:/usr/local/nginx)- nginx的安装目录?

-q

在配置测试期间,抑制非错误消息的输出

-s signal

发送一个signal给nginx的主进程。signal可以是下面的其中一个:

  • stop - 快速关闭
  • quit - 友好的关闭
  • reload - 重载配置文件,使用新的配置创建新的工作进程,友好的关闭旧的工作进程
  • reopen - 重新打开日志文件

-t

测试配置文件:nginx检查配置文件的语法正确性,并尝试打开配置文件中涉及到的文件(例如:include xxx,引入其他文件)

-T

同“-t”参数一样,但是附件打印配置文件到标准输出(1.9.2)

-v

打印nginx版本

-V

打印nginx版本,编译器版本,./configure配置参数


你这次的 Dockerfile 中写的是: ```dockerfile COPY /nginx/nginx.conf /etc/nginx/nginx.conf ``` 注意这个路径是 **绝对路径**:`/nginx/nginx.conf`,而不是相对路径 `./nginx/nginx.conf`。 --- ## ❗问题分析 Docker 的 `COPY` 指令中,路径是相对于构建上下文的,**不能使用绝对路径**。也就是说: - ✅ 合法写法:`COPY ./nginx/nginx.conf /etc/nginx/nginx.conf` - ❌ 非法写法:`COPY /nginx/nginx.conf /etc/nginx/nginx.conf` ### 为什么不能用 `/nginx/nginx.conf`? - `/nginx/nginx.conf` 是一个**绝对路径**,Docker 会尝试从你的**宿主机根目录**下找这个文件。 - 宿主机的根目录下并没有 `/nginx/nginx.conf`,所以会报错: ``` failed to compute cache key: failed to calculate checksum of ref ...: "/nginx/nginx.conf": not found ``` --- ## ✅ 正确写法 你应该使用相对路径,确保路径是相对于 **构建上下文目录** 的。 ### ✅ 示例 Dockerfile 片段: ```dockerfile FROM nginx:latest COPY ./nginx/nginx.conf /etc/nginx/nginx.conf ``` 前提是你的目录结构如下: ``` project-root/ ├── nginx/ │ └── nginx.conf ├── frontend/ │ └── Dockerfile ``` 并且你执行构建命令时在 `project-root/` 目录下: ```bash docker build -t frontend -f frontend/Dockerfile . ``` --- ## ✅ 解决方案总结 | 错误写法 | 正确写法 | |----------|-----------| | `COPY /nginx/nginx.conf /etc/nginx/nginx.conf` | `COPY ./nginx/nginx.conf /etc/nginx/nginx.conf` | --- ## ✅ 额外建议 ### 1. 确保构建上下文正确 你必须在 `project-root` 目录下执行构建命令,否则 `./nginx/nginx.conf` 会找不到。 ### 2. 使用 `docker build` 时指定上下文 ```bash cd ~/zy/project-root docker build -t frontend -f frontend/Dockerfile . ``` ### 3. 使用 `docker-compose` 时检查上下文配置 ```yaml services: frontend: build: context: . dockerfile: frontend/Dockerfile ``` --- ## ✅ 总结 | 问题 | 原因 | 解决方法 | |------|------|-----------| | COPY `/nginx/nginx.conf` 报 not found | 使用了绝对路径,Docker 不允许 | 改为相对路径 `./nginx/nginx.conf` | | 文件找不到 | 构建上下文路径错误 | 确保在项目根目录执行 `docker build` | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值