nginx是如何实现端口复用的??
RT
一份nginx实例通常由多进程构成
那么nginx是如何实现端口复用的?
端口复用的技术知道一些,但不知nginx采用的是哪一种
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(3)
稀香2022-09-13 07:53:08
提供一个思路供参考,这也是我的个人服务端器nginx的配置:
worker_processes 2;
error_log /mnt/logs/nginx/error.log error;
events {
use epoll;
multi_accept on;
worker_connections 5120;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
fastcgi_intercept_errors on;
client_max_body_size 6M;
client_body_buffer_size 1M;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
server {
listen 80;
server_name www.sosout.com;
root /mnt/html;
index index.jsp index.htm index.html;
location ~ ^/favicon\.ico$ {
root /mnt/html;
}
if ($host ~* "^(.*?)\.sosout\.com$") {
set $domain $1;
}
location /blog {
if ($domain = "blog.sosout.com") {
return 404; #防止有人访问www.sosout.com/blog 看到blog二级域名的页面,只允许访问blog.sosout.com查看
}
}
location /admin {
if ($domain = "admin.sosout.com") {
return 404; #防止有人访问www.sosout.com/admin 看到admin二级域名的页面,只允许访问admin.sosout.com查看
}
}
error_page 404 /404.html;
}
server {
listen 80;
server_name *.sosout.com;
if ($host ~* "^(.*?)\.sosout\.com$") {
set $domain $1;
}
location / {
if ($domain ~* "blog") {
root /mnt/html/blog;
}
if ($domain ~* "admin") {
root /mnt/html/admin;
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
access_log /mnt/logs/nginx/access.log main;
}
include /etc/nginx/conf.d/*.conf;
}
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
nginx1.9之后,通过SO_REUSEPORT支持端口服用,该socket参数由操作系统提供,允许多个套接字侦听相同的IP地址和端口组合,内核负责调度。
https://www.nginx.com/blog/so...