server { listen 8080; root /var/www/echoIP; error_page 403 404 500 501 502 503 504 = /error.html; set_real_ip_from 0.0.0.0/0; real_ip_header X-Real-IP; location = /ua { if ($http_user_agent ~* (curl|wget)) { return 200 $http_user_agent\n; } default_type application/json; return 200 "{\"ua\":\"$http_user_agent\"}"; } location = / { set $query_param ?justip=true&cli=true; if ($http_user_agent ~* (curl|wget)) { proxy_pass http://127.0.0.1:8080/query$query_param; } index index.html; } location = /ip { set $query_param ?justip=true; if ($http_user_agent ~* (curl|wget)) { set $query_param $query_param&cli=true; } proxy_pass http://127.0.0.1:8080/query$query_param; } location = /version { set $query_param ?version=true; if ($http_user_agent ~* (curl|wget)) { set $query_param $query_param&cli=true; } proxy_pass http://127.0.0.1:8080/query$query_param; } 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_legal 0; set $query_param ?cli=false; if ($http_user_agent ~* (curl|wget)) { set $query_param ?cli=true; } if ($uri ~* ^/info/?$) { set $is_legal 1; } if ($uri ~* ^/info/([^/]+?)$) { set $is_legal 1; set $query_param $query_param&ip=$1; } if ($is_legal = 0) { set $query_param $query_param&error=true; } proxy_pass http://127.0.0.1:8080/query$query_param; } location = /query { include fastcgi_params; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_param SCRIPT_FILENAME /var/www/echoIP/backend/queryInfo.php; } }