目录

nginx.conf  文件详解

nginx 内置全局变量

nginx 常用命令

location 解析过程


1、nginx.conf 配置文件在 %nginx_home%/conf 目录下:

nginx.conf  文件详解

1、下面是一个 nginx.conf 配置文件的基本结构:

events 配置影响 nginx 服务器或与用户的网络连接。
main nginx 的全局配置,对全局生效。
http 可以嵌套多个 server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。
server 配置虚拟主机的相关参数,一个 http 中可以有多个 server,一个 Server 相当于一个虚拟主机。
location 配置请求的路由,以及各种页面的处理情况。一个 server 可以有多个 localtion 路由。
upstream 配置后端服务器具体地址,负载均衡配置不可或缺的部分。(默认是没有的,需要时得自己添加)

2、nginx.conf 配置文件内容介绍如下:

#创建进程的用户和用户组,多个时用空格隔开
#user  nobody;
#服务进程数量,一般等于 CPU 数量
worker_processes  1;#全局错误日志定义,建议开启error级别日志.[ debug | info | notice | warn | error | crit ]
error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#记录进程 ID 的文件
#pid        logs/nginx.pid;events {#一个 worker_processe 允许的最大并发连接数量worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#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  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;#http连接的持续时间keepalive_timeout  65;#gzip压缩设置,开启或关闭#gzip  on;#设定负载均衡的服务器列表,可以设置多个 upstream,使用不同的名称 wmx 区分即可#upstream 默认是没有,需要自己添加upstream wmx {#weigth参数表示权值,权值越高被分配到的几率越大server 127.0.0.1:8081 weight=5;server 127.0.0.1:8082 weight=5;server 127.0.0.1:8083 weight=5;}server {#nginx监听的端口号listen       80;#当前 server(虚拟主机)的域名,可以有多个,用空格隔开server_name  localhost;#字符编码方式#charset koi8-r;#设定本虚拟主机的访问日志。关闭日志可以减少IO,提高性能。#access_log  logs/host.access.log  main;#默认请求location / {#定义服务器的默认网站根目录位置root   html;#定义首页索引文件的名称index  index.html index.htm;#请求转向 wmx 定义的服务器列表proxy_pass http://wmx}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

nginx 内置全局变量

1、Nginx 作为一个成熟、久经考验的负载均衡软件,与其提供丰富、完整的内置变量是分不开的,它极大增加了对 Nginx 网络行为的控制细度。

2、这些变量大部分都是在请求进入时解析的,并把他们缓存到请求 cycle 中,方便下一次获取使用。

3、下面是 nginx 配置中常用的内置全局变量,可以在配置的任何位置使用它们:

Nginx 常用内置全局变量
名称 说明
$arg_name 请求中的name参数
$args 请求中的参数
$binary_remote_addr 远程地址的二进制表示
$body_bytes_sent 已发送的消息体字节数
$content_length HTTP请求信息里的"Content-Length"
$content_type 请求信息里的"Content-Type"
$document_root 针对当前请求的根路径设置值
$document_uri 与$uri相同; 比如 /test2/test.php
$host 请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名
$hostname 机器名使用 gethostname系统调用的值
$http_cookie cookie 信息
$http_referer 引用地址
$http_user_agent 客户端代理信息
$http_via 最后一个访问服务器的Ip地址。
$http_x_forwarded_for 相当于网络访问路径
$is_args 如果请求行带有参数,返回“?”,否则返回空字符串
$limit_rate 对连接速率的限制
$nginx_version 当前运行的nginx版本号
$pid worker进程的PID
$query_string 与$args相同
$realpath_root 按root指令或alias指令算出的当前请求的绝对路径。其中的符号链接都会解析成真是文件路径
$remote_addr 客户端IP地址
$remote_port 客户端端口号
$remote_user 客户端用户名,认证用
$request 用户请求
$request_body 这个变量(0.7.58+)包含请求的主要信息。在使用proxy_pass或fastcgi_pass指令的location中比较有意义
$request_body_file 客户端请求主体信息的临时文件名
$request_completion 如果请求成功,设为"OK";如果请求未完成或者不是一系列请求中最后一部分则设为空
$request_filename 当前请求的文件路径名,比如/opt/nginx/www/test.php
$request_method 请求的方法,比如"GET"、"POST"等
$request_uri 请求的URI,带参数
$scheme 所用的协议,比如http或者是https
$server_addr 服务器地址,如果没有用listen指明服务器地址,使用这个变量将发起一次系统调用以取得地址(造成资源浪费)
$server_name 请求到达的服务器名
$server_port 请求到达的服务器端口号
$server_protocol 请求的协议版本,"HTTP/1.0"或"HTTP/1.1"
$uri 请求的URI,可能和最初的值有不同,比如经过重定向之类的

nginx 常用命令

start nginx.exe //启动
nginx.exe -s reload //重启
nginx.exe -s stop //快速停止
nginx.exe -s quit //完整有序停止

没配置环境变量时,在 nginx.exe 所在目录下使用命令行即可。

location 解析过程

Nginx 配置文件 nginx.conf 说明、内置变量、常用命令相关推荐

  1. Python(8):模块内置变量

    写在前面 文章目录 模块内置变量 常用内置变量 __name__变量 __package__变量 __file__变量 __doc__变量 专栏目录 模块内置变量 常用内置变量 __name__变量 ...

  2. Shell——quan——内置变量

    bash shell内置变量的命令:echo eval exec export read shift echo 输出信息 -n 不换行输出内容 -e 解析转义字符 转义字符:\n 换行 (加引号) \ ...

  3. nginx内置变量 大全

    参考:agentzh 的 Nginx 教程(版本 2016.07.21) 在配置基于nginx服务器的网站时,必然会用到 nginx内置变量  ,下面笔者将它整理成列表,把最新版本的变量列出来,以方便 ...

  4. Nginx 的内置变量

    在配置基于Nginx服务器的网站时,必然会使用到Nginx内置变量配置相关信息,下面将根据网上的相关资料进行整理,以方便在配置Nginx时查询. 内置变量存放在 ngx_http_core_modul ...

  5. Nginx内置变量以及日志格式变量参数详解

    Nginx内置变量以及日志格式变量参数详解 $args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有 ...

  6. Nginx内置变量及正则语法

    对于很多Nginx初学者来说,配置文件是必须要看懂的.但是当公司的Nginx配置文件放在你面前的时候你总会被一些带着"$"符号和一大推看不懂的的正则给正懵逼.没错带着"$ ...

  7. nginx内置变量 $request_filename

    -e表示只要filename存在,则为真,不管filename是什么类型,如果加了!就取反额外的一些 -e filename 如果 filename存在,则为真 -d filename 如果 file ...

  8. nginx 内置变量

    http://blog.sina.com.cn/s/articlelist_1834459124_1_1.html  nginx内置变量杂谈 http://nginx.org/en/docs/http ...

  9. nginx 内置变量大全(转)

    HTTP核心模块支持一些内置变量,变量名与apache里的对应.比如 $http_user_agent,$http_cookie等表示HTTP请求信息的变量. 更多变量: $args, 请求中的参数; ...

  10. Nginx配置文件nginx.conf详解

    Nginx 总的 配置文件 位置 /usr/local/nginx/conf/nginx.conf nginx 正则匹配 一.正则表达式匹配,其中: 为区分大小写匹配 ~* 为不区分大小写匹配 ! 和 ...

最新文章

  1. React Native学习之 ListView 的简单使用
  2. 类,封装,this关键字,内存部分(java)
  3. nginx中SSI问题的研究
  4. 【ARM】Tiny4412裸板编程之蜂鸣器
  5. 叮咚酒店营销版小程序v8.5.8+前端
  6. QuickWAP实现网页跳转
  7. 03_部署并访问项目,处理404,500(servlet+java bean+jsp的商城教程)
  8. Hibernate 教程(一)[Hibernate的基本配置]
  9. EXTJS源码分析与开发实例-原创2章下载
  10. excel 基于RFM模型、帕累托分析的用户画像项目实战
  11. Github学生认证指北
  12. 阿里云服务器常用配置价格表
  13. 虚拟系统管理器QEMU/KVM
  14. 烤薯条的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  15. 工作中那些让人印象深刻的BUG(1)
  16. WPF全屏和退出全屏最简单的方法
  17. CFont::CreateFont
  18. BUUCTF [SWPU2019]EasiestRe
  19. 月亮代表我的心计算机谱子,月亮代表我的心
  20. JavaFX8开发过程中的问题记录

热门文章

  1. 关于以主机命名的网站集
  2. 拓端tecdat|R语言泊松回归对保险定价建模中的应用:风险敞口作为可能的解释变量
  3. 拓端tecdat|R语言Black Scholes和Cox-Ross-Rubinstein期权定价模型案例
  4. Java实现常见的排序算法
  5. yolov5模型框架详解
  6. #Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet
  7. 近6年被引用次数最多的深度学习论文top100(附下载地址)
  8. 基于图像gist特征的NWPU-RESISC45数据分类实战
  9. python解决sip与ptqt不兼容导致页面截图引擎无法运行问题
  10. android.mk 编译选项,Android.mk中加入选项,编译生成可以直接安装的apk包