第七章 Nginx配置文件初识

7.1 Nginx配置文件在哪

由于我们在编译的时候设置了--prefix选项,指定前缀路径是/usr/local/nginx,那么默认的配置文件就在/usr/local/nginx/conf/nginx.conf
如果找不到配置文件也没关系,我们有以下方式来查看配置文件:

  1. [root@nginx-07 sbin]# cd /usr/local/nginx/sbin/
  2. [root@nginx-07 sbin]# ./nginx -t
  3. nginx: the configuration file /usr/local/nginx-1.18.0/conf/nginx.conf syntax is ok
  4. nginx: configuration file /usr/local/nginx-1.18.0/conf/nginx.conf test is successful

7.2 Nginx目录结构

  1. [root@nginx-07 local]# tree /usr/local/nginx
  2. /usr/local/nginx
  3. ├── client_body_temp
  4. ├── conf #Nginx的主配置文件所在的目录
  5. ├── fastcgi.conf #fastcgi相关参数的配置文件
  6. ├── fastcgi.conf.default #fastcgi的默认配置文件
  7. ├── fastcgi_params #fastcgi参数文件
  8. ├── fastcgi_params.default
  9. ├── koi-utf
  10. ├── koi-win
  11. ├── mime.types #媒体类型
  12. ├── mime.types.default
  13. ├── nginx.conf #Nginx的主配置文件
  14. ├── nginx.conf.default #这是nginx的备份配置文件
  15. ├── scgi_params
  16. ├── scgi_params.default
  17. ├── uwsgi_params
  18. ├── uwsgi_params.default
  19. └── win-utf
  20. ├── fastcgi_temp
  21. ├── html #默认站点目录
  22. ├── 50x.html #错误页面优雅替代显示文件
  23. └── index.html #默认的首页文件,在实际环境中,大家习惯用
  24. ├── logs #日志文件目录
  25. ├── access.log #访问日志文件
  26. ├── error.log #错误日志文件
  27. └── nginx.pid #这是nginx的PID文件,nginx进程启动后,这个文件会随着nginx启动而产生
  28. ├── proxy_temp
  29. ├── sbin #Nginx的二进制文件目录
  30. └── nginx #Nginx的二进制文件
  31. ├── scgi_temp
  32. └── uwsgi_temp
  33. 以上加了注释的,是比较重要,需要我们知道的,其他就无所谓了,了解即可

7.3 Nginx配置文件

  1. #启动子进程程序默认用户
  2. #user nobody;
  3. #一个主进程和多个工作进程。工作进程是单进程的,且不需要特殊授权即可运行;这里定义的是工作进程数量
  4. worker_processes 1;
  5. #全局错误日志的位置及日志格式
  6. #error_log logs/error.log;
  7. #error_log logs/error.log notice;
  8. #error_log logs/error.log info;
  9. #pid logs/nginx.pid;
  10. events {
  11. #每个工作进程最大的并发数
  12. worker_connections 1024;
  13. }
  14. #http服务器设置
  15. http {
  16. #设定mime类型,类型由mime.type文件定义
  17. include mime.types;
  18. #
  19. default_type application/octet-stream;
  20. #日志格式
  21. #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  22. # '$status $body_bytes_sent "$http_referer" '
  23. # '"$http_user_agent" "$http_x_forwarded_for"';
  24. #$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
  25. #$remote_user:用来记录客户端用户名称;
  26. #$time_local: 用来记录访问时间与时区;
  27. #$request: 用来记录请求的url与http协议;
  28. #$status: 用来记录请求状态;成功是200,
  29. #$body_bytes_sent :记录发送给客户端文件主体内容大小;
  30. #$http_referer:用来记录从那个页面链接访问过来的;
  31. #$http_user_agent:记录客户浏览器的相关信息;
  32. #全局访问日志路径
  33. #access_log logs/access.log main;
  34. #sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime。
  35. sendfile on;
  36. #此选项允许或禁止使用socke的TCP_CORK的选项,此选项仅在使用sendfile的时候使用
  37. #tcp_nopush on;
  38. #长连接超时时间
  39. #keepalive_timeout 0;
  40. keepalive_timeout 65;
  41. #开启压缩
  42. #gzip on;
  43. #配置虚拟主机
  44. server {
  45. #虚拟主机使用的端口
  46. listen 80;
  47. #虚拟主机域名
  48. server_name localhost;
  49. #虚拟主机支持的字符集
  50. #charset koi8-r;
  51. #虚拟主机的访问日志路径
  52. #access_log logs/host.access.log main;
  53. #定义web根路径
  54. location / {
  55. #根目录路径
  56. root html;
  57. #默认的页面文件名称
  58. index index.html index.htm;
  59. }
  60. #error_page 404 /404.html;
  61. # redirect server error pages to the static page /50x.html
  62. #
  63. #根据错误码 返回对应的页面
  64. error_page 500 502 503 504 /50x.html;
  65. #定义页面路径
  66. location = /50x.html {
  67. root html;
  68. }
  69. #定义反向代理服务器 数据服务器是lamp模型
  70. # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  71. #
  72. #location ~ \.php$ {
  73. # proxy_pass http://127.0.0.1;
  74. #}
  75. #定义PHP为本机服务的模型
  76. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  77. #
  78. #location ~ \.php$ {
  79. # root html;
  80. # fastcgi_pass 127.0.0.1:9000;
  81. # fastcgi_index index.php;
  82. # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  83. # include fastcgi_params;
  84. #}
  85. # deny access to .htaccess files, if Apache's document root
  86. # concurs with nginx's one
  87. #
  88. #拒绝nginx DR目录及子目录下的.htaccess文件访问
  89. #location ~ /\.ht {
  90. # deny all;
  91. #}
  92. }
  93. # another virtual host using mix of IP-, name-, and port-based configuration
  94. #
  95. #server {
  96. # listen 8000;
  97. # listen somename:8080;
  98. # server_name somename alias another.alias;
  99. # location / {
  100. # root html;
  101. # index index.html index.htm;
  102. # }
  103. #}
  104. #https的配置方案
  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. }