先问了一下 chatGPT,但是没有什么效果
为什么我要问这个问题,因为我想知道 nginx、uvicorn、gunicorn 这些 HTTP sever 的 socket 是否开启了 SO_REUSEADDR
先问了一下 chatGPT,但是没有什么效果
为什么我要问这个问题,因为我想知道 nginx、uvicorn、gunicorn 这些 HTTP sever 的 socket 是否开启了 SO_REUSEADDR
1 回答2.7k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答1.3k 阅读
2 回答1.1k 阅读✓ 已解决
3 回答1.7k 阅读
1 回答1.1k 阅读✓ 已解决
看来 #1010000043750446 你已经自己发现答案了。
终端里怎么查看 Socket 参数我还真不太清楚,不过 Linux 提供了相关的系统调用
getsockopt
,你可以写一个简单的 C 程序来查看。(感觉上应该有某些内置命令封装好了getsockopt
,但还真没见过)不过如果你只是想确认这些程序的 Socket 参数的话,开源项目我们有更简单的方式 —— 读源码嘛!
以 nginx 为例:
可以看到确实是设置了 SO_REUSEADDR 的,而且是一旦尝试设置失败了,会直接抛出异常,中断服务启动。