рд╡реЗрдмрд╕рд░реНрд╡рд░ nginx + fastcgi-рдЖрд╡рд░рдг + matlab

рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдирд╣реАрдВ рд╣реИ рдЬрдм рдореИрдВрдиреЗ рдЖрдЬ рд╕реЛрдЪрд╛: рдХреНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ, рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреБрдЫ рд╕рдВрдХреАрд░реНрдг рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ? рдореИрдВ рдПрдХ рдЕрд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред



рдХрд┐рд╕ рд▓рд┐рдП?


рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдХрд┐рд╕реА рднреА рд░реИрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ matlab рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдирд╛ рдерд╛ред рдореИрдВрдиреЗ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛? рдЗрд╕рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реИрдВред рдпрд╣ рдореБрдЭреЗ рд╕рд┐рд░реНрдл рдордЬрд╛рдХрд┐рдпрд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЙрдирдХреЗ рдХрд╛рдо рдореЗрдВ рдХрд┐рддрдиреЗ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреБрдЫ рд╕реНрдЯреАрд░рд┐рдпреЛрдЯрд╛рдЗрдкрд┐рдХрд▓ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ "рдорд╕реНрддрд┐рд╖реНрдХ рдорд╕реНрддрд┐рд╖реНрдХ" рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ php-рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЛ рдлрдЯрдХрд╛рд░ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдмрд╕ рдПрдХ рдРрд╕реА рдШрдЯрдирд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдиреЛрдЯ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдЧрд╛ред

рдХреИрд╕реЗ?


рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рд╡реНрдпрд╛рдЦреНрдпрд╛рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ GNU рдСрдХреНрдЯреЗрд╡ рдХреЛ рд▓рд┐рдирдХреНрд╕ рдХреА рдореБрдлреНрдд рдФрд░ рдЖрд╕рд╛рди рдкрд╣реБрдБрдЪ рдХреЗ рдХрд╛рд░рдг рдЪреБрдирд╛ред рдореИрдВрдиреЗ рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ nginx рдХреЛ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдЪреБрдирд╛ рдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдореБрдЭреЗ рдПрдХ CGI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ matlab рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдпреВрдирд┐рдХреНрд╕ рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЕрд╡рд╕рд░ рд╣реИ - рдПрдХ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЖрдк рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рдкрде рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░реНрдпрддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдкрдиреЗ рдЖрдк рд╕реЗ, рдирдЧреНрдиреЗрдХреНрд╕ рдХреЛ рд╕рд░рд▓ рд╕реАрдЬреАрдЖрдИ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рд╕реЗ рд░реИрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдиреЗ рдореЗрд░реА рдорджрдж рдирд╣реАрдВ рдХреАред рдПрдХ рдЕрдиреНрдп рд╕реНрд░реЛрдд рдореЗрдВ , рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЗ рдЗрддрдирд╛ рдХрд░реАрдм рдирд╣реАрдВ, рдпрд╣ nginx fcgiwrapper рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдХрд┐ рдореЗрд░реЗ рд╡рд┐рддрд░рдг рдХрд┐рдЯ рдбреЗрдмрд┐рдпрди рдХрд╛ рднреА рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

рдХреНрдпрд╛ рд╣реБрдЖ рдерд╛?


рдЕрдВрддрд┐рдо nginx рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛:
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; } 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдкреНрд▓реЙрдЯ 1 рдмрдЬреЗ:
 #!/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 


рдХреНрдпрд╛ рд╣реБрдЖ рдерд╛?


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ: http://m.leprodc.ru/

рдкрдврд╝реЗрдВ:

Source: https://habr.com/ru/post/In138984/


All Articles