关注△mikechen△,十余年BAT架构经验倾囊相授!
大家好,我是mikechen。
Nginx是非常重要的负载均衡,也是大型架构、大厂必备技能,下面我就全面来详解Nginx常用配置@mikechen
最新mikechen原创超30万字《阿里架构师进阶专题合集》和《大厂最全面试题及答案合集》,请关注本公众号【mikechen的架构笔记】,后台回复:合集,即可领取。
Nginx
Nginx 是一款轻量级的高性能 HTTP、 和反向代理服务器。
Nginx,被广泛用于负载均衡、静态文件服务、和代理.........等。
Nginx,以高并发、低内存占用、和高可用性著称,大部分的大厂以及公司都在使用。
在使用的过程中,最为大家经常使用的,就是“Nginx怎么配置”的问题。
Nginx常用配置
Nginx 的配置文件,通常位于:/etc/nginx/nginx.conf。
Nginx的配置,采用模块化的层级结构,如下图所示:
Nginx的配置,一般是采用从上到下的配置,这里会涉及到比较重要的几大“Nginx常用配置”。
比如:
1.全局块
全局块,主要用于:配置全局参数,例如:工作进程数、用户组、日志路径等。
如下图所示:
全局块,一般是在整个配置的顶部,如下所示:
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
上面的配置,主要会包含如下参数:
worker_processes
worker_processes,工作进程数,可以设置为 auto(自动配置),就是上面我的配置;
worker_processes,或固定数值,通常设置为 CPU 核数。
error_log
错误日志路径及日志级别,比如:
/var/log/nginx/error.log
,这就是你自己设定的错误目录。
pid
pid,指定存放主进程 ID 的文件路径。
2.events 块
events 块,主要用于配置与网络连接工作线程相关的参数。
worker_connections 1024
比如:worker_connections:1024,表示:每个工作进程可以同时打开的最大连接数为:1024。
3.http 块
配置 HTTP 服务的全局设置,包括:MIME 类型、请求日志、Gzip 压缩、连接超时.........等。
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
$body_bytes_sent "$http_referer" '
"$http_x_forwarded_for"';
sendfile on;
keepalive_timeout 65;
gzip on;
...
}
sendfile
sendfile,启用高效传输模式,减少资源占用。
keepalive_timeout
keepalive_timeout,保持连接的超时时间,提升访问性能。
gzip
gzip,启用 Gzip 压缩。
4.server 块
server 块,用于定义一个虚拟主机,可包含多个:location 块。
如下图所示:
server {
listen 80;
server_name example.com www.example.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
listen:指定监听端口(例如 80 或 443)。
server_name:定义服务器名称,可以是域名、IP 或通配符。
access_log:访问日志路径。
location 块,用于匹配请求 URL 路径,常用匹配类型有以下几种:
精确匹配:如:location = /path;
前缀匹配:如:location /path,匹配以 /path 开头的请求;
正则匹配:如 location ~* \.php$,匹配 .php 结尾的请求(区分大小写)。
以上是 Nginx 常见配置的详解!
最后送大家一个福利:
送我原创超30万字阿里架构师进阶专题合集。
以及给大家整理最全大厂Java面试题及答案详解,包含:Java、多线程、JVM、Spring、MySQL、Redis、中间件...等必考题答案详解。
需要以上架构专题&面试答案的同学,加我微信即可领取!
添加时备注:资料