学习笔记:Nginx基础(一)

安装完Nginx,输入 nginx -V 看看你的Nginx是怎么编译来的 :-P

相关参数请见此


环境

  • Ubuntu 18.04
  • Nginx 1.14.0

学习来源Nginx入门到实践-Nginx 中间件



Nginx的优势

IO多路复用

何为I/O复用见下图

而多路I/O复用是指多个描述I/O的操作能在一个线程内交替完成,复用的是指同一个线程,使用epoll的方式,采用回调函数,最大连接无限制


轻量级

  • 功能模块少
  • 代码模块化

CPU亲和

把CPU核心和Nginx工作进程绑定,将每个worker进程固定在一个CPU上执行,减少切换CPU的cache miss


sendfile机制

处理静态文件有优势


重要目录

  • /etc/logrotate.d/nginx 配置日志相关信息,Nginx日志轮转,用于logrotate服务的日志切割
  • /etc/nginx 主配置存放目录
  • /etc/nginx/nginx.conf 主要配置文件
  • /etc/nginx/conf.d 次要配置目录
  • /etc/nginx/sites-enabled 次要配置目录

注意,以上两条路径可以在配置文件/etc/nginx/nginx.conf中查看到

1
2
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
  • /etc/nginx/fastcgi_params
  • /etc/nginx/uwsgi_params
  • /etc/nginx/scgi_params

以上三个和cgi相关(Common gateway interface)

  • /etc/nginx/koi-utf
  • /etc/nginx/koi-win
  • /etc/nginx/win-utf

以上三个为编码转换映射转化文

  • /etc/nginx/mime.types 设置Content-Type与扩展名对应关系
  • /usr/lib64/nginx/modules 相关模块
  • /var/cache/nginx 缓存相关
  • /var/log/nginx 日志相关

配置语法

以下参数基本都在文件/etc/nginx/nginx.conf中那出现

  • user 设置nginx服务系统使用用户
  • worker_processes 工作进程数
  • error_log 错误日志
  • pid nginx启动时的pid
  • even
    • worker_connections 每个进程最大允许连接数,重要,需要人工调节,1万左右
    • use 工作进程数
  • include /etc/nginx/conf.d/*.conf; 载入的配置
  • include /etc/nginx/sites-enabled/*; 载入的配置

这里,log_format 可以对日志输出的格式进行配置,这里设置了相应日志(access_log)的输出格式,当然,错误日志(error_log)日志的格式也可以设置

1
2
3
4
5
6
log_format main  '$http_user_agent' '$remote_addr - $remote_user [$time_local]  ' '"$request"
$status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';

access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;

这里用到了Nginx的变量,都是以 $ 开头的,参看链接