nginx配置文件详解|nginx 查看调用了哪些配置文件

nginx配置文件详解|nginx 查看调用了哪些配置文件的第1张示图

1. 如何配置Nginx做高可用

Nginx配置Nginx 的配置主要是修改 /usr/local/nginx/conf/nginx,conf文件#配置用户和用户组user www www;#工作进程数,建议设置为CPU的总核数worker_processes 2;#全局错误日志定义类型,日志等级从低到高依次为: debug | info | notice | warn | error | criterror_log logs/error.log info;#记录主进程ID的文件pid /usr/local/nginx/nginx.pid;#一个进程能打开的文件描述符最大值,理论上该值因该是最多能打开的文件数除以进程数。但是由于nginx负载并不是完全均衡的,#所以这个值最好等于最多能打开的文件数。执行 sysctl -a | grep fs.file 可以看到linux文件描述符。worker_rlimit_nofile 65535;#工作模式与连接数上限events {#工作模式,linux2.6版本以上用epolluse epoll;#单个进程允许的最大连接数worker_connections 65535;}#设定http服务器,利用它的反向代理功能提供负载均衡支持http {#文件扩展名与文件类型映射表include mime.types;#默认文件类型default_type application/octet-stream;#日志格式log_format main '$remote_addr – $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';#access log 记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息access_log logs/access.log main;#服务器名字的hash表大小server_names_hash_bucket_size 128;#客户端请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,#如果header过大,它会使用large_client_header_buffers来读取。#如果设置过小HTTP头/Cookie过大 会报400 错误 nginx 400 bad request#如果超过buffer,就会报HTTP 414错误(URI Too Long)#nginx接受最长的HTTP头部大小必须比其中一个buffer大,否则就会报400的HTTP错误(Bad Request)。client_header_buffer_size 32k;large_client_header_buffers 4 32k;#客户端请求体的大小client_body_buffer_size 8m;#隐藏ngnix版本号server_tokens off;#忽略不合法的请求头ignore_invalid_headers on;#指定启用除第一条error_page指令以外其他的error_page。recursive_error_pages on;#让 nginx 在处理自己内部重定向时不默认使用 server_name 设置中的第一个域名server_name_in_redirect off;#开启文件传输,一般应用都应设置为on;若是有下载的应用,则可以设置成off来平衡网络I/O和磁盘的I/O来降低系统负载sendfile on;#告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送。tcp_nopush on;#告诉nginx不要缓存数据,而是一段一段的发送–当需要及时发送数据时,就应该给应用设置这个属性,#这样发送一小块数据信息时就不能立即得到返回值。tcp_nodelay on;#长连接超时时间,单位是秒keepalive_timeout 65;#gzip模块设置,使用 gzip 压缩可以降低网站带宽消耗,同时提升访问速度。gzip on; #开启gzipgzip_min_length 1k; #最小压缩大小gzip_buffers 4 16k; #压缩缓冲区gzip_http_version 1.0; #压缩版本gzip_comp_level 2; #压缩等级gzip_types text/plain application/x-javascript text/css application/xml; #压缩类型#upstream作负载均衡,在此配置需要轮询的服务器地址和端口号,max_fails为允许请求失败的次数,默认为1.#weight为轮询权重,根据不同的权重分配可以用来平衡服务器的访问率。upstream hostname {server 192.168.2.149:8080 max_fails=0 weight=1;server 192.168.1.9:8080 max_fails=0 weight=1;}#主机配置server {#监听端口listen 80;#域名server_name hostname;#字符集charset utf-8;#单独的access_log文件access_log logs/192.168.2.149.access.log main;#反向代理配置,将所有请求为http://hostname的请求全部转发到upstream中定义的目标服务器中。location / {#此处配置的域名必须与upstream的域名一致,才能转发。proxy_pass http://hostname;proxy_set_header X-Real-IP $remote_addr;}#启用nginx status 监听页面location /nginxstatus {stub_status on;access_log on;}#错误页面error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}}至此,nginx基本的负载均衡配置完成,实验中部署2台tomcat, 然后访问时返回不同的结果,在浏览器中输入地址,确实能看到不同的返回结果。nginx配置文件的内容还有待于继续学习。

2. nginx配置文件详解

一、安装Nginx在安装Nginx之前,需确保系统已经安装了gcc、 openssl-devel、 pcre-devel和zlib-devel软件库。

其中, –with-http_stub_status_mole 可以用来启用 Nginx 的 NginxStatus 功能,以监控 Nginx 的运行状态。

二、Nginx的配置文件结构Nginx的配置文件nginx.conf位于其安装目录的conf目录下。

nginx.conf由多个块组成,最外面的块是main,main包含Events和HTTP,HTTP包含upstream和多个Server,Server又包含多个location。

main(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。

1、main块设置的指令将影响其他所有设置。

2、server块的指令主要用于指定主机和端口。

3、upstream指令主要用于负载均衡,设置一系列的后端服务器。

4、location块用于匹配网页位置。

这四者之间的关系式:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。

在这四个部分当中,每个部分都包含若干指令,这些指令主要包含Nginx的主模块指令、事件模块指令、HTTP核心模块指令,同时每个部分还可以使用其他HTTP模块指令,例如Http SSL模块、HttpGzip Static模块和Http Addition模块等。

三、Nginx的全局配置

events事件指令是设定Nginx的工作模式及连接数上限:

use是个事件模块指令,用来指定Nginx的工作模式。Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。

其中select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平台上,而kqueue用在BSD系统中。对于Linux系统,epoll工作模式是首选worker_connections也是个事件模块指令,用于定义Nginx每个进程的最大连接数,默认是1024。

最大客户端连接数由worker_processes和worker_connections决定,即Max_client=worker_processes*worker_connections。

在作为反向代理时,max_clients变为:max_clients = worker_processes * worker_connections/4。

进程的最大连接数受Linux系统进程的最大打开文件数限制,在执行操作系统命令“ulimit -n 65536”后worker_connections的设置才能生效。

四、下面配置Nginx的HttpGzip模块。这个模块支持在线实时压缩输出数据流。

通过/opt/nginx/sbin/nginx -V命令可以查看安装Nginx时的编译选项,由输出可知,已经安装了HttpGzip模块。

五、负载均衡配置

下面设定负载均衡的服务器列表:

upstream是Nginx的HTTP Upstream模块,这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡。

在上面的设定中,通过upstream指令指定了一个负载均衡器的名称cs.com。这个名称可以任意指定,在后面需要的地方直接调用即可,Nginx的负载均衡模块目前支持4种调度算法。

六、server虚拟主机配置

下面介绍对虚拟主机的配置。

建议将对虚拟主机进行配置的内容写进另外一个文件,然后通过include指令包含进来,这样更便于维护和管理。

server标志定义虚拟主机开始,listen用于指定虚拟主机的服务端口,server_name用来指定IP地址或者域名,多个域名之间用空格分 开。index用于设定访问的默认首页地址,root指令用于指定虚拟主机的网页根目录,这个目录可以是相对路径,也可以是绝对路径。

Charset用于 设置网页的默认编码格式。access_log用来指定此虚拟主机的访问日志存放路径,最后的main用于指定访问日志的输出格式。

七、location URL匹配配置

URL地址匹配是进行Nginx配置中最灵活的部分。 location支持正则表达式匹配,也支持条件判断匹配,用户可以通过location指令实现Nginx对动、静态网页进行过滤处理。使用location URL匹配配置还可以实现反向代理,用于实现PHP动态解析或者负载负载均衡。

以下这段设置是通过location指令来对网页URL进行分析处理,所有扩展名以.gif、.jpg、.jpeg、.png、.bmp、.swf结尾的静态文件都交给nginx处理,而expires用来指定静态文件的过期时间,这里是30天。

八、StubStatus模块配置

StubStatus模块能够获取Nginx自上次启动以来的工作状态,此模块非核心模块,需要在Nginx编译安装时手工指定才能使用此功能。

stub_status设置为“on”表示启用StubStatus的工作状态统计功能。access_log 用来指定StubStatus模块的访问日志文件。auth_basic是Nginx的一种认证机制。

auth_basic_user_file用来指定认证的密码文件,由于Nginx的auth_basic认证采用的是与Apache兼容的密码文件,因此需要用Apache的htpasswd命令来生成密码文件。

然后输入两次密码后确认之后添加用户成功。

要查看Nginx的运行状态,可以输入http://ip/NginxStatus,输入创建的用户名和密码就可以看到Nginx的运行状态。

Active connections表示当前活跃的连接数,第三行的三个数字表示 Nginx当前总共处理了34561个连接, 成功创建次握手, 总共处理了354399个请求。

最后一行的Reading表示Nginx读取到客户端Header信息数, Writing表示Nginx返回给客户端的Header信息数,“Waiting”表示Nginx已经处理完,正在等候下一次请求指令时的驻留连接数。

在最后这段设置中,设置了虚拟主机的错误信息返回页面,通过error_page指令可以定制各种错误信息的返回页面。在默认情况下,Nginx会在主目录的html目录中查找指定的返回页面。

特别需要注意的是,这些错误信息的返回页面大小一定要超过512K,否者会被ie浏览器替换为ie默认的错误页面。

3. nginx设置maxprocess

如下:1. 找到Nginx服务器瓶颈。2. 优化配置。3. 重新压力测试打开Apache ab压力测试工具,输入如下命令:ab -n 200000 -c 5000 http://localhost:8080/index.html。查看Nginx 状态信息在浏览器中输入nginx的地址:http://127.0.0.1/status,查看nginx的状态信息。Nginx的主配置文件是nginx.conf,这个配置文件一共由三部分组成,分别为全局块、events块和http块。在http块中,又包含http全局块、多个server块。每个server块中,可以包含server全局块和多个location块。在同一配置块中嵌套的配置块,各个之间不存在次序关系。配置文件支持大量可配置的指令,绝大多数指令不是特定属于某一个块的。同一个指令放在不同层级的块中,其作用域也不同,一般情况下,高一级块中的指令可以作用于自身所在的块和此块包含的所有低层级块。如果某个指令在两个不同层级的块中同时出现,则采用“就近原则”,即以较低层级块中的配置为准。比如,某指令同时出现在http全局块中和server块中,并且配置不同,则应该以server块中的配置为准。

4. nginx惯用配置项详解怎么解决

定义Nginx运行的用户和用户组user www www;#nginx进程数,建议设置为等于CPU总核心数。worker_processes 8;#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error.log info;#进程文件pid /var/run/nginx.pid;#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。worker_rlimit_nofile 65535;#工作模式与连接数上限events{#参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。use epoll;#单个进程最大连接数(最大连接数=连接数*进程数)worker_connections 65535;}#设定http服务器http{include mime.types; #文件扩展名与文件类型映射表default_type application/octet-stream; #默认文件类型#charset utf-8; #默认编码server_names_hash_bucket_size 128; #服务器名字的hash表大小client_header_buffer_size 32k; #上传文件大小限制large_client_header_buffers 4 64k; #设定请求缓client_max_body_size 8m; #设定请求缓sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。autoindex on; #开启目录列表访问,合适下载服务器,默认关闭。tcp_nopush on; #防止网络阻塞tcp_nodelay on; #防止网络阻塞keepalive_timeout 120; #长连接超时时间,单位是秒#FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访

5. nginx 配置详解是怎么样的

Nginx配置文件主要分为四部分:main(全局配置)、server(主机设置)、upstream(上游服务器设置)和location(URL匹配特定位置后的设置)每部分包含若干个指令。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。

并且支持很多第三方的模块扩展,Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

nginx 配置注意事项

Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。

events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

6. nginx 文件配置 如何设置域名

1.路径: /etc/nginx/nginx.conf 和 /etc/nginx/conf.d,

其实只有/etc/nginx/nginx.conf 这一个配置文件,因为在nginx.conf中,其他配置文件都是可以利用 include 指令·引入的

部分配置文件:

server{listen 80;server_name test.net;root /var/www/test;#include none.conf;#error_page 404 /404.html;location ~ [^/].php(/|$){include fastcgi_params;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;client_max_body_size 500m;}location ~ .*.(gif|jpg|jpeg|png|bmp|swf)${expires 30d;}location ~ .*.(js|css)?${expires 12h;}#location = /HBLS.deb {# rewrite . /HBLS.deb;# default_type application/x-deb;#}access_log off;#access_log logs/lung.access.log;#error_log logs/lung.error.log debug;}

7. 如何 解析 nginx 配置文件

# PHP 5.3.9./configure –prefix=/usr/local/php — enable-fpm# nginx 1.0.11./configure –prefix=usr/local/nginx# 成功安装后,创建 php-fpm.conf 配置文件,删除 nginx.conf 中“pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000”部分的注释cd /usr/local/php/etcmv php-fpm.conf.default php-fpm.confvi /usr/local/nginx/conf/nginx.conf# 删除如下部分的注释,保存退出,location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params;}# 启动 php-fpm 和 nginx/usr/local/php/sbin/php-fpm/usr/local/nginx/sbin/nginx

8. nginx 配置详解是什么

Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。

Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。

5、location块:配置请求的路由,以及各种页面的处理情况。

Nginx常用功能。

1、Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。

Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如图片文件结尾的走文件服务器,动态页面走web服务器,只要你正则写的没问题,又有相对应的服务器解决方案。

。并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。

2、负载均衡

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦,你可以参照所有的负载均衡算法,给他一一找出来做下实现。

9. nginx 查看调用了哪些配置文件

Nginx配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)和 location(URL匹配特定位置后的设置),每部分包含若干个指令。main部分设置的指令将影响其它所有部分的设置;server部分的指令主要用于指定虚拟主机域名、IP和端口;upstream的指令用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡;location部分用于匹配网页位置(比如,根目录“/”,“/images”,等等)。他们之间的关系式:server继承main,location继承server;upstream既不会继承指令也不会被继承。它有自己的特殊指令,不需要在其他地方的应用。

10. nginx中proxy_set_header Host $host;的作用!~请详解!~

用户认证接口:根据客户端IP和port,进行IP反查和端口范围确认,如符合则用户认证通过。

proxy_set_header 就是可设置请求头-并将头信息传递到服务器端。

1、Nginx proxy_set_header允许重新定义或添加字段传递给代理服务器的请求头。该值可以包含文本、变量和它们的组合。在没有定义proxy_set_header时会继承之前定义的值。默认情况下,只有两个字段被重定义:

未经允许不得转载:山九号 » nginx配置文件详解|nginx 查看调用了哪些配置文件

赞 (0)