sockets - FreeBSD jail 和套接字

标签 sockets freebsd jail

我是从 Linux 转向 freeBSD 的新手。

我读到有关 jail 的文章,该解决方案听起来非常适合服务器系统。 所以我对我的网络服务器的想法是创建 3 个 jail 。 mysql 一个jail,nginx 一个jail,php-fpm 一个jail。 现在 jail 必须相互通信。我该怎么做?

通过 IP?这将是一个很大的开销,但很安全。 这是一个例子:

  • 客户
    • -> TCP/IP -> NGINX
    • -> TCP/IP -> PHP-FPM
    • -> TCP/IP -> MYSQL
    • -> TCP/IP -> PHP-FPM
    • -> TCP/IP -> NGINX
    • -> TCP/IP -> 客户端

使用套接字:那将是一个安全损失..

  • 在主机系统上创建一个目录
  • 在 jail 中创建一个目录
  • 合并目录

您使用哪种解决方案?或者您有更好的解决方案?

最佳答案

我不会将 php-fpm 分开,但这是可能的。现在 IP 通信的开销不是那么大,考虑到数据库和 php 处理器需要进行的处理要大得多,也不是那么重要。特别是因为没有涉及实际的电线。数据包通过环回结构通过接口(interface)进行路由,不会命中线路。

分离的优势在于,如果需要,您可以将 jail 移动到另一台物理机器,并且移动 jail 是轻而易举的。

要澄清为什么不将 php-fpm 移到单独的 jail 中,是因为修改网站成为静态内容(图像)和动态内容(php 文件)的两个任务过程。优点是网络服务器软件的漏洞无法修改 php 代码。这也是为什么你不应该 nullfs如果您打算分开,您的 PHP 代码将被放到网络服务器 jail 中,因为它会破坏它的优势。

关于sockets - FreeBSD jail 和套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5951463/

相关文章:

php - 连接后保持 PHP 服务器套接字处于事件状态

linux - 免费 BSD : What is a global flag

python - 如何chroot Django

macos - 如何在 FreeBSD(和 macOS)中守护 shell 脚本

ruby-on-rails - 如何自定义 Capistranos SSH 命令?

linux - 在 jail 中执行命令

c - Unix 网络编程说明

c - 为什么我们不能在某些进程上接受()套接字并从其子进程中接收()数据?

c# - Image.FromStream 使用 networkStream

arm - 我可以使用什么来调试/跟踪 Pandaboard 上的逐步 Freebsd 内核启动过程?