我有一個應用程序在生產中使用Ruby on Rails
與Nginx
和Passenger
,性能很好,但隨着時間的推移(一小時或更長時間後)它會變慢,我需要重新啓動Nginx才能再次提高性能。我可以知道如何使它更加優化和可擴展,並避免繼續重新啓動。謝謝,大家需要你的幫助如此糟糕。如何使用Nginx和Passenger優化Ruby on Rails應用程序
-4
A
回答
2
您可以通過一些設置來優化您的Nginx
服務器。
如果您的服務器有root access
,並且已經正確添加Nginx
,您可以考慮進行一些更改。
1)運行sudo vim /etc/nginx/nginx.conf
&考慮基於什麼是你需要這些設置(不用更換整個代碼到你的服務器的一些默認設置是不是在這裏只需添加你neeed的):
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
multi_accept on;
use epoll;
}
worker_rlimit_nofile 40000;
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
client_body_timeout 500s;
client_header_timeout 500s;
keepalive_timeout 500s;
send_timeout 300s;
types_hash_max_size 2048;
# server_tokens off;
client_max_body_size 100000M;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log off;
#access_log /var/log/nginx/access.log;
#error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
gzip_vary on;
# gzip_proxied any;
gzip_comp_level 2;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_disable "MSIE [1-6]\.";
}
您可以根據您的應用和需要更改數字。
2)運行sudo vim /etc/nginx/sites-enabled/default
&考慮基於什麼是你需要這些設置(不用更換整個代碼到你的服務器的一些默認設置都沒有。只需添加那些你neeed) :
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
passenger_enabled on;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~* \.(jpg|jpeg|png|gif|ico)$ {
access_log off;
log_not_found off;
expires 30d;
}
location ~* \.(js)$ {
access_log off;
log_not_found off;
expires 150d;
}
location ~* \.(css)$ {
access_log off;
log_not_found off;
expires 150d;
}
}
您可以根據您的應用和需要更改數字。
請記住restart ngnix
更改後。
再次小心地添加或刪除什麼,再次切勿副本&整個代碼粘貼一些默認設置是不是在這裏。
另一件事是看看你的logs
& tmp
tmp
文件/文件夾,因爲你可以消除日誌以減少內存和空間。您還可以查看tmp
文件夾和設置。
您也可以考慮(推薦)在您的意見中做緩存。如您所知,導軌有Fragment and Russian doll caching。緩存將始終有助於提高響應時間。
如果你不熟悉緩存,也可以使用漸進式渲染。您可以使用gem 'progressive_render'
和watch this toturial。
希望它有幫助。
相關問題
- 1. 部署Ruby on Rails時出錯使用Passenger的應用程序
- 2. Rails應用程序Nginx/Passenger錯誤
- 3. 使用Passenger和Nginx將Rails應用程序部署到子URI?
- 4. 使用Passenger和Nginx將Rails應用程序部署到VPS(EC2)
- 5. Ruby on Rails應用程序
- 6. 如何在Ruby on Rails應用程序
- 7. 如何使用Nginx和Passenger部署Sinatra應用程序?
- 8. RHEL Ruby(1.9.2)on Rails(3.0.9)和Passenger(3.0.7)應用程序無法啓動
- 9. 如何在Ruby on Rails中開發模塊化應用程序
- 10. 如何使我的Ruby on Rails 2.3.4應用程序「Rails 3-ready」
- 11. phusion passenger上的Ruby on Rails
- 12. Ruby on Rails的SQL優化
- 13. 優化Ruby on Rails項目
- 14. 在nginx上部署多個Ruby on Rails應用程序
- 15. 如何使用Ruby on Rails構建測試版應用程序?
- 16. 如何使用Atlassian Bamboo部署Ruby on rails應用程序
- 17. 如何在Ruby on Rails應用程序中使用JQuery Mobile
- 18. 如何在heroku上使用多個ruby on rails應用程序
- 19. 如何在Ubuntu 14.04上使用Apache2 + Ruby on Rails配置Passenger LTS
- 20. 配置Passenger Server和Rails應用程序
- 21. 如何使用Ruby on Rails優化'string.split(「&」)。sort.join(「&」)'?
- 22. HTTP_IF_MODIFIED_SINCE頭沒有傳遞給Rails應用程序(Nginx,Passenger)
- 23. Phusion Passenger + Nginx虛擬主機配置適用於Debian 6中的Ruby on Rails應用程序6
- 24. 的Ruby on Rails應用程序測試使用RSpec和水豚
- 25. 使用Ruby on Rails和WebSockets製作音樂流應用程序
- 26. 優勢的Ruby on Rails應用程序消耗REST API
- 27. Ruby On Rails - Myspace應用程序開發
- 28. 分離Ruby on Rails應用程序
- 29. 驗證Ruby on Rails應用程序
- 30. Capistrano - Ruby on Rails應用程序
thx這個傢伙 – Arcubalino
沒問題。如果這對你有幫助,我很感激你是否贊成並接受你的答案 – Rubioli