Nginx实战基础篇二 Nginx主配置文件参数详解

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

Nginx安装完毕后,会有响应的安装目录,安装目录里nginx.confnginx的主配置文件,ginx主配置文件分为4部分,main(全局配置)、server(主机设置)、upstream(负载均衡服务器设)和locationURL匹配特定位置的设置),这四者关系为:server继承mainlocation继承serverupstream既不会继承其他设置也不会被继承。

一、Nginxmain(全局配置)文件

 
  1. [root@rhel6u3-7 server]# vim /usr/local/nginx/conf/nginx.conf 
  2. user  nginx nginx; //指定nginx运行的用户及用户组为nginx,默认为nobody 
  3. worker_processes  2; //开启的进程数,一般跟逻辑cpu核数一致 
  4. error_log  logs/error.log  notice;  //定于全局错误日志文件,级别以notice显示。还有debug、info、warn、error、crit模式,debug输出最多,crit输出最少,更加实际环境而定。 
  5. pid        logs/nginx.pid; //指定进程id的存储文件位置 
  6. worker_rlimit_nofile 65535; //指定一个nginx进程打开的最多文件描述符数目,受系统进程的最大打开文件数量限制 
  7. events { 
  8.     use epoll; 设置工作模式为epoll,除此之外还有select、poll、kqueue、rtsig和/dev/poll模式 
  9.     worker_connections  65535; //定义每个进程的最大连接数 受系统进程的最大打开文件数量限制 
  10. ……. 

 
  1. [root@rhel6u3-7 server]# cat /proc/cpuinfo | grep "processor" | wc –l  //查看逻辑CPU核数 
  2. [root@rhel6u3-7 server]# ulimit -n 65535  //设置系统进程的最大打开文件数量 

 

二、NginxHTTP服务器配置,Gzip配置。

 

 
  1. http { 
  2. *****************************以下是http服务器全局配置********************************* 
  3.     include       mime.types;  //主模块指令,实现对配置文件所包含的文件的设定,可以减少主配置文件的复杂度,DNS主配置文件中的zonerfc1912,acl基本上都是用的include语句 
  4. default_type  application/octet-stream; //核心模块指令,这里默认设置为二进制流,也就是当文件类型未定义时使用这种方式 
  5. //下面代码为日志格式的设定,main为日志格式的名称,可自行设置,后面引用。 
  6.     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '   
  7.                       '$status $body_bytes_sent "$http_referer" ' 
  8.                       '"$http_user_agent" "$http_x_forwarded_for"'; 
  9. access_log  logs/access.log  main;  //引用日志main 
  10.     client_max_body_size 20m; //设置允许客户端请求的最大的单个文件字节数 
  11. client_header_buffer_size 32k; //指定来自客户端请求头的headebuffer大小 
  12. client_body_temp_path /dev/shm/client_body_temp; //指定连接请求试图写入缓存文件的目录路径 
  13.     large_client_header_buffers 4 32k; //指定客户端请求中较大的消息头的缓存最大数量和大小,目前设置为4个32KB 
  14.     sendfile        on; //开启高效文件传输模式 
  15.     tcp_nopush     on; //开启防止网络阻塞 
  16.     tcp_nodelay    on; //开启防止网络阻塞 
  17.     keepalive_timeout  65; //设置客户端连接保存活动的超时时间 
  18.     client_header_timeout 10; //用于设置客户端请求读取超时时间 
  19.     client_body_timeout 10; //用于设置客户端请求主体读取超时时间 
  20. send_timeout 10; //用于设置相应客户端的超时时间 
  21. //以下是httpGzip模块配置 
  22. #httpGzip modules 
  23.     gzip  on;  //开启gzip压缩 
  24.     gzip_min_length 1k;  //设置允许压缩的页面最小字节数 
  25.     gzip_buffers 4 16k; //申请4个单位为16K的内存作为压缩结果流缓存 
  26.     gzip_http_version 1.1; //设置识别http协议的版本,默认是1.1 
  27.     gzip_comp_level 2; //指定gzip压缩比,1-9 数字越小,压缩比越小,速度越快. 
  28.     gzip_types text/plain  application/x-javascript text/css application/xml; //指定压缩的类型 
  29.     gzip_vary on; //让前端的缓存服务器存经过gzip压缩的页面 

 

三、nginxserver虚拟主机配置

两种方式一种是直接在主配置文件中设置server字段配置虚拟主机,另外一种是使用include字段设置虚拟主机,这样可以减少主配置文件的复杂性。

 

 
  1. *****************************以下是server主机设置********************************* 
  2.   server { 
  3.         listen       80;  //监听端口为80 
  4.         server_name  www.rsyslog.org;  //设置主机域名 
  5.         charset gb2312;  //设置访问的语言编码 
  6.         access_log  logs/www.rsyslog.org.access.log  main; //设置虚拟主机访问日志的存放路径及日志的格式为main 
  7.         location / {      //设置虚拟主机的基本信息 
  8.             root   sites/www;  //设置虚拟主机的网站根目录 
  9.             index  index.html index.htm; //设置虚拟主机默认访问的网页 
  10.         } 
  11.         location /status {  // 查看nginx当前的状态情况,需要模块 “--with-http_stub_status_module”支持 
  12.                 stub_status on; 
  13.                 access_log /usr/local/nginx/logs/status.log; 
  14.                 auth_basic "NginxStatus"; } 
  15. include /usr/local/nginx/server/www1.rsyslog.org; //使用include字段设置server,内容如下 
  16. [root@rhel6u3-7 ~]# cat /usr/local/nginx/server/www1.rsyslog.org  
  17. server { 
  18.      listen       80; 
  19.      server_name  www1.rsyslog.org; 
  20.       location / { 
  21.             root   sites/www1; 
  22.             index  index.html index.htm; 
  23.         } 
  24.     } 

 

upstream模块后面负载均衡再做介绍!


本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1140995,如需转载请自行联系原作者

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
306 0
|
2月前
|
缓存 负载均衡 应用服务中间件
nginx的配置文件详解
本文详细解释了nginx配置文件中的关键指令和区块,如http、server、location、upstream、events等,并通过一个示例配置文件展示了如何设置HTTP服务器、gzip压缩、反向代理、URL重写、错误页面和负载均衡等,强调了配置的灵活性和实际应用。
51 4
|
2月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
173 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
1月前
|
应用服务中间件 nginx
Nginx:怎么携带参数重定向
通过合理配置Nginx的 `rewrite`指令和 `return`指令,可以实现携带参数的重定向。这不仅可以确保用户请求被正确重定向,还可以保留原始查询参数,满足更多复杂的重定向需求。
124 1
|
1月前
|
应用服务中间件 nginx
Nginx:怎么携带参数重定向
通过合理配置Nginx的 `rewrite`指令和 `return`指令,可以实现携带参数的重定向。这不仅可以确保用户请求被正确重定向,还可以保留原始查询参数,满足更多复杂的重定向需求。
71 2
|
2月前
|
缓存 负载均衡 算法
nginx学习:配置文件详解,负载均衡三种算法学习,上接nginx实操篇
Nginx 是一款高性能的 HTTP 和反向代理服务器,也是一个通用的 TCP/UDP 代理服务器,以及一个邮件代理服务器和通用的 HTTP 缓存服务器。
94 0
nginx学习:配置文件详解,负载均衡三种算法学习,上接nginx实操篇
|
2月前
|
域名解析 网络协议 应用服务中间件
nginx server_name配置文件覆盖不生效
nginx server_name配置文件覆盖不生效
|
2月前
|
应用服务中间件 nginx
nginx 配置文件
nginx 配置文件
|
4月前
|
运维 应用服务中间件 网络安全
运维系列.Nginx配置文件结构功能总结
运维系列.Nginx配置文件结构功能总结
76 0
运维系列.Nginx配置文件结构功能总结
|
4月前
|
应用服务中间件 调度 nginx
优化nginx参数(基本通用参数)
优化nginx参数(基本通用参数)