生于俄罗斯的 Web 服务器王者 Nginx,现宣布俄罗斯禁止贡献!
作者 | 苏宓
出品 | CSDN
不久之前,一些底层工具、软件、开源项目相继宣布在俄罗斯停服,彼时也有不少开发者呼吁 Nginx 是时候进行反限制了。
万万没想到,就在国际局势发生改变的一个月后,Nginx 动了手,但是有些「意料之外,情理之中」,只因其对标的是俄罗斯的开发者们。
3 月 15 日,美国知名网络公司 F5 CEO FRANÇOIS LOCOH-DONOU 发表《Standing Firm in Support of the People of Ukraine》一文,宣布停止在俄罗斯的所有销售活动,与此同时,移除俄罗斯对 F5 网络访问权限并停止俄罗斯对 Nginx 开源项目的贡献。
F5:停止在俄罗斯所有销售业务
F5 表示就本次两国的冲突,对身处其中的商业公司而言,已经不仅仅是一个商业问题,而是道德上的需要。
同时,F5 从「支持员工」、「保护客户、服务和运营」、「提供更高的保护和援助」三个层面,展开了支持、合作以及限制等活动。
其中,在「保护客户、服务和运营」维度,F5 在声明中写道:
作为一家全球安全公司,F5 理解客户和合作伙伴对我们的高度信任。我们在事态升级之前就做好了准备,并及早采取了彻底的行动,以保护所有的业务,并完全遵守政府的授权和经济制裁。
我们已经暂停了在俄罗斯的所有销售活动,并将客户支持工作转移到了其他地方。我们已经取消了俄罗斯对 F5 网络的访问,并停止了在俄罗斯对 Nginx 开源项目的贡献,这项工作将在全球其他地方继续进行。无论是商业还是开源代码,没有任何代码存在于俄罗斯境内。我们仍然致力于 Nginx 的发展和其社区的发展,以及保护我们在俄罗斯的员工的福利。
面对快速变化的局势,我们正在实时监测情况,并不断地评估我们所有的系统。我们向我们的客户和合作伙伴保证,他们可以对我们的产品、服务和运营保持最高水平的信心。
Nginx 之于服务器圈,是无可替代的存在
一石激起千层浪。毕竟在很多人的定向思维中,Nginx 是俄罗斯开发者的产物,为何有一天站到了自家的对立面?
早在 20 年前,俄罗斯程序员 Igor Sysoev(Игорь Сысоев)开始为俄罗斯访问量第二的 rambler.ru 站点设计一套可架设网络服务器的自由软件包,并于 2004 年 10 月 4 日以 Nginx 之名首次对外公开发布,且采用了开源的方式。
作为一款开源项目,Nginx 凭借着高性能、稳定性和丰富的功能、简单的配置和低资源消耗而闻名。除了是一款高性能 HTTP 服务器和反向代理 Web 服务器之外,Nginx 还提供了邮件代理服务。
在 Nginx 逐渐受到广泛使用后,Igor Sysoev 在 2011 年成立同名公司以提供支持服务。
2019 年 2 月,Nginx 最终取代 Apache HTTPD,成为互联网上部署最广泛的服务器。
2019 年 3 月 11 日,Nginx 被 F5 网络公司以 6.7 亿美元收购。
据 Netcraft 咨询服务公司 2022 年 2 月最新发布的 Web 服务器调查报告显示,Nginx 在过去一个月中,增长了 538,000 个域名,市场份额提升了 26.7%。
与此同时,在面向 Web 服务器领域,Nginx 也呈现强劲的增长趋势,增加了 53,500 台。虽然与以上增长的指标相比,Nginx 本月失去了 1210 万个站点(-3.2%),但它仍然是最常用的 Web 服务器,有 31.1% 的站点使用它。
放眼当前技术圈,业界很多知名度较高的网站都使用了 Nginx,譬如国内有百度、京东、腾讯、淘宝、网易、新浪等,国外有 GitHub、Meta(前身为 Facebook)、Netflix、MaxCDN 等。
而回忆彼时被收购的情景时,Nginx 曾表示和 F5 两家公司的合并将打开一个更大的潜在市场,并加速双方的共同成长。这是个 1+1>2 的故事。
开源协作的前提条件
如今看来,生于俄罗斯的 Nginx,现如今在俄罗斯不可用、不可被贡献,多少有些“讽刺”了。开源曾经连接起数以万计的程序员,在国际环境演变的一夕之间,隔阂也在悄然中升起。
对此,《开源之迷》作者适兕在《理性乐观:如何以正增长秩序来看待开源世界》(https://opensourceway.community/posts/open-source-economic/thinking-open-sourc-in-evolve-way/)一文中直言道,「开源需要坚实的政治基础,世界和平发展,是前提条件。没有这些,来自全球的职业共同体就没有协作的可能性。」同时,其也呼吁应该以 Hacking 思维来应对开源的“封锁”言论:
参考资料:
https://www.f5.com/company/blog/standing-firm-in-support-of-the-people-of-ukraine
https://news.netcraft.com/archives/2022/02/28/february-2022-web-server-survey.html
https://opensourceway.community/posts/open-source-economic/thinking-open-sourc-in-evolve-way/
往
期
回
顾
技术
Python多层级索引的数据分析
资讯
红帽、Docker、SUSE在俄停服
技术
用Python实现自动扫雷!
技术
一行Python代码能干嘛?来看!
分享
点收藏
点点赞
点在看
相关文章:

OCP换考题了,052新考题及答案整理-第17题
17、Which two statements are true about tablespaces? A) A database can contain multiple undo tablespaces. B) A database can contain only a single temporary tablespace. C) A database instance stores undo data In the SYSTEM tablespace If no undo tablespace …

linux的mount(挂载)命令详解
linux下挂载(mount)光盘镜像文件、移动硬盘、U盘、Windows和NFS网络共享 linux是一个优秀的开放源码的操作系统,可以运行在大到巨型小到掌上型各类计算机系统上,随着 linux系统的日渐成熟和稳定以及它开放源代码特有的优越性&…

GPT-3 再更新,新增编辑和插入文本功能,简直不要太好用!
编译 | 禾木木出品 | AI科技大本营(ID:rgznai100)GPT-3 是 OpenAL 提出的基于上下文的超大规模自然处理深度学习模型。这意味着如果你给 GPT-3 某些上下文内容时,它会试图去填充其余内容。例如给出句子的前部分,它会推测出下半部分…
scala akka 修炼之路5(scala特质应用场景分析)
scala中特质定义:包括一些字段,行为(方法/函数/动作)和一些未实现的功能接口的集合,能够方便的实现扩展或混入到已有类或抽象类中。 scala中特质(trait)是一个非常实用的特性,在程序设计中能够 更好的抽象现实。使程序更关注各自功…

6.2 sql安全性
最后的例子将显示如何通过现有证书创建-个新的用户。本章稍后会介绍证书,但在 这个例子中,首先创建证书,然后创建用户: USE AdventureWorks2008; CREATE CERTIFICATE SalesCert ENCRYPTION BY PASSWORD Pssw0rd WITH SUBJECT fSa…

2022,人工智能开启未来新密码
作者 | 剑客阿良_ALiang(胡逸) 出品 | AI科技大本营(ID:rgznai100) 购买大型电器、汽车,你是否会询问有没有智能语音功能?是的,潜移默化中人们已经不再将人工智能当作魔术,而是习以为…

PHP Socket配置以及实例
2个php测试文件 server.php <?php//phpinfo();//确保在连接客户端时不会超时set_time_limit(0);$ip 127.0.0.1;$port 1935;/*-------------------------------* socket通信整个过程-------------------------------* socket_create* socket_bind* socket_lis…

Windows下msysGit使用及相关配置
Windows下msysGit使用及相关配置

使用可信证书为windows RDP服务提供加密
2019独角兽企业重金招聘Python工程师标准>>> 0x01 前言 在windows server下可以通过配置远程桌面服务为RDP连接提供有效的数字证书以便提高安全性。 可是个人用户或并没有部署域控制器的用户是无法通过这种途径修改RDP所使用的数字证书,在不安全的环境中…

JavaScript跨域总结与解决办法
JavaScript跨域总结与解决办法 什么是跨域1、document.domainiframe的设置2、动态创建script3、利用iframe和location.hash4、window.name实现的跨域数据传输5、使用HTML5 postMessage6、利用flash本文来自网络(http://f2e.me/200904/cross-scripting/,该…

这几个 Python 的小技巧,你会么?
来源丨Python小二作者 Peter Gleeson 是一名数据科学家,日常工作几乎离不 python。一路走来,他积累了不少有用的技巧和 tips,现在就将这些技巧分享给大家。这些技巧将根据其首字母按 A-Z 的顺序进行展示。ALL OR ANYPython 之所以成为这么一门…

如何创建可扩展表视图中的iOS 学习和拓展优化(有待更新)
首先介绍老外的文章:《How To Create an Expandable Table View in iOS》这是老外用Swift实现的,对应的老外github项目源码:https://github.com/appcoda/expandable-table-view小编经过学习了老外的Expandable Table View然后用Objective-C实…

String、StringBuffer、StringBuilder的理解
问题: 理解 Java的字符串,String、StringBuffer、StringBuilder 有什么区别? 知识点 字符串设计和实现考量 String是Immutable(线程安全、字符串常量池复用)。Immutable对象在拷贝时候不需要额外复制数据。至于为什么imumutable,源码如下&…

Linux(centos6.0)下安装Node.js以及使用
Linux下(centos6.0)安装Node.js1.wget http://nodejs.org/dist/node-v0.6.9.tar.gz tar zxvf node-v0.6.9.tar.gz cd node-v0.6.9 ./configure --prefix/usr/local/node ----------安装提示-------------Checking for program g or c : not found Checking for progr…

Pandas 中的这些函数/属性将被 deprecated
作者 | luanhz来源丨小数志导读Pandas对于日常数据分析和处理来说是最常用的工具(没有之一),笔者之前也总结分享了很多相关用法和技巧。与之不同,今天本文来介绍几个已经在函数文档中列入"deprecated"的函数/属性&#…

2016.01.04 论文改重
今天的任务是修改查重的问题,另外加入参考文献。 其中,上午的时间完成论文查重。 下午的时间完成参考文献的丰富和标记。 晚上的时间完成DOM基础(李炎恢)的学习 预计晚上八点到晚上十点 优先级:论文查重,参…

完美数据迁移-MongoDB Stream的应用
目录 一、背景介绍二、常见方案1. 停机迁移2. 业务双写3. 增量迁移三、Change Stream 介绍监听的目标变更事件四、实现增量迁移五、后续优化小结附参考文档一、背景介绍 最近微服务架构火的不行,但本质上也只是风口上的一个热点词汇。 作为笔者的经验来说࿰…

Tslib移植与分析【转】
转自:http://blog.csdn.net/water_cow/article/details/7215308 目标平台:LOONGSON-1B开发板(mips32指令集)编译平台:x86PC--VMware6.5--Ubuntu10.04(下面简称“ubuntu系统”) 或&am…

用 Python 写一个天天酷跑,在线摸鱼不烦恼
来源丨Python小二写出来的效果图就是这样了:下面就更新一下全部的代码吧~还是老样子先定义import pygame,sys import random写一下游戏配置width 1200 #窗口宽度 height 508 #窗口高度 size width, height scoreNone #分数…

php fsockopen解决办法
最近研究php多线程的问题,发现中文资源少的可怜,仅有的几篇文章被转了又转,但文中内容价值有限。搜索过程中发现国外很多网站引用的一篇文章写的不错,所以翻译过来。版权声明:可以任意转载,转载时请务必以超…

深入浅出JVM的锁优化案例
锁优化适应性自旋(Adaptive Spinning)线程阻塞的时候,让等待的线程不放弃cpu执行时间,而是执行一个自旋(一般是空循环),这叫做自旋锁。自旋等待本身虽然避免了线程切换的开销,但它是要占用处理器时间的&…

DOMContentLoaded 与onload区别以及使用
一、何时触发这两个事件? 1、当 onload 事件触发时,页面上所有的DOM,样式表,脚本,图片,flash都已经加载完成了。 2、当 DOMContentLoaded 事件触发时,仅当DOM加载完成,不包括样式表&…

php-fpm – 配置详解
http://duyongguang.blogbus.com/logs/156375484.html php5.3自带php-fpm /usr/local/php/etc/php-fpm.conf pid run/php-fpm.pidpid设置,默认在安装目录中的var/run/php-fpm.pid,建议开启 error_log log/php-fpm.log错误日志,默认在安装目…

真香!Vision Transformer 快速实现 Mnist 识别
作者 | 李秋键出品 | AI科技大本营(ID:rgznai100)引言:基于深度学习的方法在计算机视觉领域中最典型的应用就是卷积神经网络CNN。CNN中的数据表示方式是分层的,高层特征表示依赖于底层特征,由浅入深抽象地提取高级特征…

(二十一)数组的初始化
class Demo3 {public static void main(String[] args) {//数组的初始化int[] a new int[] {12,13,14,15};int[] b {12,13,14,15};//数组的便利for(int i 0;i<4;i) {System.out.println(a[i]);}for(int i 0;i<b.length;i) {System.out.println(b[i]);}} }转载于:http…

深入探讨PHP中的内存管理问题
一、 内存在PHP中,填充一个字符串变量相当简单,这只需要一个语句"<?php $str hello world ; ?>"即可,并且该字符串能够被自由地修改、拷贝和移动。而在C语言中,尽管你能够编写例如"char …

介绍一个效率爆表的数据采集框架
作者 | 俊欣来源丨关于数据分析与可视化今天我们来聊一下如何用协程来进行数据的抓取,协程又称为是微线程,也被称为是用户级线程,在单线程的情况下完成多任务,多个任务按照一定顺序交替执行。那么aiohttp模块在Python中作为异步的…

最多显示6行并且最多显示三条文本
为什么80%的码农都做不了架构师?>>> private void setCommentContent(ViewHolder vh, String feedId, int commentNum, ArrayList<CommentItem> comment_lists){if(commentNum < 0 || comment_lists null || comment_lists.isEmpty()){for(in…

【刷算法】LeetCode- 两数之和
题目描述 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums [2, 7, 11, 15], target 9因为 nums[0] nums[1] 2 7 9 所以返回 [0, 1] 复制代码分析 第…

栈区和堆区内存分配区别
一直以来总是对这个问题的认识比较朦胧,我相信很多朋友也是这样的,总是听到内存一会在栈上分配,一会又在堆上分配,那么它们之间到底是怎么的区别呢?为了说明这个问题,我们先来看一下内存内部的组织情况&…