2016-03-03 6 views
0

Переход на https://example.com напрямую работает нормально. Когда вы чирикаете эту ссылку кому-то, и она укорачивается до чего-то вроде https://t.co/fBUFn9ap4e, они щелкают по ссылке, а URL-адрес изменяется на https://example.com, но сервер возвращает ошибку 403. Почему это так?Nginx возвращает 403 при использовании Twitter Shortener

Nginx конфигурации:

upstream example.com { 
    server 127.0.0.1:8000; 
    keepalive 8; 
} 

server { 

    listen 0.0.0.0:80; 
    server_name example.com www.example.com; 
    return 301 https://example.com$request_uri; 

} 

server { 
    #listen 80; 
    listen 443 ssl; 
    server_name example.com; 
    access_log /var/log/nginx/example.com.log; 

    root /var/www/example.com/client/public; 

    ssl_certificate /etc/nginx/ssl/my_domain.crt; 
    ssl_certificate_key /etc/nginx/ssl/my_domain.key; 

    location/{ 
     proxy_http_version 1.1; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-NginX-Proxy true; 

     proxy_pass http://example.com; 
     proxy_redirect off; 
    } 

    location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|webp)$ { 
     expires 1M; 
     access_log off; 
     add_header Cache-Control "public"; 
    } 

    location ~* \.(?:css|js)$ { 
     expires 1y; 
     access_log off; 
     add_header Cache-Control "public"; 
    } 

    location ~* \.(?:rss|atom)$ { 
     expires 1h; 
     add_header Cache-Control "public"; 
    } 

    location ~* \.(?:manifest|appcache|html?|xml|json)$ { 
     expires -1; 
    } 

    valid_referers none blocked example.com *.example.com; 
    if ($invalid_referer) { 
     return 403; 
    } 

} 

server { 

    listen 443 ssl; 
    server_name www.example.com; 
    return 301 https://example.com$request_uri; 

} 
+0

- это ваш сервер за планом обслуживания облачных вычислений? – semm0

+0

Нет, просто цифровой океанский ящик с nginx, проксирующий к узлу app –

+0

, можете ли вы изменить свой вопрос и добавить детали конфигурации nginx? PLS не забудьте прокомментировать квалификационные имена и IP-адреса ... используете ли вы proxy_pass с ip: port или как прямое подключение к приложению? (найдено здесь: http://stackoverflow.com/questions/30097334/nodejs-on-nginx-not-working-without-a-port-number-in-the-url) – semm0

ответ

1

пощечины лоб стыда

Не могу поверить, что я пропустил это:

valid_referers none blocked example.com *.example.com; 
if ($invalid_referer) { 
    return 403; 
} 

немой немой немой немой немой. Побольше спать.

+0

простые решения являются лучшими! – semm0

Смежные вопросы