centos nginx 配置注意事項


按照網上的 方法,我安裝配置了 nginx,我用 nginx 來作圖片服務器, linux

具體步驟 http://my.oschina.net/foxidea/blog/90776 nginx


圖片服務器 分爲 源服務器緩存服務器,上傳圖片到源服務器上,用戶訪問圖片,訪問的是 緩存服務器 centos

緩存服務器是 centos + nginx  緩存

緩存服務器上用了 nginx 的proxy 模塊 去訪問源服務器,並把圖片緩存起來 服務器

具體步驟http://my.oschina.net/foxidea/blog/91410 session


我配置成功以後,第一天白天沒問題,到了晚上 公司的人反應出現問題,源服務器圖片上傳成功,可是 緩存服務器沒法查看圖片 socket


我把 查看nginx 的錯誤日誌 /usr/local/nginx/logs/error.log ide

以下: 網站

2012/11/23 12:40:34 [crit] 1366#0: accept4() failed (24: Too many open files)
2012/11/23 12:40:34 [alert] 1366#0: *4172 socket() failed (24: Too many open files) while connecting to upstream, client: ui

google  baidu 了一番

網上說



centos5.3 中  ulimit  -n 爲1024, 當Nginx鏈接數超過1024時,error.log中就出現如下錯誤: 

        [alert] 12766#0: accept() failed (24: Too many open files)

解決方法是:



修改/etc/security/limits.conf


/etc/security/limits.conf 中加入如下內容: 

* soft  nofile 655360
* hard nofile 655360

星號表明全局, soft爲軟件,hard爲硬件,nofile爲<type>這裏指可打開文件數。

 

 

另外,要使 limits.conf 文件配置生效,必需要確保 pam_limits.so 文件被加入到啓動文件中。查看 /etc/pam.d/login 文件中有:
session required /lib/security/pam_limits.so

 

修改完從新登陸就能夠見到效果,能夠經過 ulimit -n 


而後再修改 /usr/local/nginx/conf/nginx.conf  


而後重啓 nginx  彷佛沒什麼問題了

沒過兩個小時同事反應有問題,圖片又沒法打開了

查看錯誤日誌(/usr/local/nginx/logs/error.log) 全是以下內容:


2012/11/24 10:58:19 [crit] 4570#0: *86 pwrite() "/www/i1.xx.com/0000000011" failed (28: No space left on device) while reading upstream,


又百度 google 了一番,說讓使用 df 命令 查看下磁盤空間

果然  發現 /dev/sda1 磁盤 use 100%  ,難怪了我把 網站 放入 /www/ 下 磁盤空間被佔用滿了

而後發現 /home/ use 僅有 1% 佔用,Available  值最大

後來把網站 創建在 /home/www/ 下 問題解決了



之因此遇到這麼多問題,主要是對 linux 不夠熟悉,連 分區都不太懂

相關文章
相關標籤/搜索