Ubuntu
Nginx拒絕IP並設置自定義403下載文件?
我已經為在 Ubuntu 上執行的預設站點附加了我的 Nginx conf 文件。
我想要達到的目標如下:
- 主目錄是
/usr/share/nginx/www
預設文件index.php
- 暫時限制 IP 地址直到發布,所以只有我的 IP 可以查看該站點
- 對於嘗試訪問該站點的其他所有人,拒絕他們,但顯示位於主目錄中的自定義
403.html
403/usr/share/nginx/www
頁面但發生的情況是,當我從不同的 IP 地址(被拒絕訪問的地址)訪問該站點時,它將載入 403.html 頁面但下載一個名為“下載”的文件。如果我訪問 example.com/index.php,它將下載一個 index.php 文件。
有些東西沒有正確配置,但不確定它是什麼。
server { listen 80; root /usr/share/nginx/www; index index.php; server_name example.com; location / { try_files $uri $uri/ /index.php; # restrict IP's allow 123.456.789.0; allow 123.456.789.1; deny all; } location = /403.html { root /usr/share/nginx/www; allow all; } error_page 404 /404.html; error_page 403 /403.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; # root /var/www; } # pass the PHP scripts to FastCGI server listening on the php-fpm socket location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
您應該將拒絕規則從
location /
上一級移動,因為現在它們不適用於 php 請求。server { listen 80; root /usr/share/nginx/www; index index.php; server_name example.com; allow 123.456.789.0; allow 123.456.789.1; deny all; location / { try_files $uri $uri/ /index.php; } #.... # pass the PHP scripts to FastCGI server listening on the php-fpm socket location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }