<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://jul.is.a.n0life.org/blog/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>jul is a nolife - Apache</title>
  <link>http://jul.is.a.n0life.org/blog/</link>
  <description></description>
  <language>ab</language>
  <pubDate>Thu, 09 Sep 2010 16:05:36 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Un hosts.deny pour apache 2</title>
    <link>http://jul.is.a.n0life.org/blog/post/2008/01/28/Un-hostsdeny-pour-apache-2</link>
    <guid isPermaLink="false">urn:md5:aeacf863f7681244abe4214e8f5b6e05</guid>
    <pubDate>Mon, 28 Jan 2008 17:12:00 +0100</pubDate>
    <dc:creator>jul</dc:creator>
        <category>Apache</category><category>Systèmes et Réseaux</category>    
    <description>    &lt;p&gt;Pour bloquer l'accès à un site web pour une adresse spécifique, j'ai d'abord tout simplement pensé à /etc/hosts.deny, mais pour aller plus loin j'avais besoins d'une solution plus fine. Après quelques recherches j'ai donc trouvé un moyen de le faire efficacement grâce au mod_rewrite d'apache.&lt;/p&gt;


&lt;p&gt;On rajoute déjà les règles dans le fichier de son vhost&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;

RewriteEngine On

RewriteMap hosts-deny txt:/etc/apache2/hosts.deny
RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND [OR]
RewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND
RewriteRule ^/.* - [F]

&lt;/pre&gt;


&lt;p&gt;Cette règle lit dans le fichier /etc/apache2/hosts.deny afin de lister les adresses ip ou domaines à bloquer&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;

uneip -
unnomdedomaine -
 
&lt;/pre&gt;


&lt;p&gt;Il ne manque plus qu'a redémarrer apache&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;

/etc/init.d/apache2 restart

&lt;/pre&gt;


&lt;p&gt;Les visiteurs étant listés dans /etc/apache2/hosts.deny se verront ainsi renvoyer vers une page &quot;Forbiden&quot;. On peut bien sur imaginer une redirection vers une page personnalisée genre (banni.html)&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;

&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;Vous avez été banni&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;h1&amp;gt;Vous n'êtes plus le bienvenu ici&amp;lt;/h1&amp;gt;
&amp;lt;/html&amp;gt;

&lt;/pre&gt;


&lt;p&gt;On change simplement la ligne&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;

RewriteRule ^/.* - [F]

&lt;/pre&gt;

&lt;p&gt;Par&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;

RewriteRule ^/.* /banni.html [L]

&lt;/pre&gt;


&lt;p&gt;Source: &lt;a href=&quot;http://httpd.apache.org/docs/2.0/misc/rewriteguide.html&quot; title=&quot;http://httpd.apache.org/docs/2.0/misc/rewriteguide.html&quot;&gt;http://httpd.apache.org/docs/2.0/mi...&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://jul.is.a.n0life.org/blog/post/2008/01/28/Un-hostsdeny-pour-apache-2#comment-form</comments>
      <wfw:comment>http://jul.is.a.n0life.org/blog/post/2008/01/28/Un-hostsdeny-pour-apache-2#comment-form</wfw:comment>
      <wfw:commentRss>http://jul.is.a.n0life.org/blog/feed/rss2/comments/25</wfw:commentRss>
      </item>
    
  <item>
    <title>Déploiement de ruby on rails avec apache 2.0 et mongrel</title>
    <link>http://jul.is.a.n0life.org/blog/post/2006/10/04/Deploiement-de-ruby-on-rails-avec-apache-20-et-mongrel</link>
    <guid isPermaLink="false">urn:md5:7224f3e34ed5fd8619bc8abc906a67e6</guid>
    <pubDate>Wed, 04 Oct 2006 09:59:00 +0200</pubDate>
    <dc:creator>jul</dc:creator>
        <category>Apache</category><category>Ruby On Rails</category><category>Systèmes et Réseaux</category>    
    <description>    &lt;p&gt;Le principal problème de Ruby on Rails, actuellement, est son déploiement dans un environnement de production. Il existe pourtant un certain nombre de possibilités plus ou moins simples.&lt;/p&gt;
&lt;p&gt;La solution que j’ai retenu est d’utiliser la capacité de clustering de &lt;a href=&quot;http://mongrel.rubyforge.org/&quot;&gt;mongrel&lt;/a&gt; avec la version 2.0 de &lt;a href=&quot;http://apache.org&quot;&gt;apache&lt;/a&gt; .
Les développeurs de mongrel conseillent l’utilisation d'apache 2.2 et de son mod_load_balancer. Néammoins, apache 2.0 reste la version la plus simple à utiliser, car maintenue par les principales distributions (Debian en tête).&lt;/p&gt;
&lt;p&gt;En imaginant que nous avons déjà un environnement rails en place, nous allons commencer par installer mongrel:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;br /&gt;$ sudo gem install mongrel&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Une fois mongrel installé, configurons le pour une application donnée :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;br /&gt;$ sudo mongrel_rails cluster::configure -e production \ &lt;br /&gt;-p 8000 -N 3 -c /repertoire/de/notre/application \ &lt;br /&gt;-a 127.0.0.1 --user www-data --group www-data&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
Petite explication, nous configurons mongrel en cluster de trois processus (-N 3) commençant au port 8000 (-p 8000), ce qui nous lancera trois processus (8000,8001 et 8002).
A noter également que notre répertoire devra posséder les permissions www-data.
Nous pouvons à présent lancer le cluster:
&lt;pre&gt;&lt;code&gt;&lt;br /&gt;$ sudo mongrel_rails cluster::start&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Il faut maintenant configurer apache pour qu’il gère de manière transparente ce cluster. Pour cela, nous allons utiliser le module mod_proxy de la version 2.0. Voici le code pour un hôte virtuel (/etc/apache2/site-availables/monsite.fr dans Debian):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;    ServerName www.monsite.fr&lt;br /&gt;    ServerAdmin admin@monsite.fr&lt;br /&gt;    DocumentRoot /repertoire/de/notre/application/public&lt;br /&gt;&lt;br /&gt;    &amp;lt;Proxy *&amp;gt;&lt;br /&gt;        Order deny,allow&lt;br /&gt;        Allow from all&lt;br /&gt;    &amp;lt;/Proxy&amp;gt;&lt;br /&gt;&lt;br /&gt;    ProxyRequests Off&lt;br /&gt;    ProxyPassReverse / http://localhost:8000/&lt;br /&gt;    ProxyPassReverse / http://localhost:8001/&lt;br /&gt;    ProxyPassReverse / http://localhost:8002/&lt;br /&gt;    ProxyPreserveHost On&lt;br /&gt;    RewriteEngine On&lt;br /&gt;    RewriteMap  servers rnd:/etc/apache2/map.txt&lt;br /&gt;    RewriteRule ^/(images|stylesheets|javascripts)/?(.*) $0 [L]&lt;br /&gt;    RewriteRule ^/(.*)$ http://localhost:${servers:ports}/$1 [P,L]&lt;br /&gt;&lt;br /&gt;    &amp;lt;Directory /repertoire/de/notre/application/public/&amp;gt;&lt;br /&gt;        Options +FollowSymLinks&lt;br /&gt;        Order allow,deny&lt;br /&gt;        allow from all&lt;br /&gt;    &amp;lt;/Directory&amp;gt;&lt;br /&gt;&lt;br /&gt;    ErrorLog /var/log/apache2/monsite_error.log&lt;br /&gt;    LogLevel warn&lt;br /&gt;    CustomLog /var/log/apache2/monsite_access.log combined&lt;br /&gt;    ServerSignature On&lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;N’oubliez pas d’activer le module apache et le nouveau site.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;br /&gt;$ sudo a2enmod proxy&lt;br /&gt;$ sudo a2ensite monsite.fr&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Il ne reste plus qu’à relancer apache!
Les connexions vers www.monsite.fr seront ainsi redirigées automatiquement vers le cluster le plus approprié.&lt;/p&gt;
&lt;p&gt;Cette technique nous permet d’avoir une application rails supportant une charge plus importante en multipliant les clusters.&lt;/p&gt;
&lt;p&gt;Voir également (en anglais): &lt;a href=&quot;http://mongrel.rubyforge.org/docs/apache.html&quot;&gt;la doc de mongrel&lt;/a&gt;  et &lt;a href=&quot;http://times.usefulinc.com/2006/09/13-mongrel-apache20&quot;&gt;ce blog.&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>