当前位置: > Linux服务器 > nginx >

nginx配置文件如何验证是否准确

时间:2016-10-06 19:12来源:linux.it.net.cn 作者:IT

当我们进行nginx配置文件的时候如何才能检测我们做的是否正确呢?其实很简单,下面就向大家介绍有关nginx配置文件正确与否的检测方法。希望大家在以后的使用中有所收获。

检测nginx配置文件是否正确


  1. /usr/local/nginx/sbin/nginx -t -c nginx.conf  
  2. -c 配置文件路径  
  3. -g Set global directives. (version >=0.7.4)  
  4. -t 检测文件是否正确不执行  
  5. -v Print version.  
  6. -V Print nginx version, compiler version and configure  parameters. 

 

编译时如果使用了–with-debug编译,还可以使用error_log file [ debug_core| debug_http | debug_event …] 来获得debug信息

通过信号对 Nginx配置文件 进行控制

Nginx配置文件 支持下表中的信号:

信号名 作用描述

 

  1. TERM, INT 快速关闭程序,中止当前正在处理的请求   
  2. QUIT 处理完当前请求后,关闭程序   
  3. HUP 重新加载配置,并开启新的工作进程,关闭就的进程,此操作不会中断请求   
  4. USR1 重新打开日志文件,用于切换日志,例如每天生成一个新的日志文件   
  5. USR2 平滑升级可执行程序   
  6. WINCH 从容关闭工作进程  

有两种方式来通过这些信号去控制 Nginx配置文件,第一是通过 logs 目录下的 nginx.pid 查看当前运行的 Nginx 的进程 ID,通过 kill – XXX <pid> 来控制 Nginx,其中 XXX 就是上表中列出的信号名。如果您的系统中只有一个 Nginx 进程,那您也可以通过 killall 命令来完成,例如运行 killall – s HUP nginx 来让 Nginx 重新加载配置。

配置:

 


  1. use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; FreeBSD使用kqueue,Linux选epoll.  
  2. worker_connections number 每个worker的最大连接数  
  3. Maxclient = work_processes * worker_connections 

 

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

1、轮询(默认)

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

2、weight

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

2、ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

3、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

4、url_hash(第三方)

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

代理只需要在nginx配置文件中增加虚拟主机,然后加入


  1. \proxy_pass http://localhost:8000; 

 

负载均衡:只需要在http中增加


  1. upstream tgcluster {#定义负载均衡设备的Ip及设备状态  
  2. ip_hash;  
  3. server 127.0.0.1:9090 down;  
  4. server 127.0.0.1:8080 weight=2;  
  5. server 127.0.0.1:6060;  
  6. server 127.0.0.1:7070 backup;  

在需要使用负载均衡的server中增加


  1. proxy_pass http://tgcluster/; 

每个设备的状态设置为:

1.down 表示单前的server暂时不参与负载 2.weight 默认为1.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进行匹配.可以进行重定向或者进行新的代理 负载均衡

FASTCGI配置:

请将以下内容保存为fastcgi_params文件,保存于/usr/local/nginx/conf下(Ubuntu可保存于/etc/nginx下),他为我们的FastCGI模块设置了基本的环境变量:


  1. #fastcgi_params  
  2. fastcgi_param GATEWAY_INTERFACE CGI/1.1;  
  3. fastcgi_param SERVER_SOFTWARE nginx;  
  4. fastcgi_param QUERY_STRING $query_string;  
  5. fastcgi_param REQUEST_METHOD $request_method;  
  6. fastcgi_param CONTENT_TYPE $content_type;  
  7. fastcgi_param CONTENT_LENGTH $content_length;  
  8. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
  9. fastcgi_param SCRIPT_NAME $fastcgi_script_name;  
  10. fastcgi_param REQUEST_URI $request_uri;  
  11. fastcgi_param DOCUMENT_URI $document_uri;  
  12. fastcgi_param DOCUMENT_ROOT $document_root;  
  13. fastcgi_param SERVER_PROTOCOL $server_protocol;  
  14. fastcgi_param REMOTE_ADDR $remote_addr;  
  15. fastcgi_param REMOTE_PORT $remote_port;  
  16. fastcgi_param SERVER_ADDR $server_addr;  
  17. fastcgi_param SERVER_PORT $server_port;  
  18. fastcgi_param SERVER_NAME $server_name;  
  19. # PHP only, required if PHP was built with  –enable-force-cgi-redirect 

fastcgi_param REDIRECT_STATUS 200;请特别注意加粗的一行,PHP-CGI特别需要此行信息来确定PHP文件的位置。

另外需要在PHP-CGI的配置文件(Ubuntu 上此配置文件位于/etc/php5/cgi/php.ini)中,打开cgi.fix_pathinfo选项:

cgi.fix_pathinfo=1;这样php-cgi方能正常使用SCRIPT_FILENAME这个变量。

接下来在nginx的配置中针对php文件配置其利用FastCGI进程来执行:

 


  1. server {  
  2. index index.php;  
  3. root /usr/local/nginx/html;  
  4. location ~ .*.php$ {  
  5. include /usr/local/nginx/conf/fastcgi_params;  #请根据自己保存的路径进行设置  
  6. fastcgi_index index.php;  
  7. fastcgi_pass 127.0.0.1:9000;  #请根据自己的FastCGI绑定的地址和端口进行配置  
  8. }  

 

通知Nginx重新载入配置:

kill -HUP `cat /usr/local/nginx/logs/nginx.pid`Ubuntu用户可以使用init脚本:sudo /etc/init.d/nginx reload

然后启动php-cgi -b 127.0.0.1:9000

如果出现No input file specified表示SCRIPT_FILENAME设置的有问题。使用lighttpd的 spawn-fcgi

 


  1. get http://www.lighttpd.net/download/lighttpd-1.4.18.tar.bz2  #获取Lighttpd的源码包  
  2. tar -xvjf lighttpd-1.4.18.tar.bz2  
  3. cd lighttpd-1.4.18  
  4. ./configure #编译  
  5. make  
  6. cp src/spawn-fcgi /usr/local/bin/spawn-fcgi  #取出spawn-fcgi的程序 

以上就是对nginx配置文件如何检测的相关介绍希望大家有所收获。



(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容