403 Bị cấm khi cố gắng truy cập trang thử nghiệm đơn giản của tôi


13

Tôi vừa cài đặt nginx và tôi đang cố gắng thiết lập trang web đầu tiên của mình. Tôi đang cố gắng sử dụng nginx với php-fpm. nginx đã được cài đặt (khi tôi truy cập ip của mình, tôi nhận được sự chào đón mặc định đến trang nginx).

Bây giờ tôi đang cố gắng để có được một kịch bản đơn giản đang chạy:

<?php
phpinfo();

Nhưng tôi tiếp tục nhấn một trang 403 Cấm. Trong nhật ký của máy chủ ảo của tôi, tôi có thể thấy rất nhiều dòng như:

2012/05/18 01:29:45 [error] 4272#0: *1 access forbidden by rule, client: x.170.147.49, server: example.com, request: "GET / HTTP/1.1", host: "example.com"

Các tập tin /srv/www/test/index.phpmà nginx là chủ sở hữu (tôi đã đi như là 777ing đường dẫn đầy đủ bao gồm các tập tin không có kết quả).

Tôi đã kiểm tra rằng nginx thực sự đang chạy theo người dùng và nhóm nginx/nginxtrong cấu hình và nó là. Trong nginx.conf tôi đã thay đổi cấu hình mặc định bao gồm đường dẫn để đảm bảo không có cấu hình nào khác cản trở ( include /etc/nginx/sites-enabled/).

Cấu hình tôi đang sử dụng trông giống như (nếu bạn cần các cấu hình khác (php-fpm / nginx.conf) vui lòng cho tôi biết):

server {
    listen 80;

    server_name example.com;
    root /srv/www/test;
    access_log /var/log/nginx/example-access.log;
    error_log  /var/log/nginx/example-error.log error;

    location ~ /.          { access_log off; log_not_found off; deny all; }
    location ~ ~$           { access_log off; log_not_found off; deny all; }

    location ~* .(js|css|png|jpg|jpeg|gif|ico|xml|swf|flv|eot|ttf|woff|pdf|xls|htc)$ {
        add_header Pragma "public";
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
        access_log off;
        log_not_found off;
        expires   360d;
    }

    location ~ /.ht {
        deny all;
        access_log off;
        log_not_found off;
    }

    location ~ /. {
        access_log off;
        log_not_found off;
        deny all;
    }

    location ~ ^/(index|frontend_dev|admin|staging).php($|/) {
        #rewrite ^/(.*)/$ /$1 permanent;
        fastcgi_split_path_info ^(.+.php)(.*)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;

    }

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

Câu trả lời:


22

Cấu hình của bạn đang cố tình chặn nó:

location ~ /. {
    access_log off;
    log_not_found off;
    deny all;
}

Điều đó sẽ phù hợp với bất kỳ yêu cầu nào trong đó một dấu gạch chéo được theo sau bởi một loại ký tự; các .nhân vật trong một biểu thức chính quy có nghĩa là "bất kỳ nhân vật".

Tôi giả sử bạn có nghĩa là kiểm tra nghĩa đen .; đó sẽ là cấu hình này:

location ~ /\. {

Hãy cho tôi biết nếu đó không phải là trường hợp!


OMG Bây giờ tôi cảm thấy thật ngu ngốc (xem xét thực tế là tôi đã tham gia vào việc này trong một thời gian nào đó). Cảm ơn vì phản hồi kịp thời của bạn!
user6669
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.