docker 中 [emerg] unknown directive "more_set_headers"
时间: 2023-08-30 17:07:04 浏览: 236
如果在Docker中使用Nginx出现 "[emerg] unknown directive "more_set_headers"" 的错误,原因是该指令需要安装Nginx的HttpHeadersMore模块。
要解决这个问题,可以按照以下步骤安装该模块:
1. 在Dockerfile中安装HttpHeadersMore模块:
```
FROM nginx:latest
RUN apt-get update && apt-get install -y wget
RUN wget https://github.com/openresty/headers-more-nginx-module/archive/v0.33.tar.gz \
&& tar -xzvf v0.33.tar.gz \
&& rm v0.33.tar.gz \
&& docker-php-ext-install pdo_mysql mysqli mbstring \
&& cd headers-more-nginx-module-0.33 \
&& cp -r * /usr/src/nginx/modules/
```
2. 修改Nginx配置文件,添加more_set_headers指令:
```
more_set_headers "Server: YourServerName";
```
3. 重新构建Docker镜像:
```
docker build -t your-image-name .
```
4. 运行容器:
```
docker run -d -p 80:80 your-image-name
```
这样就可以成功使用more_set_headers指令了。
阅读全文