diff options
author | Ben Lubar <ben.lubar+github@gmail.com> | 2019-03-17 09:39:25 -0500 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2019-03-17 15:39:25 +0100 |
commit | c3d1594576227fcbc45d1da97f474acbd23d831b (patch) | |
tree | e3548d2ea61c67cfdd414cf72ea80382c31992b5 /app/controllers/statuses_controller.rb | |
parent | a20354a20b9dffada0e8d6170ebc2ff13c79baea (diff) |
Reduce server load caused by anonymous viewing. (#9059)
Do not start a session if the current user is not logged in for public-facing pages. Mark pages that don't care about sessions as publicly cacheable. Keep the max age as 0 so proxies and browsers will still try to retrieve an updated version but can still fall back to the stale version if the site is down or too slow. Fixes #9035.
Diffstat (limited to 'app/controllers/statuses_controller.rb')
-rw-r--r-- | app/controllers/statuses_controller.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb index 3686bd9fd..fc44d5fb1 100644 --- a/app/controllers/statuses_controller.rb +++ b/app/controllers/statuses_controller.rb @@ -27,6 +27,8 @@ class StatusesController < ApplicationController def show respond_to do |format| format.html do + mark_cacheable! unless user_signed_in? + @body_classes = 'with-modals' set_ancestors @@ -36,7 +38,7 @@ class StatusesController < ApplicationController end format.json do - skip_session! unless @stream_entry.hidden? + mark_cacheable! unless @stream_entry.hidden? render_cached_json(['activitypub', 'note', @status], content_type: 'application/activity+json', public: !@stream_entry.hidden?) do ActiveModelSerializers::SerializableResource.new(@status, serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter) |