рдкрд╣рд▓реА рдЕрдкреНрд░реИрд▓ рдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдЪрд╛рд▓реВ рдХрд░реЗрдВ

рдЫрд╡рд┐

рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рд╕рдВрдкреВрд░реНрдг рдХреНрд░рд╛рдВрддрд┐ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

1) рдПрдХ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рд╡рд┐рддрд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕рд░реНрд╡рд░
2) рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░
3) 15 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп

рдпреЛрдЬрдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдкреНрд░реЙрдХреНрд╕реА рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рднреА рд▓рд┐рдВрдХ рдХреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдЧрд╛ рдЬреЛ рдЗрди рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред



рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реНрдХреНрд╡реАрдб:

  рдПрд╕рдПрд▓ рд▓реЛрдХрд▓рдиреЗрдЯ src 192.168.0.0/24
 http_access рд▓реЛрдХрд▓рдиреЗрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
 http_port 3128 рдкрд╛рд░рджрд░реНрд╢реА
 url_rewrite_program/usr/local/bin/flip.pl 


рдХрд╛рд░реНрддрд┐рдХреА / var / www / рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧреА
рдЖрдкрдХреЛ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЪреВрдВрдХрд┐ ubuntu рд╡рд┐рджреНрд░реВрдк рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛

рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯред /Usr/local/bin/flip.pl рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ

 #! / usr / рдмрд┐рди / рдкрд░реНрд▓
 $ | = 1;
 $ рдЧрд┐рдирддреА = 0;
 $ pid = $$;
 рдЬрдмрдХрд┐ (<>) {
         chomp $ _;
         рдЕрдЧрд░ ($ _ = ~ /(.*\.jpg)/i) {
                 $ url = $ 1;
                 рд╕рд┐рд╕реНрдЯрдо ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.jpg", "$ url");
                 рд╕рд┐рд╕реНрдЯрдо ("/ usr / bin / mogrify", "-flip", "/ var / www / images / $ pid- $ count.jpg");
                 рдкреНрд░рд┐рдВрдЯ "http://127.0.0.1/images/$pid-$count.jpg\n";
         }
         elsif ($ _ = ~ /(.*\.gif)/i) {
                 $ url = $ 1;
                 рд╕рд┐рд╕реНрдЯрдо ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "$ url");
                 рд╕рд┐рд╕реНрдЯрдо ("/ usr / bin / mogrify", "-flip", "/ var / www / images / $ pid- $ count.gif");
                 "http://127.0.0.1/images/$pid-$count.gif\n" рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ;

         }
         elsif ($ _ = ~ /(.*\.png)/i) {
                 $ url = $ 1;
                 рд╕рд┐рд╕реНрдЯрдо ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.png", "$ url");
                 рд╕рд┐рд╕реНрдЯрдо ("/ usr / bin / mogrify", "-flip", "/ var / www / images / $ pid- $ count.png");
                 рдкреНрд░рд┐рдВрдЯ "http://127.0.0.1/images/$pid-$count.png\n";

         }
         рдФрд░ {
                 рдкреНрд░рд┐рдВрдЯ "$ _ \ n" ;;
         }
         $ рдЧрд┐рдирддреА ++;
 }


рдЙрд╕рдХреЗ рдмрд╛рдж, iptables рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВ:

  рд╕реВрджреЛ iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128 

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


All Articles