NGINX学习笔记(二):一篇搞懂NGINX的典型配置

语法规则

  • 配置文件由指令与指令块构成;
  • 每条指令以 ; 分号结尾,指令与参数间以空格符号分隔;
  • 指令块以 {} 大括号将多条指令组织在一起;
  • include 语句允许组合多个配置文件以提升可维护性;
  • 使用 # 符号添加注释,提高可读性;
  • 使用 $ 符号使用变量;
  • 部分指令的参数支持正则表达式;

典型配置

# main段配置信息

user nginx test;                    # 设置WORKER进程的属主和属组, 其中组可以不指定。该设置表示:运行WORKER的用户是nginx, 属组是test
worker_processes  1;                # 设置WORKER的进程数(一般设置为和CPU核数一样), 如果设为auto则表示与当前CPU物理核心数一致
error_log  /var/log/nginx/error.log  warn;   # NGINX错误日志目录
pid        /var/run/nginx.pid;      # NGINX服务启动时 pid 存放位置

# events段配置信息
events {
    # use epoll;                 # 使用epoll的I/O模型(如果你不知道Nginx该使用哪种轮询方法, 会自动选择一个最适合你操作系统的, 一般不推荐配置该项, 由操作系统自己默认选择)
    worker_connections 1024;   # 每个WORKER进程允许的最大并发数
    accept_mutex on            # 用于设置是否打开负载均衡互斥锁。默认是off关闭的, 一般推荐打开
}

# http段配置信息
http {
    # 设置日志模式
    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  /var/log/nginx/access.log  main;   # NGINX访问日志目录

    sendfile            on;   # 开启高效传输模式
    tcp_nopush          on;   # 减少网络报文段的数量
    tcp_nodelay         on;
    keepalive_timeout   65;   # 保持连接的时间,也叫超时时间,单位秒
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;      # 文件扩展名与类型映射表
    default_type        application/octet-stream;   # 默认文件类型

    include /etc/nginx/conf.d/*.conf;   # 加载子配置项
    
    server {
    	listen       80;           # 配置监听的端口
    	# 指定虚拟主机域名
    	# 域名匹配的四种写法:
    	# 精确匹配:server_name www.baidu.com ;
		# 左侧通配:server_name *.baidu.com ;
		# 右侧通配:server_name www.baidu.* ;
		# 正则匹配:server_name ~^www\.baidu\.*$ ;
		# 匹配优先级:精确匹配 > 左侧通配符匹配 > 右侧通配符匹配 > 正则表达式匹配
    	server_name  localhost;    # 配置的域名, server_name NAEM1 NAME2 NAME3
    	
    	location / {
    		# root用于指定静态资源目录, 可以写在http/server/location等模块中进行配置
    		root   /usr/share/nginx/html;  # 网站根目录
    		# index指令中列出多个文件名, NGINX按指定的顺序搜索文件, 并返回找到的第一个文件
    		index  index.html index.htm;   # 默认首页文件
    		deny 172.168.22.11;   # 禁止访问的ip地址, 可以为all
    		allow 172.168.33.44;  # 允许访问的ip地址, 可以为all
    	}
    	
    	error_page 500 502 503 504 /50x.html;  # 默认50x对应的访问页面
    	error_page 400 404 error.html;         # 默认40x对应的访问页面
    }
}

root 和 alias 的区别

# 示例1:
location /image {
 # 用于指定静态资源所在的目录(实际路径 = 目录+URI)
 root /opt/nginx/static;
}
# 当用户访问 http://www.baidu.com/image/1.png时,实际在服务器找的路径是:/opt/baidu/static/image/1.png, 
# root 会将定义路径与URI相加, 而alias则只取定义路径。

# 示例2:
location /image {
# 用于指定静态资源所在的目录(实际路径 = 目录)
 alias /opt/nginx/static/image/;
}
# 当用户访问 http://www.baidu.com/image/1.png时,实际在服务器找的路径是:/opt/baidu/static/image/1.png, 
# 使用 alias末尾一定要添加 / , 且它只能位于location模块中。

全局变量

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cloneme01

谢谢您的支持与鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值