Configurazione consigliata (ottimale) del server Easy Redmine
Le prestazioni e il corretto funzionamento di Easy Redmine dipendono davvero molto dalla configurazione del server. Risulta importante ospitare l'applicazione in un ambiente ordinato e ben organizzato, in modo da assicurare che nessun errore di configurazione vada a bloccare Easy Redmine in qualche operazione particolare o, peggio ancora, ne interrompa del tutto l'esecuzione.
I manuali seguenti sono destinati ad amministratori di server con esperienza. Non puntiamo a insegnare come gestire un server nel complesso, dato che esistono sparsi in rete cumuli di manuali relativi alla generica amministrazione server. Stiamo semplicemente offrendo un approfondimento riguardante le parti più cruciali necessarie per eseguire l'applicazione. Un certo livello di abilità è comunque sempre necessario per l'esecuzione di qualsiasi applicazione web.
La configurazione consigliata per l'esecuzione di Easy Redmine è nginx + unicorn.
configurazioni supportate sono nginx (Apache) + unicorn (passeggero, puma, sottile).
WEBrick non è supportato. Altri server non sono stati testati.
Piattaforma Linux/Unix.
Distribuzioni testate:
- Debian 10
- CentOS 7+ (versioni più vecchie non accettano railsexpress)
- Ubuntu
Nginx
Consigliamo l'uso di nginx come webserver per la sua velocità.
Impostare la configurazione per l'upstream, non per TCP.
esempio di calcolo dei costi nella Domanda:
upstream unicorn {# per configurazioni socket di dominio UNIX: # server unix: /tmp/.sock fail_timeout = 0; unix server: /tmp/easysredmine.sock fail_timeout = 0; } server {ascolta 80; nome_server easysredmine; error_log /var/log/nginx/easysredmine_error.log; access_log /srv/log/nginx/easysredmine_access.log; location / {proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; proxy_set_header Host $ http_host; proxy_redirect off; proxy_pass http: // unicorno; }}
sezioni Avviso a monte con dove.
Unicorn
Unicorn è raccomandato per la sua velocità e la semplicità. Si tratta di una velocità ottimizzata server applicativo.
Configurazione:
worker_processes X
Impostare il numero a seconda delle elaborazioni del server. Un valore più alto non migliora necessariamente le prestazioni.
ascoltare '/tmp/easyredmine.sock'
Impostazione di unicorno sulla presa.
timeout 300
Alcuni oparations possono richiedere più tempo, quindi è meglio utilizzare un numero superiore. 300 dovrebbe essere un minimo.
Rubino
Si consiglia di installare Ruby 2.5.0 con railsexpress di RVM.
RVM
installazione RVM per il multi-utente:
arricciare -ssl https://get.rvm.io | sudo -s bash stabile
patch RVM
Dopo aver installato RVM, devi preparare le patch per Ruby railsexpress
-
git clone https://github.com/skaes/rvm-patchsets.git
-
cd RVM-patchset
-
./install.sh 2.5.0
Installare Ruby dopo aver installato le patch..
Railsexpress
rvm installare 2.5.0 --patch railsexpress
Dopo l'installazione di Ruby, impostare Ruby 2.5.0 come predefinito:
rvm uso 2.5.0 -default
Prima di eseguire Unicorn, è bene cambiare la configurazione dei valori predefiniti del Ruby Garbage Collector:
esporta RUBY_GC_HEAP_INIT_SLOTS = 1800000; esporta RUBY_HEAP_FREE_MIN = 18000; esporta RUBY_GC_MALLOC_LIMIT = 120000000; esporta RUBY_HEAP_SLOTS_INCREMENT = 144000; esporta RUBY_HEAP_SLOTS_GROWTH_FACTOR = 1;
MySQL
Ricordati di conservare il tuo versione del database aggiornata.
Ottimizzazione della configurazione del database affinché processi ogni richiesta.
Esempio di impostazione my.cnf:
[mysqld] bulk_insert_buffer_size = 64 M tmp_table_size = 512 M max_heap_table_size = 512 M query_cache_limit = 128 M query_cache_size = 512 M
...
La codifica consigliata è utf8mb4 e collazione utf8mb4_unicode_ci
collation_server = utf8mb4_unicode_ci character_set_server = utf8mb4
In config / database.yml
sviluppo: & adattatore di sviluppo: database mysql2: host mio database: host locale nome utente: password miodblogin: "RealySUpeRSEEEEcurepAssword !!!!" codifica: utf8mb4 pool: 256 produzione: <<: * sviluppo
Manuale step by step per la configurazione del server
Se questa informazione non è ancora abbastanza, abbiamo preparato un manuale ancora più dettagliate su come configurare il server per l'esecuzione di facile Redmine. L'esempio è per la configurazione CentOS, ma con piccole modifiche può essere utilizzato per altre distribuzioni Linux.
È sempre necessario pensare al contenuto prima semplicemente copiandolo e usandolo in produzione. Troverai i passaggi per il funzionamento garantito dell'applicazione, a meno che nessun'altra dipendenza o servizio lo blocchi. Il manuale può anche aiutare nella risoluzione dei problemi, per verificare la configurazione (autorizzazioni, limiti, versioni gemma, ecc.).
Il manuale è disponibile qui.
Fonti esterne
- nginx: http://nginx.org/en/docs/http/ngx_http_upstream_module.html
- Unicorno: http://unicorn.bogomips.org/
- RVM: https://rvm.io/rvm/install
- RVM patchset & railsexpress: https://github.com/skaes/rvm-patchsets