guide:installation_serveurs_2014

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

guide:installation_serveurs_2014 [2014/07/14 22:15] – [10.7. Fail2ban] viviguide:installation_serveurs_2014 [2021/04/18 22:24] (Version actuelle) – modification externe 127.0.0.1
Ligne 599: Ligne 599:
 </code> </code>
  
-  * **loglevel**//Niveau de détail des logs (défaut 3)// +  * **loglevel** //Niveau de détail des logs (défaut 3)// 
-  * **logtarget = /var/log/fail2ban.log**//Chemin vers le fichier de log (description des actions entreprises par fail2ban)//+  * **logtarget = /var/log/fail2ban.log** //Chemin vers le fichier de log (description des actions entreprises par fail2ban)// 
 Les services à monitorer sont stockés dans **jail.conf**. Il est recommandé d'en effectuer une copie nommée **jail.local**  qui sera automatiquement utilisée à la place du fichier exemple. Les services à monitorer sont stockés dans **jail.conf**. Il est recommandé d'en effectuer une copie nommée **jail.local**  qui sera automatiquement utilisée à la place du fichier exemple.
  
Ligne 681: Ligne 682:
  
 <code> <code>
-ALLOWHIDDENDIR=/dev/.udev+ALLOWHIDDENDIR="/dev/.udev"
 ALLOWHIDDENFILE="/dev/.initramfs" ALLOWHIDDENFILE="/dev/.initramfs"
 ALLOWDEVFILE="/dev/.udev/rules.d/root.rules" ALLOWDEVFILE="/dev/.udev/rules.d/root.rules"
Ligne 2763: Ligne 2764:
  
     # Misc configuration     # Misc configuration
-    sendfile        on;+    sendfile        off;
     keepalive_timeout  65;     keepalive_timeout  65;
-    gzip  on;+ 
 + 
 +    # 
 +    # Enable gzip compression 
 +    # See : http://www.nginxtips.com/how-to-configure-nginx-gzip-compression/ 
 +    # 
 +    gzip on; 
 +    gzip_comp_level 6; 
 +    gzip_proxied any; 
 +    gzip_min_length  1100; 
 +    gzip_buffers  4 32k; 
 +    gzip_types    text/plain application/x-javascript text/xml text/css; 
 +    gzip_vary on
 + 
 + 
 +    # 
 +    # Set client body size to 5M # 
 +    # See : http://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/ 
 +    # 
 +    client_max_body_size 5M;
  
  
Ligne 2786: Ligne 2806:
 } }
 </code> </code>
 +
 +**Note :** L'option sendfile est souvent présentée à on. [[http://t37.net/optimisations-nginx-bien-comprendre-sendfile-tcp-nodelay-et-tcp-nopush.html|Cet article]] explique très bien l'utilité de cette option. Sauf qu'elle pose visiblement souci (pas confirmé mais j'en ai fortement l'impression) pour l'utilisation de liens symboliques. Par exemple sur phpmyadmin on se retrouve a avoir les fonctions jquery désactivées... (ou encore d'autres trucs corrigé autrement mais bon..). Exemple de souci sur [[http://serverfault.com/questions/502498/nginx-doesnt-follow-symlink-properly|cette page]]
  
 Et enfin nous configurons nos sites (ici je fais celui par defaut mais le travail est le même pour chaque site et à adapter) : Et enfin nous configurons nos sites (ici je fais celui par defaut mais le travail est le même pour chaque site et à adapter) :
Ligne 2797: Ligne 2819:
 <code> <code>
 server { server {
-    listen       80; +    listen 80; 
-    server_name  localhost;+    server_name localhost;
  
  
     # Proxy to the backend     # Proxy to the backend
     location / {     location / {
-        proxy_pass             http://192.168.100.21;+        proxy_pass http://192.168.100.21; 
 + 
 +        # To enable cache : carefull php will be cached too ! 
 +        # proxy_cache cache; 
 +        # proxy_cache_valid 12h; 
 +        # expires 12h; 
 +        # proxy_cache_use_stale error timeout invalid_header updating; 
 +    } 
 + 
 + 
 +    # Cache of static content 
 +    location ~*^.+(swf|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ { 
 +        proxy_pass http://192.168.100.21; 
         proxy_cache cache;         proxy_cache cache;
-        proxy_cache_valid 12h+        proxy_cache_valid 2d
-        expires 12h; +        expires 7d;
-        proxy_cache_use_stale error timeout invalid_header updating;+
     }     }
  
Ligne 2823: Ligne 2857:
 sudo apt-get install php5-fpm sudo apt-get install php5-fpm
 sudo apt-get install php5-mysql sudo apt-get install php5-mysql
-sudo apt-get install php-apc 
 sudo apt-get install php5-cgi sudo apt-get install php5-cgi
 sudo apt-get install php5-cli sudo apt-get install php5-cli
Ligne 2839: Ligne 2872:
  
 <code bash> <code bash>
-php-apc                                         install 
 php-gettext                                     install php-gettext                                     install
-php5-apcu                                       install 
 php5-cgi                                        install php5-cgi                                        install
 php5-cli                                        install php5-cli                                        install
Ligne 2864: Ligne 2895:
  
 <code> <code>
-open_basedir = /var/www:/tmp:/usr/share/phpmyadmin+open_basedir = /var/www:/tmp:/usr/share/phpmyadmin:/var/lib/phpmyadmin:/usr/share/javascript
  
 disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,exec,system,popen,proc_open,shell_exec disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,exec,system,popen,proc_open,shell_exec
Ligne 2881: Ligne 2912:
 <code bash> <code bash>
 sudo nano /etc/php5/fpm/pool.d/www.conf sudo nano /etc/php5/fpm/pool.d/www.conf
 +</code>
 +
 +**Enfin, avec la dernière version de PHP, APC semble ne plus fonctionner...** C'est remplacé par un module built in comme expliqué sur [[https://www.digitalocean.com/community/questions/how-to-install-alternative-php-cache-apc-on-ubuntu-14-04|cette page]] et [[https://www.digitalocean.com/community/questions/enable-php-5-5-opcache-on-ubuntu-14-04-with-nginx-and-php-fpm|cette page]]
 +
 +<code bash>
 +sudo nano /etc/php5/fpm/php.ini
 +</code>
 +
 +Et modifier ainsi (la taille de mémoire est a adapter en fonction de votre serveur)
 +
 +<code>
 +opcache.enable=1 
 +opcache.memory_consumption=1024
 +opcache.max_accelerated_files=4000
 +opcache.revalidate_freq=60
 +</code>
 +
 +Et bien sur redémarrer le service :
 +
 +<code bash>
 +sudo service php5-fpm restart
 +</code>
 +
 +Et pour avoir un petit visu sur l'état de votre configuration de cache je vous recommande [[https://github.com/rlerdorf/opcache-status|ce petit outil]].
 +
 +Et pour les optimisations, j'ai [[http://www.guillaume-leduc.fr/gestion-caches-nginx-php-fpm.html|cet article]] me semble très bien (j'y ai trouvé l'outil ci dessus).
 +
 +**Si votre phpmyadmin vous fait un truc dans ce style :**
 +
 +<code>
 +PHP message: PHP Fatal error:  require_once(): Failed opening required './libraries/php-gettext/gettext.inc'
 +</code>
 +
 +Alors la solution se trouve sur [[http://superuser.com/questions/590208/phpmyadmin-symlinks-error-after-ubuntu-upgrade|cette page]].
 +
 +<code bash>
 +sudo rm /usr/share/phpmyadmin/libraries/php-gettext/*
 +sudo ln /usr/share/php/php-gettext/* /usr/share/phpmyadmin/libraries/php-gettext
 +</code>
 +
 +**Si votre phpmyadmin rale sur mcrypt :**
 +
 +[[http://stackoverflow.com/questions/19446679/mcrypt-not-present-after-ubuntu-upgrade-to-13-10|Cette page pourrait vous aider]]
 +
 +<code bash>
 +sudo php5enmod mcrypt
 +sudo service php5-fpm restart
 +</code>
 +
 +**Pour améliorer vos logs (attention si ya de la charge déjà sur les serv' c'est a éviter) sur php fpm ** (sinon c'est un peu light comme indiqué sur [[http://stackoverflow.com/questions/8677493/php-fpm-doesnt-write-to-error-log|cette page]]) :
 +
 +<code bash>
 +sudo nano /etc/php5/fpm/pool.d/www.conf
 +</code>
 +
 +Activer ceci :
 +
 +<code>
 +catch_workers_output = yes
 </code> </code>
  
Ligne 2888: Ligne 2978:
 Ici il s'agit d'installer NGINX sur les VM middle. La procédure est la même que pour les front. Par contre concernant la configuration on n'est plus sur de serveur proxy mais du serveur web classique. Ici il s'agit d'installer NGINX sur les VM middle. La procédure est la même que pour les front. Par contre concernant la configuration on n'est plus sur de serveur proxy mais du serveur web classique.
  
-Il suffira de le faire communiquer avec PHP FPM via le sock mis en place précédemment.+Un exemple de configuration générale : 
 + 
 +<code bash> 
 +sudo nano /etc/nginx/nginx.conf 
 +</code> 
 + 
 +<code> 
 +user  www-data www-data; 
 +worker_processes  1; 
 + 
 +error_log  /var/log/nginx/error.log warn; 
 +pid        /var/run/nginx.pid; 
 + 
 + 
 +events { 
 +    worker_connections  1024; 
 +
 + 
 + 
 +http { 
 +    include       /etc/nginx/mime.types; 
 +    default_type  application/octet-stream; 
 + 
 + 
 +    # Get real ip from front server 
 +    set_real_ip_from 192.168.100.12; 
 +    real_ip_header X-Forwarded-For; 
 + 
 + 
 +    # Log configuration 
 +    log_format  main  '$remote_addr - $remote_user [$time_local] "$request"
 +                      '$status $body_bytes_sent "$http_referer"
 +                      '"$http_user_agent" "$http_x_forwarded_for"'; 
 +    access_log  /var/log/nginx/access.log  main; 
 + 
 + 
 +    # Misc configuration 
 +    sendfile        on; 
 +    keepalive_timeout  65; 
 + 
 + 
 +    # 
 +    # Enable gzip compression 
 +    # See : http://www.nginxtips.com/how-to-configure-nginx-gzip-compression/ 
 +    # 
 +    gzip on; 
 +    gzip_comp_level 6; 
 +    gzip_proxied any; 
 +    gzip_min_length  1100; 
 +    gzip_buffers  4 32k; 
 +    gzip_types    text/plain application/x-javascript text/xml text/css; 
 +    gzip_vary on; 
 + 
 + 
 +    # 
 +    # Set client body size to 5M # 
 +    # See : http://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/ 
 +    # 
 +    client_max_body_size 5M; 
 + 
 + 
 +    # Include configuration files for differents sites 
 +    include /etc/nginx/conf.d/*.conf; 
 +
 +</code> 
 + 
 +Il suffira ensuite de le faire communiquer avec PHP FPM via le sock mis en place précédemment.
  
 Par exemple : Par exemple :
Ligne 2922: Ligne 3078:
         include        fastcgi_params;         include        fastcgi_params;
     }     }
 +    
 +    # Security deny .ht* files like htaccess
 +    location ~ /\.ht {
 +      deny  all;
 +    }
 +    
 +    # Rewrites rules
 +    location / {
 +        try_files $uri $uri/ /index.php?$args;
 +    }
 +
 } }
 </code> </code>
  
 +**Note 1 :** La partie .ht est pour éviter que des .htaccess et compagnie trainent en visible alors qu'ils ne sont utilisés que par apache et pas par nginx (certaines appli en laissent trainer partout).
  
 +**Note 2 :** La partie rewrite est proposée a titre d'exemple mais est à adapter ou a enlever selon votre application. Elle propose un remplacement des règles de rewrite habituellement vues avec apache.
 ===== 20.5. Installation / Configuration MySQL sur les VM middle / back ===== ===== 20.5. Installation / Configuration MySQL sur les VM middle / back =====
  
  • guide/installation_serveurs_2014.1405368952.txt.gz
  • Dernière modification : 2021/04/18 22:24
  • (modification externe)