全局配置 详解

user nginx nginx; #定义Nginx运行的用户和用户组
worker_processes 1; #nginx进程数,通常设置等于CPU总核数或者2倍与CPU
worker_rlimit_nofile 65535;
#指定进程可以打开的最大描述符:数目。这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。现在在Linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。
error_log logs/error.log info; #日志类型[ debug | info | notice | warn | error | crit ]
pid logs/nginx.pid; #进程号文件存放的路径

events {
use epoll;
#使用epoll的I/O 模型。linux建议epoll,FreeBSD建议采用kqueue,window下不指定。
#补充说明:
#与apache相类,nginx针对不同的操作系统,有不同的事件模型
#A)标准事件模型
#Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll
#B)高效事件模型
#Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。
#Epoll:使用于Linux内核2.6版本及以后的系统。
#/dev/poll:使用于Solaris 7 11/99+,HP/UX 11.22+ (eventport),IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。
#Eventport:使用于Solaris 10。 为了防止出现内核崩溃的问题, 有必要安装安全补丁。

worker_connections 10240;
#单个进程最大连接数(最大连接数=连接数*进程数)。
}

http {
include mime.types; #设定mime类型,类型由mime.type文件定义
default_type application/octet-stream; #默认文件类型
charset utf-8; #默认编码
log_format main '$remote_addr - r e m o t e u s e r [ remote_user [ remoteu​ser[time_local] “KaTeX parse error: Double superscript at position 34: … '̲status b o d y b y t e s s e n t " body_bytes_sent " bodyb​ytess​ent"http_referer” ’
‘“ h t t p u s e r a g e n t " " http_user_agent" " httpu​sera​gent""http_x_forwarded_for”’;
#日志格式设置。
# r e m o t e a d d r 与 remote_addr与 remotea​ddr与http_x_forwarded_for用以记录客户端的ip地址;
#KaTeX parse error: Expected 'EOF', got '#' at position 27: …:用来记录客户端用户名称; #̲time_local: 用来记录访问时间与时区;
#KaTeX parse error: Expected 'EOF', got '#' at position 30: …求的url与http协议; #̲status: 用来记录请求状态;成功是200,
#KaTeX parse error: Expected 'EOF', got '#' at position 37: …给客户端文件主体内容大小; #̲http_referer:用来记录从那个页面链接访问过来的;
#KaTeX parse error: Expected 'EOF', got '#' at position 33: …录客户浏览器的相关信息; #̲通常web服务器放在反向代理的…remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

server_tokens off; #隐藏版本号

access_log logs/access.log main; #用了log_format指令设置了日志格式之后,需要用access_log指令指定日志文件的存放路径
add_header X-Server $hostname; #
server_names_hash_bucket_size 128;
#32的倍数,保存服务器名字的hash表是由指令 server_names_hash_max_size 和 server_names_hash_bucket_size所控制的。参数hash bucket size总是等于hash表的大小,并且是一路处理器缓存大小的倍数。在减少了在内存中的存取次数后,使在处理器中加速查找hash表键值成为可能。如果 hash bucket size等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为2。第一次是确定存储单元的地址,第二次是在存储单元中查找键值。因此,如果Nginx给出需要增大 hash max size 或 hash bucket size的提示,那么首要的是增大前一个参数的大小
server_name_in_redirect off; #如果port_in_redirect为off时,那么始终按照默认的80端口;如果该指令打开,那么将会返回当前正在监听的端口。如果server_name_in_redirect为off时,那么将会以当前服务器的IP地址进行拼接URL;如果该命令为on,那么首先查找server_name,如果没有找到,查找请求头的HOST字段,如果没有,则以当前服务器的IP进行拼接。如果是完整的URL,那么直接以给出的URL返回,而不做任何改动,不管上面两个指令的打开还是关闭。

sendfile on; #sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime。
tcp_nopush on; #此选项允许或禁止使用socke的TCP_CORK的选项,此选项仅在使用sendfile的时候使用
tcp_nodelay on; #防止网络阻塞

#常用设置可以放http下面也可以放在外面
keepalive_timeout 60; #长连接超时时间,单位是秒
client_header_buffer_size 32k; #客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE 取得。
client_body_buffer_size 128k; #Nginx分配给请求数据的Buffer大小,如果请求的数据小于client_body_buffer_size直接将数据先在内存中存储。如果请求的值大于client_body_buffer_size小于client_max_body_size,就会将数据先存储到临时文件中
client_max_body_size 512m; #client_max_body_size 默认 1M,表示 客户端请求服务器最大允许大小,在“Content-Length”请求头中指定。如果请求的正文数据大于client_max_body_size,HTTP协议会报错 413 Request Entity Too Large。就是说如果请求的正文大于client_max_body_size,一定是失败的。如果需要上传大文件,一定要修改该值
large_client_header_buffers 4 128k; #客户请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取。
open_file_cache max=65535 inactive=20s; #这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。
open_file_cache_valid 30s; #这个是指多长时间检查一次缓存的有效信息
open_file_cache_min_uses 1; #open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除。

gzip模块设置
gzip on; #开启gzip压缩输出
gzip_static on; #nginx对于静态文件的处理模块。该模块可以读取预先压缩的gz文件,这样可以减少每次请求进行gzip压缩的CPU资源消耗。该模块启用后,nginx首先检查是否存在请求静态文件的gz结尾的文件,如果有则直接返回该gz文件内容。为了要兼容不支持gzip的浏览器,启用gzip_static模块就必须同时保留原始静态文件和gz文件。这样的话,在有大量静态文件的情况下,将会大大增加磁盘空间。我们可以利用nginx的反向代理功能实现只保留gz文件。
gzip_http_version 1.1; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_comp_level 6; #压缩等级 (级别越高,压的越小,越浪费CPU计算资源)
gzip_min_length 1024; #开始压缩的最小长度(再小就不要压缩了,意义不在)
gzip_vary on; #是否添加“Vary: Accept-Encoding”响应头(通俗的说是否传输gzip压缩标志)
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;
#需要压缩哪些响应类型的资源,多个用空格隔开。不建议压缩图片
#不建议压缩图片的原因:图片如jpg、png本身就会有压缩,所以就算开启gzip后,压缩前和压缩后大小没有多大区别,所以开启了反而会白白的浪费资源。(Tips:可以试试将一张jpg图片压缩为zip,观察大小并没有多大的变化。虽然zip和gzip算法不一样,但是可以看出压缩图片的价值并不大)
#不建议压缩大文件的原因:会消耗大量的cpu资源,且不一定有明显的效果。

#FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。下面参数看字面意思都能理解。fastcgi固定格式表示web架构
fastcgi_connect_timeout 300; #指定连接到后端FastCGI的超时时间
fastcgi_send_timeout 300; #指定向FastCGI传送请求的超时时间,这个值是已经完成两次握手后向FastCGI传送请求的超时时间
fastcgi_read_timeout 300; #指定接收FastCGI应答的超时时间,这个值是已经完成两次握手后接收FastCGI应答的超时时间
fastcgi_buffer_size 64k; #用于指定读取FastCGI应答第一部分需要用多大的缓冲区,这个值表示将使用1个64KB的缓冲区读取应答的第一部分(应答头),可以设置为fastcgi_buffers选项指定的缓冲区大小
fastcgi_buffers 4 64k; #指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求。如果一个PHP脚本所产生的页面大小为256KB,那么会为其分配4个64KB的缓冲区来缓存;如果页面大小大于256KB,那么大于256KB的部分会缓存到fastcgi_temp指定的路径中,但是这并不是好方法,因为内存中的数据处理速度要快于硬盘。一般这个值应该为站点中PHP脚本所产生的页面大小的中间值,如果站点大部分脚本所产生的页面大小为256KB,那么可以把这个值设置为“16 16k”、“4 64k”等。
fastcgi_busy_buffers_size 128k; #默认值是fastcgi_buffers的两倍
fastcgi_temp_file_write_size 128k; #表示在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍
fastcgi_intercept_errors on; #默认是关闭的,这个指令指定是否传递4xx和5xx错误信息到客户端,或者允许nginx使用error_page处理错误信息。你必须明确的在error_page中指定处理方法使这个参数有效,正如Igor所说“如果没有适当的处理方法,nginx不会拦截一个错误,这个错误不会显示自己的默认页面,这里允许通过某些方法拦截错误。

反向代理的一些配置(可选)
proxy_connect_timeout 600; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 600; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 600; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 32k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 54k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 2m; #设置在写入proxy_temp_path时数据的大小,预防一个工作进程在传递文件时阻塞太长
proxy_ignore_client_abort on; #proxy_ignore_client_abort:是否开启proxy忽略客户端中断。即如果此项设置为on开启,则服务器会忽略客户端中断,一直等着代理服务执行返回。并且如果执行没有发生错误,记录的日志是200日志。如果超时则会记录504。如果设置为off,则客户端中断后服务器端nginx立即记录499日志,但要注意,此时代理端的PHP程序会依然继续执行。nginx的proxy_ignore_client_abort默认是关闭的,即请求过程中如果客户端端主动关闭请求或者客户端网络断掉,那么Nginx会记录499。所以如果不想看到499报错,可以开启。这样来说,499错误并不是一个问题,如果出现了大量的499的话,需要考虑为什么发生了这么多的客户端中断的问题。
proxy_cache_path /usr/local/nginx/cache_temp levels=2:2 keys_zone=cache_temp:128m inactive=30m max_size=2g;
#代理缓存的缓存文件路径,/usr/local/nginx/cache_temp,该目录一定要提前创建好,否则配置文件检测会失败,并且该目录不能删除,删除后缓存消失
#levels=1:2 nginx会在上述配置的缓存文件路径下再创建两级目录,第一级目录命名为2个字符,第二级目录命名为2个字符
#keys_zone=my_cache:100m max_size=100m 定义缓存的名称和缓存大小 ,缓存的名称会在下面的location中使用,缓存大小可以结合自己服务器内存和系统需要缓存的内容大小进行考虑设置
#inactive=30m 缓存文件的有效时间,缓存到达该设置的时间后无论是否在使用都会从缓存路径下移除,然后回源获取新数据在生成缓存文件
proxy_cache_valid 200 302 10m; #表示对httpcode为200和302的缓存10分钟(天d 分钟m 默认为秒s)

include /usr/local/nginx/conf/conf.d/*.conf; #有此选项的时候启动nginx它会去conf.d/ 下面读取后缀为.conf的文件
}

全局配置模板

user  nginx nginx;
worker_processes  1;
worker_rlimit_nofile 65535;
error_log  logs/error.log  info;pid        logs/nginx.pid;events {use epoll;worker_connections  10240;
}http {include       mime.types;default_type  application/octet-stream;charset utf-8;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';server_tokens off;access_log  logs/access.log  main;add_header X-Server $hostname;server_names_hash_bucket_size 128;server_name_in_redirect off;sendfile        on;tcp_nopush     on;tcp_nodelay    on;keepalive_timeout  60;client_header_buffer_size 32k;client_body_buffer_size 128k;client_max_body_size 512m;large_client_header_buffers 4 128k;open_file_cache max=65535 inactive=20s;open_file_cache_valid 30s;open_file_cache_min_uses 1;gzip  on;gzip_static on;gzip_http_version 1.1;gzip_comp_level 2;gzip_min_length 1024;gzip_vary on;gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size  64k;fastcgi_buffers 4 64k;fastcgi_busy_buffers_size 128k;fastcgi_temp_file_write_size 128k;fastcgi_intercept_errors on;proxy_connect_timeout 600;proxy_send_timeout 600;proxy_read_timeout 600;proxy_buffer_size 32k;proxy_buffers    4 32k;proxy_busy_buffers_size 54k;proxy_temp_file_write_size 2m;proxy_ignore_client_abort on;proxy_cache_path /usr/local/nginx/cache_temp levels=2:2 keys_zone=cache_temp:128m inactive=30m max_size=2g;proxy_cache_valid 200 302 10m;include /usr/local/nginx/conf/conf.d/*.conf;
}

upstream配置

如果上面有include的话这个可以写一个配置文件在上面定义的目录
upstream tomcat_servers {
ip_hash;
server 192.168.2.14:8080 weight=1 max_fails=3 fail_timeout=30s;
server 192.168.2.15:8080 weight=1 max_fails=3 fail_timeout=30s;
}

nginx的upstream目前支持4种方式的分配

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream bakend {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}

2、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
upstream bakend {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}

3、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backend {
server server1;
server server2;
fair;
}

4、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

upstream backend {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}

tips:

upstream bakend{#定义负载均衡设备的Ip及设备状态}{
ip_hash;
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
在需要使用负载均衡的server中增加
proxy_pass http://bakend/;

每个设备的状态设置为:
1.down表示单前的server暂时不参与负载
2.weight为weight越大,负载的权重就越大。
3.max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

nginx支持同时设置多组的负载均衡,用来给不用的server来使用。

client_body_in_file_only设置为On 可以讲client post过来的数据记录到文件中用来做debug
client_body_temp_path设置记录文件的目录 可以设置最多3层目录

location对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡

server配置详解

server {
listen 80; #设置监听端口
server_name www.amber.com 192.168.2.12; #配置访问域名以及IP地址
index index.html index.htm index.jsp; #
root /web/www.amber.com; #
access_log /usr/local/nginx/logs/tomcat.amber.com_access.log main; #
location ~ ..jsp$ { #
index index.jsp; #
proxy_set_header HOST $host; #
proxy_set_header X-Real-IP $remote_addr; #
proxy_set_header Client-IP $remote_addr; #
proxy_set_header X-For KaTeX parse error: Double subscript at position 12: proxy_add_x_̲forwarded_for; … { #
expires 30d; #
}
location ~ .
.(js|css)$ {
expires 1h;
}
}

location ~ /.ht {
deny all;
}
#禁止访问.htxxx文件

注释:变量
Ngx_http_core_module模块支持内置变量,他们的名字和apache的内置变量是一致的。
首先是说明客户请求title中的行,例如 h t t p u s e r a g e n t , http_user_agent, httpu​sera​gent,http_cookie等等。
此外还有其它的一些变量
$args此变量与请求行中的参数相等
$content_length等于请求行的“Content_Length”的值。
$content_type等同与请求头部的”Content_Type”的值
$document_root等同于当前请求的root指令指定的值
d o c u m e n t u r i 与 document_uri与 documentu​ri与uri一样
$host与请求头部中“Host”行指定的值或是request到达的server的名字(没有Host行)一样
$limit_rate允许限制的连接速率
$request_method等同于request的method,通常是“GET”或“POST”
$remote_addr客户端ip
$remote_port客户端port
$remote_user等同于用户名,由ngx_http_auth_basic_module认证
$request_filename当前请求的文件的路径名,由root或alias和URI request组合而成
$request_body_file
$request_uri含有参数的完整的初始URI
q u e r y s t r i n g 与 query_string与 querys​tring与args一样
s h e e m e h t t p 模 式 ( h t t p , h t t p s ) 尽 在 要 求 是 评 估 例 如 R e w r i t e ( . + ) sheeme http模式(http,https)尽在要求是评估例如 Rewrite ^(.+) sheemehttp模式(http,https)尽在要求是评估例如Rewrite(.+) s h e m e : / / e x a m p l e . c o m sheme://example.com sheme://example.com; Redirect;
$server_protocol等同于request的协议,使用“HTTP/或“HTTP/
$server_addr request到达的server的ip,一般获得此变量的值的目的是进行系统调用。为了避免系统调用,有必要在listen指令中指明ip,并使用bind参数。
$server_name请求到达的服务器名
$server_port请求到达的服务器的端口号
$uri等同于当前request中的URI,可不同于初始值,例如内部重定向时或使用index

server配置模板

server {listen 80;server_name www.amber.com 192.168.2.12;index index.html index.htm index.jsp;root /web/www.amber.com;access_log /usr/local/nginx/logs/tomcat.amber.com_access.log main;location ~ .*\.jsp$ {index index.jsp;proxy_set_header HOST $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Client-IP $remote_addr;proxy_set_header X-For $proxy_add_x_forwarded_for;proxy_pass http://tomcat_servers;}location ~ .*\.(gif|jpg|jpeg|bmp|swf|png)$ {expires 30d;}location ~ .*\.(js|css)$ {expires 1h;}
}

如果对您有帮助,请点个赞?

Nginx配置文件参数详解以及配置文件模板相关推荐

  1. mysql配置文件参数详解_MySQL配置文件mysql.ini参数详解

    [mysqld] port=3306 mysql服务端默认监听(listen on)的TCP/IP端口 basedir="C:/Program Files/MySQL/MySQL Serve ...

  2. [原创]Saltstack学习笔记:命令参数详解以及配置文件说明

    很久没有更新saltstack的文章了,今天还是来更新一点,又开始对saltstack复习了一下. 前边写了一点<saltstack入门概述(1)>以及<Saltstack如何安装( ...

  3. Linux网卡配置文件-参数详解

    Linux网卡配置文件-参数详解 DEVICE=eth0 #指出网卡名称比如这个是eth0 NM_CONTROLLED=yes #network mamager的参数,实时生效,不需要重启,表示是否受 ...

  4. Nginx gzip参数详解及常见问题(已解决)

    Nginx gzip参数详解及常见问题(已解决) 参考文章: (1)Nginx gzip参数详解及常见问题(已解决) (2)https://www.cnblogs.com/xzkzzz/p/92243 ...

  5. CI流水线配置文件参数详解(二)

    文章目录 4. 参数详解(二) 4.9 git tag打标签的使用 4.10 ``allow_failure`` 4.11 ``when`` 关键字用于实现在作业失败时或发生故障时运行的作业 (whe ...

  6. Linux ❀ Rsyslog(Syslog)服务与配置文件参数详解

    文章目录 1.日志服务简介 2.linux系统中的常见日志 3.日志服务Rsyslog (1)服务对应rpm包 (2)服务配置文件 (3)配置文件格式 服务名称 连接符号 日志等级 日志记录位置 (4 ...

  7. CI流水线配置文件参数详解(一)

    文章目录 4. 参数详解(一) 4.1 ``script`` 4.2 ``image`` 指定使用Docker镜像.如 ``iamge:name`` ,暂时忽略. 4.3 ``before_scrip ...

  8. MySQL配置文件参数详解

    [client] port = 3307 socket = /usr/local/mysql5_6/mysql.sock default-character-set=utf8 [mysql] prom ...

  9. compose配置文件参数详解

    本文介绍compose配置文件参数的使用,熟练编写compose文件 [root@docker lnmp]# cat lnmp.yaml version: '3' services:nginx:bui ...

最新文章

  1. 用python画皮卡丘画法-利用Python绘制萌萌哒的皮卡丘
  2. 有待试用,查看是谁锁住了我的数据库
  3. 将图片转存为其它颜色格式(GDI+)
  4. 【转】10个推荐的 PACS/DICOM Server开源项目
  5. flutter SlideTransition实现平移动画
  6. 深度学习-通用模型调试技巧
  7. NSInvocation的一种用法
  8. 云平台圈地须群攻莫单打
  9. c#:浅克隆和深克隆,序列化和反序列化
  10. moongose模糊查询相关博客
  11. 最爱的文本编辑器_VS Code——插件推荐整理
  12. 周立功USBCAN-II的Python调用
  13. leo免费的excel操作界面的进销存供你下载使用
  14. 如何在博途精智面板及WinCC RT ADV中创建面板
  15. 华为是怎样研发的(12)——FMEA分析
  16. element-ui对话框fullscreen.lock使用
  17. 杰理之如果再开蓝牙一拖二的话。手机连接样机时,会出现,无法连接【篇】
  18. Debian配置主机名,域名,网卡IP地址
  19. 7月书讯(下)| 宝藏新书助你“乘风破浪”
  20. linux去除pdf页头,删除PDF水印小妙招

热门文章

  1. ADAU1452的A2B寄存器和时序图配置
  2. jeff seid_Jeff Key再做一次...适用于Windows的像素标尺
  3. 计算机开机界面图片怎么修改,电脑开关机画面怎么更改
  4. 软件造价评估(功能点计数元素ILF、EIF、IE、EO、EQ)
  5. 全方位检测外径轧钢测径仪
  6. 大直径测径仪的工艺流程详解
  7. 学习DS1820随记
  8. 公务员笔试讲义——资料分析1
  9. CAD画图软件测试自学,自学CAD画图APP
  10. xbel文档_什么是.recently-used.xbel?如何永久删除它?