玖叶教程网

前端编程开发入门

Nginx 学习笔记|常用命令&配置示例

Nignx简介

Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

常用命令

 nginx -V                 # 查看nginx版本信息及配置选项
 nginx -h                 # 
 nginx -s reload          # 向主进程发送信号,重新加载配置文件,热重启
 nginx -s reopen          # 重启 Nginx
 nginx -s stop            # 快速关闭
 nginx -s quit            # 等待工作进程处理完成后关闭
 nginx -T                 # 查看当前 Nginx 最终的配置
 nginx -t -c <配置路径>    # 检查配置是否有问题,如果已经在配置目录,则不需要-c

也可以用systemctl对nginx进行管理,相关命令如下:

 systemctl start nginx    # 启动 Nginx
 systemctl stop nginx     # 停止 Nginx
 systemctl restart nginx  # 重启 Nginx
 systemctl reload nginx   # 重新加载 Nginx,用于修改配置后
 systemctl enable nginx   # 设置开机启动 Nginx
 systemctl disable nginx  # 关闭开机启动 Nginx
 systemctl status nginx   # 查看 Nginx 运行状态

Nginx配置

Nginx主配置文件位置:/usr/local/etc/nginx/nginx.conf。可以使用cat -n nginx.conf查看配置。 nginx.conf结构图可以这样概括:

 main                  # 全局配置,对全局生效
 ├── events            # 配置影响 Nginx 服务器或与用户的网络连接
 ├── http              # 配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置
 │   ├── upstream      # 配置后端服务器具体地址,负载均衡配置不可或缺的部分
 │   ├── server        # 配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块
 │   ├── server
 │   │   ├── location  # server 块可以包含多个 location 块,location 指令用于匹配 uri
 │   │   ├── location
 │   │   └── ...
 │   └── ...
 └── ...

配置文件语法规则:

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

配置示例:

 user  nginx; # 运行用户,默认即是nginx,可以不进行设置
 worker_processes  1; # Nginx 进程数,一般设置为和 CPU 核数一样
 error_log  /var/log/nginx/error.log warn; # Nginx 的错误日志存放目录
 pid        /var/run/nginx.pid; # Nginx 服务启动时的 pid 存放位置
 
 events {
     use epoll; # 使用epoll的I/O模型(如果你不知道Nginx该使用哪种轮询方法,会自动选择一个最适合你操作系统的)
     worker_connections 1024; # 每个进程允许最大并发数
 }
 
 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  localhost; # 配置的域名
       
       location / {
         root   /usr/share/nginx/html; # 网站根目录
         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; # 同上
     }
 }

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言