Исправьте конфигурацию nginx, чтобы разрешить iframe - PullRequest
0 голосов
/ 11 июля 2020

Обращаюсь к вам, потому что в течение нескольких дней я пытался добавить свою каплю из цифрового океана в iframe на моем сайте. Он продолжает говорить мне, что это не работает, потому что мои параметры X-Frame установлены на sameorigin, который я проверил в заголовке, это правда. Я попробовал несколько вещей, чтобы заставить его работать. Сначала я попытался проверить, могу ли я изменить параметры X-Frame в моем файле /etc/nginx/nginx.conf. Итак, я добавил:

add_header X-Frame-Options DENY;  

Я пробовал использовать бит html, а также бит сервера или часть местоположения, но он никогда не работал, и, глядя на ответ заголовка, я всегда имел одно и то же происхождение и не отрицал (я знаю, что я не должен ставить запретить, чтобы разрешить iframe, но это должно было проверить, действовал ли я в нужном месте). Я также пытался добавить CSP следующим образом:

add_header Content-Security-Policy "frame-ancestors 'self' mysite.com;

, но он тоже не отображается в моем заголовке ... Кажется, ничего не меняет мой заголовок. Что я должен делать? Я попытался перезапустить дроплет и использовать grep, чтобы проверить, были ли другие места с X-Frame-Options, но это не так. Пожалуйста, помогите мне, потому что это сводит меня с ума.

Вот мой Nginx файл конфигурации:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 768;
        # multi_accept on;
}

http {
        
        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        # server_tokens off;
        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;

}

, а вот мой / etc / nginx / sites-enabled / default

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;


        location / {
               
                try_files $uri $uri/ =404;
        }
        server {
        listen 80;
        listen [::]:80;

        server_name sub.domain.com;

        root /var/www/sub.domain.com;
        index index.html;

        location / {
                
                try_files $uri $uri/ =404;

        }

}

1 Ответ

0 голосов
/ 12 июля 2020

Верно. Я обнаружил, что мой сервер был запущен с помощью traefik, а не nginx напрямую, поэтому мне пришлось настроить конфигурацию в файле traefik.toml.

...