文件结构

配置文件 nginx.conf 详解 - 图1

配置文件


  1. #运行用户,默认即是nobody,可不设置
  2. #user nobody;
  3. #nginx进程,一般设置为和cpu核数一样 ,auto 自动检测
  4. worker_processes 1;
  5. #错误日志存放目录
  6. #error_log 级别分为 debug, info, notice, warn, error, crit 默认为error
  7. #crit 记录的日志最少,而debug记录的日志最多。
  8. #如果nginx遇到一些问题,比如502比较频繁出现,但是看默认的error_log并没有看到有意义的信息,
  9. #那么就可以调一下错误日志的级别,当你调成error级别时,错误日志记录的内容会更加丰富。
  10. #这些值是互斥的,也就是说只能取其中之一,如果像下面同时配置多个日志级别会报错
  11. #error_log logs/error.log;
  12. #error_log logs/error.log error;
  13. #error_log logs/error.log notice;
  14. #error_log logs/error.log info;
  15. #进程pid存放位置
  16. #pid logs/nginx.pid;
  17. #单个后台worker process进程的最大并发链接数 最大设置 worker_connections*worker_processes =ulimit -n open files
  18. events {
  19. worker_connections 1024;
  20. }
  21. http {
  22. #主模块命令,对配置文件所包含文件的设定,减少主配置文件的复杂度,相当于把部分设置放在别的地方,
  23. #然后在包含进来,保持主配置文件的简洁
  24. include mime.types;
  25. #默认文件类型,当文件类型未定义时候就使用这类设置的
  26. default_type application/octet-stream;
  27. #$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
  28. #$remote_user:用来记录客户端用户名称;
  29. #$time_local: 用来记录访问时间与时区;
  30. #$request: 用来记录请求的url与http协议;
  31. #$status: 用来记录请求状态;成功是200,
  32. #$body_bytes_sent :记录发送给客户端文件主体内容大小;
  33. #$http_referer:用来记录从那个页面链接访问过来的;
  34. #$http_user_agent:记录客户浏览器的相关信息;
  35. #通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。
  36. #日志格式 main 为一个变量名称
  37. #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  38. # '$status $body_bytes_sent "$http_referer" '
  39. # '"$http_user_agent" "$http_x_forwarded_for"';
  40. #访问日志输出位置 格式名称
  41. #access_log logs/access.log main;
  42. #开启高效文件传输模式(zero copy 方式),避免内核缓冲区数据和用户缓冲区数据之间的拷贝
  43. sendfile on;
  44. #开启TCP_NOPUSH套接字(sendfile开启时有用)
  45. #tcp_nopush on;
  46. #客户端连接超时时间
  47. #keepalive_timeout 0;
  48. keepalive_timeout 65;
  49. #用于从 upstream 读取返回数据时
  50. proxy_read_timeout 1800s;
  51. #设置是否开启gzip模块
  52. #gzip on;
  53. #开启目录
  54. #autoindex on;
  55. server {
  56. # 虚拟主机的服务端口
  57. listen 80;
  58. server_name localhost;
  59. #charset koi8-r;
  60. #access_log logs/host.access.log main;
  61. location / {
  62. root html;
  63. index index.html index.htm;
  64. }
  65. #error_page 404 /404.html;
  66. # redirect server error pages to the static page /50x.html
  67. # "50x.html" 是个文件名
  68. error_page 500 502 503 504 /50x.html;
  69. location = /50x.html {
  70. root html;
  71. }
  72. # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  73. #
  74. #location ~ \.php$ {
  75. # proxy_pass http://127.0.0.1;
  76. #}
  77. # fastcgi_pass 只适用于php
  78. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  79. #
  80. #location ~ \.php$ {
  81. # root html;
  82. # fastcgi_pass 127.0.0.1:9000;
  83. # fastcgi_index index.php;
  84. # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  85. # include fastcgi_params;
  86. #}
  87. # deny access to .htaccess files, if Apache's document root
  88. # concurs with nginx's one
  89. #
  90. #location ~ /\.ht {
  91. # deny all;
  92. #}
  93. }
  94. # another virtual host using mix of IP-, name-, and port-based configuration
  95. #
  96. #server {
  97. # listen 8000;
  98. # listen somename:8080;
  99. # server_name somename alias another.alias;
  100. # location / {
  101. # root html;
  102. # index index.html index.htm;
  103. # }
  104. #}
  105. # HTTPS server
  106. #
  107. #server {
  108. # listen 443 ssl;
  109. # server_name localhost;
  110. # ssl_certificate cert.pem;
  111. # ssl_certificate_key cert.key;
  112. # ssl_session_cache shared:SSL:1m;
  113. # ssl_session_timeout 5m;
  114. # ssl_ciphers HIGH:!aNULL:!MD5;
  115. # ssl_prefer_server_ciphers on;
  116. # location / {
  117. # root html;
  118. # index index.html index.htm;
  119. # }
  120. #}
  121. }

更详细内容:
https://www.w3cschool.cn/nginx/nginx-d1aw28wa.html