`
xiaolaogong
  • 浏览: 67620 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

nginx_config_info

 
阅读更多

 

检测nginx配置文件是否正确
/usr/local/nginx/sbin/nginx -t -c nginx.conf
-c 配置文件路径

-g Set global directives. (version >=0.7.4)

-t 检测文件是否正确不执行

-v Print version.

-V Print nginx version, compiler version and configure parameters.

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

通过信号对 Nginx 进行控制

Nginx 支持下表中的信号:

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

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

配置:

use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];FreeBSD使用kqueue,Linux选epoll.
worker_connections number    每个worker的最大连接数
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的配置文件中增加虚拟主机,然后加入
\proxy_pass http://localhost:8000;

负载均衡:
只需要在http中增加
upstream tgcluster {#定义负载均衡设备的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://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模块设置了基本的环境变量:

#fastcgi_params
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE    nginx;
fastcgi_param QUERY_STRING       $query_string;
fastcgi_param REQUEST_METHOD     $request_method;
fastcgi_param CONTENT_TYPE       $content_type;
fastcgi_param CONTENT_LENGTH     $content_length;
fastcgi_param SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param REQUEST_URI        $request_uri;
fastcgi_param DOCUMENT_URI       $document_uri;
fastcgi_param DOCUMENT_ROOT      $document_root;
fastcgi_param SERVER_PROTOCOL    $server_protocol;
fastcgi_param REMOTE_ADDR        $remote_addr;
fastcgi_param REMOTE_PORT        $remote_port;
fastcgi_param SERVER_ADDR        $server_addr;
fastcgi_param SERVER_PORT        $server_port;
fastcgi_param SERVER_NAME        $server_name;
# 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进程来执行:

server {
index index.php;
root /usr/local/nginx/html;

    location ~ .*.php$ {
include /usr/local/nginx/conf/fastcgi_params; #请根据自己保存的路径进行设置
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000; #请根据自己的FastCGI绑定的地址和端口进行配置
}
}通知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

get http://www.lighttpd.net/download/lighttpd-1.4.18.tar.bz2 #获取Lighttpd的源码包
tar -xvjf lighttpd-1.4.18.tar.bz2
cd lighttpd-1.4.18
./configure #编译
make
cp src/spawn-fcgi /usr/local/bin/spawn-fcgi #取出spawn-fcgi的程序下面我们就可以使用 spawn-fcgi 来控制php-cgi的FastCGI进程了

/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-cgi参数含义如下

-f <fcgiapp> 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置 
-a <addr> 绑定到地址addr 
-p <port> 绑定到端口port 
-s <path> 绑定到unix socket的路径path 
-C <childs> 指定产生的FastCGI的进程数,默认为5(仅用于PHP) 
-P <path> 指定产生的进程的PID文件路径 
-u和-g FastCGI使用什么身份(-u 用户 -g

分享到:
评论

相关推荐

    nginx.config_nginx_

    本文将详细解析`nginx.config`文件中的核心配置选项和参数,帮助读者理解和掌握Nginx的基础配置。 1. **全局块(Global directives)** - `worker_processes`: 指定工作进程的数量,通常设置为CPU核心数,以充分...

    nginx_https+tomcat_http配置.docx

    - 创建配置文件`nginx-service.xml`和`nginx-service.exe.config`,内容如下: **nginx-service.xml** ```xml &lt;id&gt;nginx &lt;name&gt;NginxService &lt;description&gt;High Performance Nginx Service &lt;logpath&gt;D:\...

    Nginx 控制 启动 脚本

    # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # description: nginx is a HTTP and reverse proxy server # ### BEGIN INIT INFO # Provides: nginx # Required-...

    prometheus-nginxlog-exporter:将指标从Nginx访问日志文件导出到Prometheus

    使用命令行: $ ./prometheus-nginxlog-exporter \ -format="&lt;FORMAT&gt;" \ -listen-port=4040 \ -namespace=nginx \ [PATHS-TO-LOGFILES...] 使用配置文件: $ ./prometheus-nginxlog-exporter -config-file /path/...

    charm-netdata:部署Netdata并使用promreg向现有Prometheus部署提供Netdata指标的从属超级按钮

    juju deploy netadata --config ~/netdata.yaml juju add-relation netdata:netdata-host other-charm:juju-info netdata.yaml: netdata: netdata_nginx_port: 19998 netdata_nginx_listen_subnet: "10.0.0.0/...

    Nginx安装与php整合

    # ./config shared zlib # make # make install # cd .. # tar zxvf nginx-1.4.2.tar.gz # cd nginx-1.4.2 # ./configure --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/etc/...

    Linux安装nginx/mysql/php/zabbix

    ### Linux安装nginx/mysql/php/zabbix知识点详解 #### 环境搭建概述 本文将详细介绍如何在CentOS 7.4.1708上手动搭建一个包含Nginx、MySQL、PHP以及Zabbix的环境。... #### 系统与软件环境 ...prefix=/opt/platform/...

    Linux nginx mysql php LNMP环境搭建

    ### Linux Nginx MySQL PHP (LNMP) 环境搭建详细步骤 #### 一、基础知识简介 在深入了解LNMP的安装配置之前,我们先简要回顾一下这四个组件的基本概念: - **Linux**:一个开源... ./configure --prefix=/usr/local/...

    Windows下nginx+php+mysql安装和配置.docx

    - `-c &lt;path/to/config&gt;`:指定配置文件路径,用于替代默认配置。 - `-t`:仅测试配置文件的语法正确性,并尝试打开配置文件中引用的所有文件。 - `-v`:显示 Nginx 版本信息。 - `-V`:显示 Nginx 版本、编译器...

    Nginx下配置codeigniter框架方法

    这里,`uri_protocol`的设置是关键,因为Nginx默认不支持`AUTO`模式,所以需要指定为`PATH_INFO`或者`REQUEST_URI`,确保CodeIgniter能够正确解析URL。 此外,为了确保CodeIgniter框架正常运行,你需要给网站根目录...

    freebsd+nginx+php+mysql+zend系统优化防止ddos +傻瓜式ports安装

    - **启用Nginx的限速模块**:通过配置Nginx来限制客户端请求的速度,从而减轻服务器负载。 - **使用负载均衡**:通过负载均衡器将流量分散到多台服务器上,降低单点故障的风险。 - **部署CDN**:利用内容分发网络...

    linux+nginx+php+mysql环境配置指南.pdf

    启动Nginx、PHP-FPM和MySQL服务,然后通过浏览器访问测试PHP环境是否正常工作,如`http://your_ip_info/info.php`,显示PHP信息页面则表示配置成功。 总结,搭建Linux+Nginx+PHP+MySQL环境涉及多个步骤,包括操作...

    Nginx下实现pathinfo及ThinkPHP的URL模式

    完成上述配置后,保存文件并重启Nginx服务,然后在ThinkPHP的配置文件`config.php`中,将`URL_MODEL`设置为2: ```php return array( 'URL_MODEL' =&gt; 2, // 设置为2启用PATHINFO模式 ); ``` 最后,通过访问带有...

    nginx支持codeigniter的pathinfo模式url重写配置写法示例

    $config['uri_protocol'] = PATH_INFO; nginx配置 打开 nginx 的配置文件 nginx.conf 文件,修改如下: # 我使用的是虚拟主机配置 server { listen 80; server_name dev.example.com; rewrite_log on; root /...

    如何用nginx配置wordpress的方法示例

    fastcgi_param PATH_INFO $fastcgi_path_info; } } ``` 8. 测试配置: 配置完成后,需要重启Nginx和PHP-FPM服务,以使更改生效。重启命令如下: ``` systemctl restart nginx; systemctl restart php-fpm; ...

    nginx+php+mysq在win 7 64位下环境搭建资料

    创建一个简单的PHP测试页,如info.php,包含`(); ?&gt;`,如果能正确显示PHP信息,那么恭喜你,你的WAMP环境已经成功搭建了。 在这个过程中,可能会遇到各种问题,如端口冲突、权限问题等,但只要按照教程细心操作,并...

Global site tag (gtag.js) - Google Analytics