gpt4 book ai didi

nginx - 在没有 "' http' 指令的 Nginx 上启用 gzip 此处不允许”错误

转载 作者:行者123 更新时间:2023-12-02 09:54:38 25 4
gpt4 key购买 nike

我继承了一个需要启用 gzip 的代码库。我将这些行添加到我的 nginx staging.conf 文件中(该文件显示在另外两个位置:/etc/nginx/sites-enabled/和/etc/nginx/sites-available/):

http {
# enable gzip compression
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css;
gzip_vary on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
# end gzip configuration
}

但是当我尝试重新启动 nginx 时,它失败了(没有任何错误消息),并且运行“sudo nginx”会出现此错误: nginx: [emerg] "http"指令在/etc 中不允许/nginx/sites-enabled/staging.conf:37

这是整个conf文件:

# Myexample staging nginx setup. This is meant to be included in /etc/nginx/sites-available.

ssl_certificate /home/django/myexample.io/conf/nginx/wildcard-ssl.crt;
ssl_certificate_key /home/django/myexample.io/conf/nginx/wildcard-ssl.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";

server {
listen 80;
listen 443 ssl;
server_name www.stagingpy.myexample.io;

return 301 $scheme://stagingpy.myexample.io$request_uri;
}

server {
listen 80;
listen 443 ssl;
server_name stagingpy.myexample.io;

access_log /var/log/nginx/myexample_access.log;
error_log /var/log/nginx/myexample_error.log;

location ^~ /apple-touch-icon { root /home/django/myexample.io/static/ico/; expires 1h; }
location = /favicon.ico { root /home/django/myexample.io/static/ico/; expires 1h; }
location = /humans.txt { root /home/django/myexample.io/static/txt/; expires 1h; }
location = /robots.txt { root /home/django/myexample.io/static/txt/; expires 1h; }
location /static/ { root /home/django/myexample.io/ ; expires 30d; }

location / {
uwsgi_pass unix:///var/run/uwsgi/app/staging/socket;
include uwsgi_params;
}
}

http {
# enable gzip compression
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css;
gzip_vary on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
# end gzip configuration
}

我尝试将 http block 放在服务器 block 之后和服务器 block 之前,并且我尝试将服务器 block 放入 http block 中,但这些都不起作用。我在生产服务器上遇到了同样的问题( Production.conf 文件看起来几乎相同,除了没有“stagingpy”子域)。我还尝试将 gzip 行完全从 http block 中取出,这在运行“sudo nginx”时提示此错误: nginx: [emerg] “gzip”指令在/etc/nginx/sites-enabled/中重复staging.conf:38;但是,当我查看该路径中的文件时,我没有看到任何其他 gzip 行。

http block 应该放在哪里,以便我可以成功重新启动 nginx 并启用 gzip 进行文件压缩?

编辑:我也尝试过 creating a gzip.conf file in conf.d as shown here ,但即使在我从 staging.conf 文件中删除 http block 之后,我仍然收到有关 gzip 重复的错误(nginx: [emerg] "gzip"指令在/etc/nginx/conf.d/中重复gzip.conf:1)。这让我相信 gzip 已经在 conf 文件中的某个地方,但正在运行 find/etc/nginx/-type f -name "*.conf"| grep gzip -n 只给我 gzip.conf 文件。根据一些在线 gzip 测试,该网站启用了 gzip,但也有人说没有。

最佳答案

看起来还有另一个我不知道的 nginx.conf 文件(不知道为什么它在运行 find 时没有出现),其中包含 gzip,因此出现重复错误。在其他几个网站(例如 http://www.whatsmyip.org/http-compression-test/ )上检查我的网站后,似乎 http://checkgzipcompression.com/关于网站未压缩的错误。我不确定为什么 Google PageSpeed 仍然建议压缩,但这是我所能得到的。

关于nginx - 在没有 "' http' 指令的 Nginx 上启用 gzip 此处不允许”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29779920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com