Today I wondered not for the first time: what programming languages are suitable for the web, and does it make sense to solve some narrow problem in a way that at first glance doesn’t fit? I wanted to practice doing something ordinary in an unusual way.
location ~ \.m$ { gzip off; #gzip makes scripts feel slower since they have to complete before getting gzipped fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_index index.m; fastcgi_param SCRIPT_FILENAME /var/www/m.leprodc$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; }
#!/usr/bin/octave -q domain="m.leprodc.ru"; ARG=sscanf(getenv("QUERY_STRING"),"a=%g&b=%g&c=%g"); if (length(ARG)==3) a=ARG(1); b=ARG(2); c=ARG(3); handle=figure; X=-10:0.1:10; Y=a.*X.^2+b.*X+c; printf("Content-type: text/plain\n\n"); plot(X,Y); print(handle, sprintf('/tmp/plot-%s:%s.png',getenv("REMOTE_ADDR"),getenv("REMOTE_PORT")),'-dpng'); printf("Full image: http://%s/plot-%s:%s.png\n\n",domain,getenv("REMOTE_ADDR"),getenv("REMOTE_PORT")); else printf("Location: http://%s/\n\n",domain); endif
Source: https://habr.com/ru/post/138984/
All Articles