nginx查看nginx 安装模块了哪些模块

centos 使用yum安装nginx后如何添加模块_百度知道
centos 使用yum安装nginx后如何添加模块
询问下有人知道怎么重新添加模块吗:俺是新手,但是最近需要重新添加模块,使用yum来安装了nginx.2版本centos6?PS,所以就傻了
我有更好的答案
按默认排序
如果不好调整的话,安装好之后 将 sbin&#47,编译安装Nginx,包括路径和你要添加模块的机器一摸一样,操作系统: 另外找台机器,还有一个办法貌似只能编译安装了;nginx 拷贝出来 覆盖掉添加模块的机器 上的nginx(路径自己找找看)
,额!只有重新编译了么?我主要是不想重新搞啊!
nginx只能在编译的时候添加模块
编译不是很难,还是建议编译安装吧!
其他类似问题
centos的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Nginx重新编译添加模块_服务器应用_Linux公社-Linux系统门户网站
你好,游客
Nginx重新编译添加模块
来源:Linux社区&
作者:八英里
找到安装nginx的源码根目录,如果没有的话下载新的源码
http://nginx.org
tar xvzf nginx-1.3.2.tar.gz
查看ngixn版本极其编译参数
/usr/local/nginx/sbin/nginx -V
进入nginx源码目录
cd nginx-1.3.2
以下是重新编译的代码和模块
./configure --prefix=/usr/local/nginx--with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
make 千万别make install,否则就覆盖安装了
make完之后在objs目录下就多了个nginx,这个就是新版本的程序了
备份旧的nginx程序
cp /usr/local/nginx/sbin/nginx/usr/local/nginx/sbin/nginx.bak
把新的nginx程序覆盖旧的
cp objs/nginx /usr/local/nginx/sbin/nginx
测试新的nginx程序是否正确
/usr/local/nginx/sbin/nginx -t
nginx: theconfiguration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx:configuration file /usr/local/nginx/conf/nginx.conf test issuccessful
平滑重启nginx
/usr/local/nginx/sbin/nginx -s reload
查看ngixn版本极其编译参数
/usr/local/nginx/sbin/nginx -V
这是我重新编译的代码:
./configure --prefix=/usr/local/nginx --with-google_perftools_module --user=www --group=www --with-http_stub_status_module --with-http_gzip_static_module --with-openssl=/usr/ --with-pcre=/mydata/soft/pcre-8.31
相关资讯 & & &
& (08月17日)
& (11/27/:06)
& (01月18日)
图片资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款当前位置:&&
本页文章导读:
&&&&?Scrapy爬虫入门&&&&&&背景
想要做一个垂直搜索的平台,刚开始想使用Nutch,因为能与solr,lucene兼容。但是Nutch是个通用的爬虫,可能不适合我的需求。而且Nutch的源只提供1.6后的版本,体验了之后发现网上现有的......&&&&?Nginx http_core模块 配置文件解析&&&&&&& & & & Nginx 的配置文件解析很麻烦,数据结构交织在一起,特别恶心,经过几天的分析,得到了一幅大概的关系图,自以为是正确的。
& & & &2、调用core类型的c......&&&&?物联网的关键技术&&&&&&&&&&&& 物联网作为一种新的信息传播方式,已经手动越来越多的重视。人们可以让尽可能多的物品与网络实现时间、地点的连接,从而对物体进行识别、定位、追踪、监......
&&&&&&最新IT科技资讯推荐:
[1]Scrapy爬虫入门
&&&&来源:&互联网& 发布时间:&
想要做一个垂直搜索的平台,刚开始想使用Nutch,因为能与solr,lucene兼容。但是Nutch是个通用的爬虫,可能不适合我的需求。而且Nutch的源只提供1.6后的版本,体验了之后发现网上现有的许多资料不太适合。于是尝试使用Scrapy这个python写成的爬虫框架。他是一个事件驱动的网络框架,可以针对页面定制自己的爬虫需求,并且扩展和编写比较简单。
Scrapy的安装需要关联不少python的类库。建议仔细参考文档的步骤。这里有两份Scrapy安装和Scrapy入门使用的文档,是官网文档的中文翻译。根据第一篇文档,安装好Python环境,Twisted,setuptool等内容后可以正常启动Scrapy。我自己使用的是Scrapy1.4版本,如果使用1.6版本的还需要自己安装libxslt。注意Python版本和各个库的版本兼容问题,只要完全按照文档里的顺序下去,就不会搞错。
我也尝试爬了下自己CSDN博客主页的url内容,使用起来比较简单,而且速度快。虽然是第一次使用python,在扩展爬虫类和添加规则的时候觉得并不困难。关键还是在对目标页面的结构分析,通过XPath的规则提取出需要的内容,以json的格式输出或者存在磁盘上。
这里有一篇简单分析Scrapy架构的文章。
等有更进阶的使用经验之后会再进行分享。
作者:zbf8441372 发表于 20:37:11 原文链接
阅读:11 评论:0 查看评论
[2]Nginx http_core模块 配置文件解析
&&&&来源:&互联网& 发布时间:&
& & & & Nginx 的配置文件解析很麻烦,数据结构交织在一起,特别恶心,经过几天的分析,得到了一幅大概的关系图,自以为是正确的。
cycle =&ngx_init_cycle(&init_cycle):
& & & &1、在内存池中分配一个ngx_cycle_t变量,并初始化它的各个成员。
& & & &2、调用core类型的create_conf,实际只有一个ngx_core_module_create_conf函数----初始化ngx_core_conf_t结构(存放core_module支持的指令),保存在ngx_cycle-&conf_ctx数组中。可以说,此时,ngx_cycle-&conf_ctx数组中只有一个ngx_core_conf_t结构。
& & & &3、初始化ngx_conf_t结构。
& & & &4、ngx_conf_parse 解析配置文件,把结果保存在模块对应的ngx_conf里面。
& & & &5、调用core类型的init_conf,实际只有一个ngx_core_module_init_conf函数(初始化对应的ngx_core_conf_t函数)。为什么要init,都已经解析配置文件了,应该在这之前初始化呀--如果值为-1,表明没有设置,初始化默认值!
& & & &6、ngx_open_listening_sockets:遍历listening数组并打开所有侦听sockets(socket()-&setsockopt()-&bind()-&listen())。
& & & &7、调用所有模块的init_module(实际上只有ngx_event_core_module模块定义了该callback,即只有ngx_event_module_init()被调用)。
ngx_conf_parse(ngx_conf_t *cf, ngx_str_t *filename):
& & & &函数的作用就是循环不停的从配置文件中读取指令,然后进行指令处理,直到结束
1、先分析ngx_core_module的指令及其对应的set函数。
{ ngx_string(&daemon&),
& & & NGX_MAIN_CONF|NGX_DIRECT_CONF|NGX_CONF_FLAG,
& & & ngx_conf_set_flag_slot,
& & & offsetof(ngx_core_conf_t, daemon), &//计算daemon成员在ngx_core_conf_t结构体里面的偏移
ngx_conf_set_flag_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf):里面代码很清楚,根据配置指令,设置模块conf结构的成员变量。
2、分析ngx_events_modules的指令及其对应的set函数。只有一条指令:
{ ngx_string(&events&),
& & & NGX_MAIN_CONF|NGX_CONF_BLOCK|NGX_CONF_NOARGS,
& & & ngx_events_block,
& & & NULL },
& & 1、ngx_events_module编号为3,于是ngx_cycle-&conf_ctx指向的void*数组第3号槽位指向一个void*指针,这个指针又指向一个void*数组(个数==事件类型模块的个数,Linux平台编译之后,只有两个ngx_epoll_module事件模型ngx_event_core_module和ngx_epoll_module)。
& & 2、调用event类型模块的上下文ngx_event_module_t&的create_conf钩子,为void*数组指定槽位创建相应的conf结构。
& &&3、更改当前cf环境(NGX
[3]物联网的关键技术
&&&&来源:&互联网& 发布时间:&
&&&&&& 物联网作为一种新的信息传播方式,已经手动越来越多的重视。人们可以让尽可能多的物品与网络实现时间、地点的连接,从而对物体进行识别、定位、追踪、监控,进而形成智能化的解决方案,这就是物联网带给人们的生活方式。
&&&&&& 今天就给大家介绍一下,炙手可热的物联网中的4大关键技术,供您了解。
&&&&&& 物联网的产业链可细分为标识、感知、信息传送和数据处理这4个环节,其中的核心技术主要包括射频识别技术、传感技术、网络与通信技术和数据挖掘与融合技术等。
1.&&&& 射频识别技术
&&&&&& RFID技术是一种无接触的自动识别技术,利用射频信号及其空间耦合传输特性,实现对静态或移动待识别物体的自动识别,用于对采集点的信息进行“标准化”标识。RFID 技术可实现无接触的自动识别,具有全天候、识别穿透能力强、无接触磨损、可同时实现对多个物品的自动识别等诸多特点,将这一技术应用到物联网领域,使其与互联网、通信技术相结合,可实现全球范围内物品的跟踪与信息的共享,在物联网“识别”信息和近程通信的层面起着智关重要的作用。另一方面,产品电子代码(EPC)采用RFID电子技术标签技术作为载体,大大推动了物联网的发展和应用。
&&&&&& 将这一技术应用到物联网领域,使其与互联网、通信技术相结合,可实现全球范围内物品的跟踪与信息的共享。
2. 传感技术
&&&&&&& 信息采集是物联网的基础,而目前的信息采集主要是通过传感器、传感节点和电子标签等方式完成的。传感器作为一种检测装置,作为摄取信息的关键器件,由于其所在的环境通常比较恶劣,因此物联网对传感器技术提出了更高的要求。一是其感受信息的能力,二是传感器自身的智能化和网络化。
&&&&&&&&&&&&&&&&&&&&
&&&&& 将传感器应用于物联网中可以构成无线自治网络,这种传感器网络技术综合了传感器技术、纳米嵌入技术、分布式信息处理技术、无线通信技术等。可以将集成化微型传感器嵌入到物体中进行数据的实时监测、采集,并将这些信息以无线的方式发给观测者,从而实现“泛在”传感。在传感器网络中,传感节点具有端节点和路由的功能:首先是实现数据的采集和处理,其次是实现数据的融合和路由,综合本身采集的数据和收到的其他节点发送的数据,转发到其他网关节点。传感节点的好坏直接影响到整个传感器网络的正常运转和功能健全。
3. 网络与通信技术
&&&&&&&物联网的实现涉及到近程通信技术和远程通信技术。近程通信技术涉及RFID、蓝牙等,远程通信技术涉及互联网的组网、网关等技术。
&&&&&& 作为物联网信息传递和服务支撑的基础通道,通过增强现有网络通信技术的专业性与互联功能,以适应物联网低移动性、低数据率的业务要求,实现信息安全可靠地传送,这是目前物联网研究的一个重点。传感器网络通信技术主要包括广域网络通信和近距离通信等两个方面,广域网络通信主要包括IP互联网、2G/3G移动通信、卫星通信等技术,而以IPv6为核心的新联网的发展,更为物联网的提供了高效的传送通道;在近距离通信方面,当前的主流则是以IEEE802.15.4为代表的近距离通信技术。
&&&&&& M2M技术也是物联网实现的关键。 与M2M可以实现技术结合的远距离连接技术有GSM、GPRS、UMTS等,WiFi、蓝牙、ZigBee、RFID和UWB等近距离连接技术也可以与之相结合,此外还有XML和CORBA,以及基于GPS、无线终端和网络的位置服务技术等。M2M可用于安全检测、自动售货机、货物跟踪领域,应用广泛。
4. 数据的挖掘与融合
&&&&&&& 从物联网的感知层到应用层,各种信息的种类和数量都成倍增加,需要分析的数据量也成级数增加 ,同时还涉及各种已购网络或多个系统之间数据的融合问题,如何从海量的数据中及时挖掘出隐藏信息和有效数据的问题,给数据处理带来了巨大挑战,因此怎样合理、有效地整合、挖掘和智能处理海量数据是物联网研究的难题。结合P2P、云计算等分布式计算技术,成为解决上述难题的有效途径。
&&&&&& 云计算为物联网提供了一种新的高效率计算模式,可通过网络按需提供动态伸缩的廉价计算,具有相对可靠并且安全的数据中心,同时兼有互联网服务的便利、廉价和大型机的能力,可以轻松实现不同设备间的数据与应用共享,用户无需担心信息泄露,黑客入侵等棘手问题。云计算是信息化发展进程中的一个里程碑,它强调信息资源的聚集、优化和动态分配,节约信息化成本并大大提高了数据中心的效率。
节选自《物联网智能网关设计与应用》&
更多WIZnet信息请登录: WIZnet官方主页:&&&&&& &/
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&& &WIZnet企业官方微博:/wiznet2012&&&&
作者:WIZnet2012 发表于 14:03:38 原文链接
阅读:3 评论:0 查看评论
最新技术文章:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
(C)2012-,站长邮箱:www_169it_(请将#改为@)Nginx配置信息及虚拟主机的创建_小组_ThinkSAAS
Nginx配置信息及虚拟主机的创建
Nginx配置信息及虚拟主机的创建
一、Nginx主配置文件及解析
Nginx配置文件主要分为4部分:main(全局设置)部分设置的指令将影响其他所有设置;server(主机设置)部分的指令主要用于指定主机和端口;upstream(负载均衡服务器设置)部分指令主要用于负载均衡,设置一系列的后端服务器;location(URL匹配特定位置的设置)部分用于匹配网页位置。四者之间的关系:server继承main,location继承server,upstream既不会继承其他设置,也不会被继承。
# 指定Nginx Worker进程运行用户以及用户组,默认由nobody账号运行。如果编译Nginx的时候指定了用户和用户组,该选项可以关闭
# 指定Nginx需要开启的进程数,每个进程平均耗费10~12M内存。建议数量设置成与CPU内核的数量一致就可以了。
# cpu的核心数可以使用 cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l 或 cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 命令进行查
worker_processes 1;
# 定义全局错误日志文件,后面可以设置输出级别:debug、info、notice、warn、error、crit
error_log logs/error.
#error_log logs/error.
#error_log logs/error.
# 用来指定进程id的存储文件位置
pid logs/nginx.
# 启用TCMalloc的设置,见上节相关的描述
google_perftools_profiles /tmp/
# 用于绑定worker进程和CPU,该值必须和Linux内核打开文件数关联起来,如将该值设置为65535就必须在Linux命令行中执行 ulimit -HSn 65535
worker_rlimit_nofile 65535;
# 用来指定Nginx的工作模式,支持的模式有select、poll、kqueue、epool、rtsig和/dev/poll。其中select和poll都是标准的工作模式
# kqueue和epoll是高效的工作模式,前者用在linux平台上,后者用于BSD系统。
# 定义每个进程的最大连接数,默认是1024,该参数的最大连接数受Linux系统进程的最大打开文件数限制,必须使用 ulimit命令
# 另外,最大客户端连接数max_client=worker_processes*worker_connections,作为反向代理的话还需要除以4。
worker_connections 65535;
# 引用外部文件,类似于Apache中的include
include mime.
# 当出现无法解析的文件时,提示用户下载
default_type application/octet-
# 定义日志的格式,后面的main为格式的名称,可以在access_log指令中进行引用
#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 logs/access.
# 设定请求缓冲
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
# 设置客户端能够上传文件大小的限制
client_max_body_size 600m;
# 是否开启高效文件传输模式,将tcp_nopush和tcp_nodelay两个指令设置为on用于防止网络阻塞
# 隐藏nginx的版本显示,增强安全性
# 用于设置客户端连接保持活动的超时时间,单位为秒,默认为75s
#keepalive_timeout 0;
keepalive_timeout 65;
# 用于指定响应客户端的超时时间,这个超时仅限于两个连接活动之间的时间,默认为60s
#send_timeout 60;
# 下面是FastCGI的优化指令
# 连接到后端FastCGI的超时时间
fastcgi_connect_timeout 300;
# 向FastCGI传送请求的超时时间
fastcgi_send_timeout 300;
# 接收FastCGI应答的超时时间
fastcgi_read_timeout 300;
# 指定读取FastCGI应答第一部分需要多大的缓冲区
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
# 默认值是fastcgi_buffers的两倍
fastcgi_busy_buffers_size 128k;
# 表示在写入缓存文件时使用多大的数据块,默认为fastcgi_buffers的两倍
fastcgi_temp_file_write_size 128k;
# 为FastCGI缓存指定一个文件路径、目录结构等级、关键字区域存储时间和非活动删除时间
#fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;
# 开启FastCGI缓存并为其设定一个名称。开启缓存可以有效降低CPU的负载,并且防止502错误的发生。
# 但是同时也会引起很多问题,要视具体情况而定
#fastcgi_cache TEST;
# 用来指定应答代码的缓存时间,下面三条指令表示将200和303应答缓存1小时,301应答缓存1天,其他应答缓存1分钟。
#fastcgi_cache_valid 200 302 1h;
#fastcgi_cache_valid 301 1d;
#fastcgi_cache_valid any 1m;
# 配置Nginx的HttpGzip模块,开通的前提是安装的时候启用了该模块,使用 /usr/local/nginx/sbin/nginx -V 来查看安装的信息(大写的V)
# 是否开通gzip
# 允许压缩的页面最小字节数
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
# 压缩比,从1到9,越大压缩率越高但越占资源,默认为1
gzip_comp_level 2;
# 指定压缩的类型,text/html总是被压缩
gzip_types text/plain application/x-javascript text/css application/
# 是否让浏览器缓存压缩过的数据,默认为off
# server 用于对虚拟主机的设置,建议每个站点的设置放到外部配置文件中,然后使用include进行引用
# 这里设置一个默认的主机,当默认访问的时候返回403错误
server_name _;
# 也可以修改成404或者500,根据自身情况进行设置
return 403;
# 可以使用include将每个站点的配置引用进来,这样方便对站点进行管理
二、Nginx设置虚拟主机及对PHP的支持
在conf目录下面创建vhosts目录,并创建站点的配置文件,这里以.conf为例。
[root@localhost ~]# cd /usr/local/nginx/
[root@localhost nginx]# mkdir -p conf/vhosts
[root@localhost nginx]# vim conf/.conf
创建的.conf配置文件如下:
# 虚拟主机以server进行定义
# 监听的端口,多个端口之间使用空格进行间隔
listen 80;
# 用来定义访问的ip地址或者域名,多个域名之间使用空格分开
# 用于指定站点网页的默认编码格式
charset utf-8;
# 用来指定此站点的访问日志存放路径,后面的main用于设定日志的格式
#access_log .access.
# 用于指定站点的网页根目录,可以是相对路径(相对于nginx安装目录),也可以是绝对路径
# 用于指定访问的默认首页地址
#index index.html index.php
# 用来指定站点默认访问的设置,里面的root和index用法和效果与上面是一样的
# 两种方式使用任何一种都是可以的,这里采用 location / {} 的方式
location / {
index index.html index.
# 使用error_page指令设置各种错误信息的返回页面
# 错误信息的返回页面大小如果低于512k则会被ie浏览器替换为ie默认的错误页面
#error_page 404 /404.
error_page 500 502 503 504 /50x.
location = /50x.html {
# nginx的location指令用于设置url地址匹配,支持正则表达式匹配,也支持条件判断匹配。
# 可以通过location指令实现nginx对动态、静态网页的过滤处理。
# 下面是对所有的图片设置缓存30天
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
# 对js和css文件缓存1小时
location ~ .*.(js|css)$ {
expires 1h;
# 下面是列出了两种解析php的方式:
# 第一种是简单的将所有以php结尾的请求都交给本机的8080端口进行处理
#location ~ .php$ {
# proxy_pass http://127.0.0.1:8080;
# 第二种是将php的请求交给FastCGI进程监听的ip地址及端口,这里转发给PHP_FPM
location ~ .php$ {
# 设定用于解析php的根目录,通常为网站根目录
# 地址和端口与php_fpm中设置的一致
fastcgi_pass 127.0.0.1:9000;
# 默认首页
fastcgi_index index.
# 指定防止php动态程序的主目录,也就是$fastcgi_script_name前面指定的路径,建议与网站根目录一致或直接使用$document_root
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_
include fastcgi_
# 防止直接访问 .htaccess 文件,建议开启
location ~ /.ht {
最后创建网站的根目录并设置目录权限:
[root@localhost ~]# mkdir -p /
# 写入权限
[root@localhost ~]# chmod +w /
[root@localhost ~]# chown -R www:www /
# 创建一个测试的php文件
[root@localhost ~]# echo"&? phpinfo(); ?&"&& //phpinfo.php
这个时候启动php-fpm和nginx之后,应该可以直接访问/phpinfo.php了。
三、优化php-fpm和fastcgi_params配置信息
PHP-FPM的配置文件在/usr/local/php/etc/php-fpm.conf中,下面对常用的配置项进行说明:
&!-- 用来配置FastCGI进程监听的IP地址以及端口,默认为127.0.0.1:9000 --&
&value name="listen_address"&127.0.0.1:9000&/value&
&!-- 用来配置是否显示PHP错误信息,默认是0不显示,设置为1显示信息 --&
&value name="display_errors"&0&/value&
&!-- 用来设置运行FastCGI进程的用户和用户组。这里指定的用户和用户组必须和Nginx配置文件中指定的一致。 --&
&value name="user"&www&/value&&value name="group"&www&/value&
&!-- 用于设置FastCGI的进程数。根据官方建议,小于2G内存的服务器可以只开启64个进程,4GB以上内存服务器可以开始256个进程。 --&
&value name="max_children"&128&/value&
&!-- 执行脚本的时间,默认为0表示无限执行下去。 --&
&value name="request_terminate_timeout"&0s&/value&
&!-- 设置PHP-FPM对打开文件描述符的限制,默认为1024。该值必须和Linux内核打开文件数关联起来,
如将该值设置为65535就必须在Linux命令行中执行 ulimit -HSn 65535。 --&
&value name="rlimit_files"&65535&/value&
&!-- 设定每个children最多处理多少个请求后便会自动关闭,默认设置为500。 --&
&value name="max_requests"&1024&/value&
&!-- 设置允许访问FastCGI进程解析器的IP地址,如果不在这里指定IP地址,将无法接受Nginx转发过来的PHP解析请求。 --&
&value name="allowed_clients"&127.0.0.1&/value&
fastcgi_param配置文件在 /usr/local/nginx/conf/fastcgi_params中,将其中的fastcgi_param SERVER_SOFTWARE nginx/$nginx_中$nginx_version去掉,隐藏nginx的版本。
#fastcgi_param SERVER_SOFTWARE nginx/$nginx_
fastcgi_param SERVER_SOFTWARE
四、常见错误及解决方法
首先说明一下,如果nginx启动之后,无法访问网站或者访问有错误,这个时候应该第一时间查看nginx(默认在nginx安装目录的logs文件夹下)或php-fpm(默认在php根目录的logs/php-fpm.log文件中)的日志文件,里面有详细的错误信息。
1. 当访问php文件的时候页面出现“No input file specified”提示,而静态文件则正常。
这个是因为在站点设置中对php扩展的解析里面,fastcgi_param SCRIPT_FILENAME 后面的路径出现错误,使得php-fpm无法找到php文件,解决的方法是将$fastcgi_script_name前面的路径设置成网站根目录的绝对路径即可,注意路径最后没有斜杠/,即:
fastcgi_param SCRIPT_FILENAME /$fastcgi_script_
看到有的网站上面还提到需要将php.ini文件中的cgi.fix_pathinfo项设置为1,但是我没有进行设置也是好的,估计是nginx的版本不同。
2. [ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool 'default'
上面的错误是在php-fpm.log日志文件中出现的,原因是没有设置php-fpm的用户和用户组,或者没有将php-fpm的用户或用户组修改成与nginx的一样。解决方法是修改php-fpm.conf配置文件中user和group,默认情况下这两项配置是被注释的。
&value name="user"&www&/value&
&value name="group"&www&/value&
3. [error] 19075#0: *4 connect() failed (110: Connection timed out) while connecting to upstream, ......
这个错误提示是告诉我们nginx转发到php-fpm的时候连接超时了,所以如果访问量太大的话可以将超时的时间设置长一些。但如果网站访问量不大或者刚开始配置之后就出现这个错误的话,往往是iptables设置的问题。验证的方法是:如果将iptables停止(/etc/init.d/iptables stop)之后访问正常则说明是防火墙配置的问题,在防火墙中增加如下规则即可:
iptables -I INPUT 2 -i lo -p all -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables start
4. 启动nginx的时候出现 [emerg]: getpwnam("www") failed 错误
这个错误中getpwnam中间的www可能是其他的名称,主要原因是编译nginx和nginx配置文件(nginx.conf)中设置的用户和用户组不存在,所以只要创建对应的用户和用户组即可。
5. [emerg] 30558#0: setuid(500) failed (11: Resource temporarily unavailable)
错误信息中的setuid中间的数字肯是其他数字,比如501、502等等。这个错误需要一步一步的进行排查,相对有点复杂,解决的方法如下:
首先根据setuid中间的数字查看对应数字的用户是否存在,如果不存在则创建用户:
more /etc/passwd | grep 500
# 如果没有任何信息显示则查看nginx配置文件中指定的用户名称,然后使用useradd创建该用户并指定用户组
如果用户存在的话,则使用 ulimit -n 命令查看服务器文件描述符是多少,默认是1024,然后使用 ps -U www | wc -l 命令查看www用户所启用的进程数量(注意将www用户换成你自己的),如果显示的数量超过了服务器文件描述符的数量,则需要提升该参数,具体的做法是:将nginx.conf中的worker_rlimit_nofile、worker_connections和php-fpm.conf文件中的rlimit_files配置项设置大一些,也可以直接设置成65535(最大值)。然后还需要加大服务器文件描述符的大小。有两种设置方法:
# 一种是修改/etc/security/limits.conf文件,然后重启服务器
echo '* - nofile 65535' && /etc/security/limits.conf
# 另外一种是使用 ulimit -HSn 65535 命令,将该命令添加到开机启动并放在php-fpm和nginx启动前
ulimit -HSn 65535
cat && /etc/rc.local &&EOF
/etc/init.d/mysql start
ulimit -SHn 65535
/usr/local/php/sbin/php-fpm start
/usr/local/nginx/sbin/nginx
一定要确认“ulimit -HSn ”后面的数字需要和nginx.conf中的worker_rlimit_nofile、worker_connections和php-fpm.conf文件中的rlimit_files配置项设置成相同的数字。
如果安装上面的设置修改之后还有错误的话,恭喜你,你的人品大大的提升了,这种情况是比较少见的,先确认一下你是否进行了重启,如果重启过了还可以将 “ulimit -SHn 65535” 命令添加到/etc/profile 中:
echo"ulimit -SHn 65535"&& /etc/profile
用户评论(0)
开发技术学习小组列表
PHP开发框架
缓存Memcache
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
手机客户端
ThinkSAAS接收任何功能的Iphone(IOS)和Android手机的客户端定制开发服务
让ThinkSAAS更好,把建议拿来。
iphone扫码下载客户端}

我要回帖

更多关于 nginx 安装 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信