search

Home  >  Q&A  >  body text

linux - nginx can be started by adding add_header, but it does not take effect and no error is reported.

nginx can be started by adding add_header, but it does not take effect and no error is reported
The configuration is as follows:



     server {
        listen       80;
        server_name  localhost;
        server_tokens off;
        
        #access_log  logs/host.access.log  main;
       

        location / {
            add_header X-Frame-Options 'SAMEORIGIN'; # 只允许本站用 frame 来嵌套
            add_header X-XSS-Protection '1; mode=block'; # XSS 保护
            add_header X-Content-Type-Options 'nosniff';#响应头可以禁用浏览器的类型猜测行为
            root   /mnt/hexo-auto-deploy/hexo/public;
            index  index.html index.htm;
           

        }

        location ~.*\.(js|css)?$ {  
            access_log   off;
            expires 1h;  
        } 

        location ~* ^.+\.(eot|ttf|otf|woff|woff2|svg)$ {
            access_log   off;
            expires max;
        }

It’s useless to try to put add_header in various places, I give up
The host is ecs ubuntu nginx version 1.13.0
I tested nginx -t and it said it was right, it was lost in the download

PHPzPHPz2767 days ago1426

reply all(1)I'll reply

  • 巴扎黑

    巴扎黑2017-05-27 17:46:23

    From the configuration you posted, it seems that there is no problem with the configuration.
    The problem may lie in the inheritance feature of add_header.
    If a location does not have the add_header instruction, it will inherit the add_header configured by the upper level. If it is written, it will completely overwrite the upper level add_header.

    Have you written additional configurations like location ~ .(html|htm)?$ and used the add_header directive in it?
    This will overwrite the add_header in location/.

    Another suggestion: put the root and index instructions in the server block. If there are no special needs, you can also put add_header in the server block.

    Supplement:
    To modify the header information of static resources, you need to use CTRL + F5 to refresh.
    In addition, if you use a CDN, you must also clear the cache on the CDN.
    Or, use /index.html?ver= 1 can also be used to bypass the cache.

    reply
    0
  • Cancelreply