Nginx知识梳理
进程模型
master 主进程
worker 子进程
默认连接数为1024,具体根据硬件信息配置
配置
vim nginx.conf
events{
# 默认使用epoll,可不写
use epoll;
# 每个worker允许连接的客户端最大连接数
worker_connections: 10240;
}
为何nginx性能会比较高?主要是通过epoll模型处理
其实是类似于一种多路复用的模式
nginx.conf 配置结构
main 全局配置
event 配置工作模式以及连接数
http http模块相关配置
server 虚拟主机配置,可以有多个
location 路由规则,表达式
upstream 集群,内网服务器
配置结构
user root; # 用户,默认nobody,用于生成worker的用户
worker_processes auto; # 进程数量,看cpu数量
error_log /www/wwwlogs/nginx_error.log crit; # 错误日志 debug,info,notice,warn error,crit
pid /www/server/nginx/logs/nginx.pid; # 进程号
worker_rlimit_nofile 51200;
events
{
use epoll; # 默认使用epoll,可不写
worker_connections 51200; # 每个worker允许连接的客户端最大连接数,根据硬件配置来决定
multi_accept on;
}
http
{
include mime.types; # 文件类型
default_type application/octet-stream; # 默认type类型
# 日志格式化
#log_format main '$remote_addr - $remote_user [$time_local] "$request"'
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"'
#access_log logs/access.log main; # 访问日志
server_names_hash_bucket_size 512;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;
# 开启可高效传输
sendfile on;
tcp_nopush on; # 数据包累计到一定数量后发送
keepalive_timeout 60; # 客服端连接服务器超时时间,如果设置为0的话,每个请求都增加一个链接数
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
# 压缩配置
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
server_tokens off;
access_log off;
server
{
listen 888; # 监听端口
server_name localhost; # ip,域名
index index.html index.htm index.php;
root /www/server/phpmyadmin;
#error_page 404 /404.html;
include enable-php.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /\.
{
deny all;
}
access_log /www/wwwlogs/access.log;
}
include /www/server/panel/vhost/nginx/*.conf;
}
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。