LINUX.ORG.RU
ФорумAdmin

Как закрыть IP и оставить доступ к сайту только через CloudFlare

 ,


0

2

Здравствуйте. Добавил сайт на cloudflare чтобы отбить ботов от него и снизить нагрузку на сервер. Сайт у меня стоит на впске под связкой nginx+apache.

Сайт работает через клоуд, но если зайти на прямую по IP, то клоуд игнорируется и заходит сразу на машину, а если убрать IP из server_name, то сайт перестаёт быть доступен и по IP и по домену. Собственно вот в чем вопрос: как закрыть доступ к серверу по IP и разрешить его только через домен, который работает через клоуд?

Конфиги nginx:

server {
listen 80;
server_name 111.111.111.11 domain.ru;

root /var/www/;
index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php;
}

location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:23756;
}

location ~ /\.ht {
deny all;
}
}

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
worker_connections 768;
multi_accept on;
use epoll;
}

http {

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
keepalive_requests 1000;
reset_timedout_connection on;
client_body_timeout 10;
send_timeout 2;
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 crit;

##
# Gzip Settings
##

gzip on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "msie6";

##
# Virtual Host Configs
##

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

#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpSc..
# 
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
# 
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}

как закрыть доступ к серверу по IP и разрешить его только через домен, который работает через клоуд?

listen IP:PORT name;
return 403;

access_log/error_log > /dev/null – опционально. Если жалко даже заголовков – return 444.

znenyegvkby
()
Последнее исправление: znenyegvkby (всего исправлений: 1)
Ответ на: комментарий от snaf

это что еще за оптимизация такая?

Какая такая оптимизация?

access_log|error_log /dev/null;

если тупо отшиваешь по 403 и даже знать не хочешь сколько их и кто они такие.

znenyegvkby
()
Ответ на: комментарий от devems

Ну дак покажи логи nginx. Я же не телепат, вангую только что ошибка, а какая, кто ее знает.

znenyegvkby
()

А если так?

if ($host !~ ^(mydomain.org|www.mydomain.org)$ ) {
    return 444;
}
Aleksandra
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.