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