mas*_*ost 3 nginx docker docker-compose
我通过 docker-compose 文件安装了 nginx:1.15.6 容器,我想从所有 nginx 响应中删除服务器标头,通过搜索我发现以下方式设置“more_set_headers 'Server: custom';” 在 nginx 配置中但有错误响应。如何删除 nginx docker 中的服务器标头?我想我应该安装“headers-more-nginx-module-0.33”模块,但我不知道如何安装它:(
错误 :
[emerg] 1#1: unknown directive "more_set_headers" in /etc/nginx/conf.d/default.conf:22
Run Code Online (Sandbox Code Playgroud)
docker-compose 文件:
version: '3'
services:
web:
build:
context: nginx
container_name: r_nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./code:/code
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./nginx/ssl:/etc/ssl
- ./nginx/logs:/var/log/nginx
restart: always
depends_on:
- php
php:
build: phpfpm
container_name: r_php
restart: always
volumes:
- ./phpfpm/raya.ini:/opt/bitnami/php/etc/conf.d/custom.ini
- ./code:/code
Run Code Online (Sandbox Code Playgroud)
默认.conf:
server_tokens off;
server {
listen 80;
listen 443 ssl;
ssl on;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_certificate /etc/ssl/cert_chain.crt;
ssl_certificate_key /etc/ssl/private.key;
index index.php index.html;
#server_name php-docker.local;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /code;
error_page 404 403 402 401 422 = /errors/error.php;
error_page 500 501 502 503 504 = /errors/error.php;
# bellow line get error :
# more_set_headers "Server: custom";
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~ /assets/ {
}
location / {
rewrite ^(.*)$ /index.php;
}
}
Run Code Online (Sandbox Code Playgroud)
more_set_headers是headers_more模块的一部分,所以它需要一个额外的 nginx 包才能正常工作。nginx-extras可以在为 nginx 容器构建 docker 镜像时安装:
FROM nginx:1.15.6
RUN apt-get update && apt-get install -y nginx-extras
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
7564 次 |
| 最近记录: |