nginx配置详解
所属分类 nginx
浏览量 1270
每个指令必须以分号结束!!!
# 用户和组,默认为nobody nobody
#user nginx nginx;
#worker进程数,默认为1 通常设置为CPU数量或者2倍于CPU
#worker_processes 2;
#指定进程pid文件
#pid /nginx/pid/nginx.pid;
# 进程可以打开的最大描述符数
worker_rlimit_nofile 204800;
# 设置日志路径,级别。可以放入全局块,http块,server块,
# debug|info|notice|warn|error|crit|alert|emerg
error_log log/error.log debug;
events {
#设置网路连接处理,防止惊群现象发生,默认为on
# 惊群现象:一个网路连接到来,多个睡眠的进程被同时叫醒,但只有一个进程能获得链接,这样会影响系统性能。
accept_mutex on;
#设置一个进程是否同时接受多个网络连接,默认为off
multi_accept on;
#事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
# linux建议epoll,FreeBSD建议采用kqueue
# Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll
#use epoll;
#最大连接数,默认为512
# 理论上单台nginx服务器的最大连接数 worker_processes*worker_connections
worker_connections 1024;
}
http {
# 文件扩展名与文件类型映射表
include mime.types;
# 默认文件类型,默认为text/plain
default_type application/octet-stream;
# 关闭访问日志
#access_log off;
# 自定义格式
log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';
#combined为日志格式的默认值
access_log log/access.log myFormat;
#允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
sendfile on;
#每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
sendfile_max_chunk 100k;
#连接保持时间,默认为75s,可以在http,server,location块。
keepalive_timeout 65;
tcp_nodelay on;
# send_timeout 25;
# 后端服务器连接超时
proxy_connect_timeout 90;
proxy_read_timeout 180;
proxy_send_timeout 180;
upstream mysvr {
server 192.168.1.10:8000;
#热备
server 192.168.1.11:8000 backup;
}
#错误页
error_page 404 https://www.codefun00.xyz;
server {
#单连接请求上限次数
keepalive_requests 120;
#监听端口
listen 4545;
#监听地址
server_name 127.0.0.1;
#请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
location ~*^.+$ {
#根目录
#root path;
#设置默认页
#index vv.txt;
#请求转向mysvr 定义的服务器列表
proxy_pass http://mysvr;
#拒绝的ip
deny 127.0.0.1;
#允许的ip
allow 192.168.1.11;
}
}
}
$remote_addr 与 $http_x_forwarded_for 客户端ip地址;
$remote_user 客户端用户名称;
$time_local 访问时间与时区;
$request 请求的url与http协议;
$status 请求状态;成功为200;
$body_bytes_sent 发送给客户端主体内容大小;
$http_referer 访问来源
$http_user_agent 客户端浏览器的相关信息;
虚拟机配置
server.server_name 配置域名
upstream 4种负载均衡策略
轮询(默认) 后端服务器down掉,会自动剔除
weight
upstream bakend {
server 192.168.0.10 weight=10;
server 192.168.0.11 weight=10;
}
ip_hash
upstream bakend {
ip_hash;
server 192.168.0.10:8000;
server 192.168.0.11:9000;
}
fair(第三方) 响应时间短的优先分配
url_hash(第三方)
upstream backend {
server 192.168.0.10:8000;
server 192.168.0.11:9000;
hash $request_uri;
hash_method crc32;
}
upstream bakend{
ip_hash;
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
down 当前server不参与负载
backup 热备 其它所有的非backup机器down或者忙的时候,请求backup机器
系统分页大小查看
getconf PAGESIZE
4096
上一篇
下一篇
mysql运维命令
nginx安装及配置
nginx知识点整理
nginx超时配置
nginx状态监控
使用prometheus和grafana监控JVM