server { listen 8080; root /var/www/echoIP; set_real_ip_from 0.0.0.0/0; real_ip_header X-Real-IP; location = / { set $empty ""; if ($http_user_agent ~* (curl|wget)) { proxy_pass http://127.0.0.1:8080/ip$empty; } index index.html; } location = /ua { if ($http_user_agent ~* (curl|wget)) { return 200 $http_user_agent\n; } default_type application/json; return 200 $http_user_agent; } location = /ip { set $query justip=true; if ($http_user_agent ~* (curl|wget)) { set $query $query&cli=true; } include fastcgi_params; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_param QUERY_STRING $query; fastcgi_param SCRIPT_FILENAME /var/www/echoIP/backend/queryInfo.php; } location ~* ^/([^/]+?)$ { set $request_ip $1; if ($http_user_agent ~* (curl|wget)) { proxy_pass http://127.0.0.1:8080/info/$request_ip; } } location ^~ /info { set $is_cli 0; set $is_legal 0; if ($uri ~* ^/info/?$) { set $is_legal 1; } if ($uri ~* ^/info/([^/]+?)$) { set $is_legal 1; set $query ip=$1; } if ($is_legal = 0) { return 404; } if ($http_user_agent ~* (curl|wget)) { set $query $query&cli=true; } include fastcgi_params; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_param QUERY_STRING $query; fastcgi_param SCRIPT_FILENAME /var/www/echoIP/backend/queryInfo.php; } }