symfony - Symfony 4 应用程序是无状态的吗?
问题描述
为了将一个应用程序部署到多台机器上,我有必要开发一个无状态应用程序。
所以我的问题是:Symfony 是无状态的吗?或者使用 Symfony 服务器变量,以便在多个服务器上我会遇到问题?
我已将 security.yml 中的无状态选项设置为 true:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: true
stateless: true
为了创建一个完整的无状态应用程序,我在 Symfony 中还有什么需要考虑的吗?
解决方案
概括起来总是有点危险,但我怀疑大多数 Symfony 应用程序都有会话形式的服务器状态。特别是,如果应用程序要求用户登录,则可能正在使用会话。
但是,服务器状态并不意味着您会遇到多台服务器的问题。会话变量可以存储在数据库或 redis 缓存中,因此可以共享。
我从未真正尝试过使用 stateless true 选项。如果您尝试使用会话,不确定会发生什么。但值得一试。只要您实际上不使用会话,那么您的应用程序就应该是无状态的。
而且,如果您确实需要某种状态(可能是为了跟踪用户登录),那么还有会话的无状态替代方案,例如Json Web Tokens(JWT)。
推荐阅读
- c# - 检查 Clipboard.GetImage() 在 C# 中是否透明
- javascript - 引导表:过滤器控制不起作用
- angular - 如何从 Angular Web 应用程序中读取 Firebase 配置?
- javascript - Day Calculation is wrong
- java - SQLException : Access denied for user 'utilisateur1'@'localhost' (using password: YES)
- performance - Terminal commands running extremely slow
- javascript - 用户反应后的机器人确认未在 Discord.js 中显示
- android - 调用 getToken(true) 后 Firebase 不更新令牌
- javascript - .env 环境变量没有被使用
- python - 如何在 Raspberry Pi 上使用 Python 生成音频时播放音频