Nginx参数配置详解

ゝ一纸荒年。 2022-05-29 03:47 281阅读 0赞
  1. user nobody;
  2. #启动进程,通常设置成和cpu的数量相等
  3. worker_processes 1;
  4. #全局错误日志及PID文件
  5. #error_log logs/error.log;
  6. #error_log logs/error.log notice;
  7. #error_log logs/error.log info;
  8. #pid logs/nginx.pid;
  9. #工作模式及连接数上限
  10. events {
  11. #epoll是多路复用IO(I/O Multiplexing)中的一种方式,
  12. #仅用于linux2.6以上内核,可以大大提高nginx的性能
  13. use epoll;
  14. #单个后台worker process进程的最大并发链接数
  15. worker_connections 1024;
  16. # 并发总数是 worker_processes 和 worker_connections 的乘积
  17. # 即 max_clients = worker_processes * worker_connections
  18. # 在设置了反向代理的情况下,max_clients = worker_processes * worker_connections / 4 为什么
  19. # 为什么上面反向代理要除以4,应该说是一个经验值
  20. # 根据以上条件,正常情况下的Nginx Server可以应付的最大连接数为:4 * 8000 = 32000
  21. # worker_connections 值的设置跟物理内存大小有关
  22. # 因为并发受IO约束,max_clients的值须小于系统可以打开的最大文件数
  23. # 而系统可以打开的最大文件数和内存大小成正比,一般1GB内存的机器上可以打开的文件数大约是10万左右
  24. # 我们来看看360M内存的VPS可以打开的文件句柄数是多少:
  25. # $ cat /proc/sys/fs/file-max
  26. # 输出 34336
  27. # 32000 < 34336,即并发连接总数小于系统可以打开的文件句柄总数,这样就在操作系统可以承受的范围之内
  28. # 所以,worker_connections 的值需根据 worker_processes 进程数目和系统可以打开的最大文件总数进行适当地进行设置
  29. # 使得并发总数小于操作系统可以打开的最大文件数目
  30. # 其实质也就是根据主机的物理CPU和内存进行配置
  31. # 当然,理论上的并发总数可能会和实际有所偏差,因为主机还有其他的工作进程需要消耗系统资源。
  32. # ulimit -SHn 65535
  33. }
  34. http {
  35. #设定mime类型,类型由mime.type文件定义
  36. include mime.types;
  37. default_type application/octet-stream;
  38. #设定日志格式
  39. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  40. '$status $body_bytes_sent "$http_referer" '
  41. '"$http_user_agent" "$http_x_forwarded_for"';
  42. access_log logs/access.log main;
  43. #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,
  44. #对于普通应用,必须设为 on,
  45. #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,
  46. #以平衡磁盘与网络I/O处理速度,降低系统的uptime.
  47. sendfile on;
  48. #tcp_nopush on;
  49. #连接超时时间
  50. #keepalive_timeout 0;
  51. keepalive_timeout 65;
  52. tcp_nodelay on;
  53. #开启gzip压缩
  54. gzip on;
  55. gzip_disable "MSIE [1-6].";
  56. #设定请求缓冲
  57. client_header_buffer_size 128k;
  58. large_client_header_buffers 4 128k;
  59. #设定虚拟主机配置
  60. server {
  61. #侦听80端口
  62. listen 80;
  63. #定义使用 www.nginx.cn访问
  64. server_name www.nginx.cn;
  65. #定义服务器的默认网站根目录位置
  66. root html;
  67. #设定本虚拟主机的访问日志
  68. access_log logs/nginx.access.log main;
  69. #默认请求
  70. location / {
  71. #定义首页索引文件的名称
  72. index index.php index.html index.htm;
  73. }
  74. # 定义错误提示页面
  75. error_page 500 502 503 504 /50x.html;
  76. location = /50x.html {
  77. }
  78. #静态文件,nginx自己处理
  79. location ~ ^/(images|javascript|js|css|flash|media|static)/ {
  80. #过期30天,静态文件不怎么更新,过期可以设大一点,
  81. #如果频繁更新,则可以设置得小一点。
  82. expires 30d;
  83. }
  84. #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
  85. location ~ .php$ {
  86. fastcgi_pass 127.0.0.1:9000;
  87. fastcgi_index index.php;
  88. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  89. include fastcgi_params;
  90. }
  91. #禁止访问 .htxxx 文件
  92. location ~ /.ht {
  93. deny all;
  94. }
  95. }
  96. }
  97. /篇2
  98. #Nginx所用用户和组,window下不指定
  99. #user niumd niumd;
  100. #工作的子进程数量(通常等于CPU数量或者2倍于CPU)
  101. worker_processes 2;
  102. #错误日志存放路径
  103. #error_log logs/error.log;
  104. #error_log logs/error.log notice;
  105. error_log logs/error.log info;
  106. #指定pid存放文件
  107. pid logs/nginx.pid;
  108. events {
  109. #使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue,window下不指定。
  110. #use epoll;
  111. #允许最大连接数
  112. worker_connections 2048;
  113. }
  114. http {
  115. include mime.types;
  116. default_type application/octet-stream;
  117. #定义日志格式
  118. #log_format main '$remote_addr - $remote_user [$time_local] $request '
  119. # '"$status" $body_bytes_sent "$http_referer" '
  120. # '"$http_user_agent" "$http_x_forwarded_for"';
  121. #access_log off;
  122. access_log logs/access.log;
  123. client_header_timeout 3m;
  124. client_body_timeout 3m;
  125. send_timeout 3m;
  126. client_header_buffer_size 1k;
  127. large_client_header_buffers 4 4k;
  128. sendfile on;
  129. tcp_nopush on;
  130. tcp_nodelay on;
  131. #keepalive_timeout 75 20;
  132. #include gzip.conf;
  133. upstream localhost{
  134. #Nginx是如何实现负载均衡的,Nginx的upstream目前支持以下几种方式的分配
  135. #1、轮询(默认)
  136. #每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
  137. #2、weight
  138. #指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
  139. #2、ip_hash
  140. #每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
  141. #3、fair(第三方)
  142. #按后端服务器的响应时间来分配请求,响应时间短的优先分配。
  143. #4、url_hash(第三方)
  144. #按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
  145. #ip_hash;
  146. server localhost:8080;
  147. server localhost:8088;
  148. }
  149. server {
  150. listen 80;
  151. server_name localhost;
  152. location / {
  153. proxy_connect_timeout 3; #nginx跟后端服务器连接超时时间(代理连接超时)
  154. proxy_send_timeout 30; #后端服务器数据回传时间(代理发送超时)
  155. proxy_read_timeout 30; #连接成功后,后端服务器响应时间(代理接收超时)
  156. proxy_pass http://localhost;
  157. }
  158. }
  159. }

发表评论

表情:
评论列表 (有 0 条评论,281人围观)

还没有评论,来说两句吧...

相关阅读

    相关 nginx配置参数详解

    首先使用命令确认Nginx配置所在位置,使用命令如下: sudo nginx -t 显示如图: 则我的配置文件在/etc/nginx目录中。 配置文件一般是一个文本文