亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > Nginx > 正文

Nginx應對Permission denied和File not found的配置

2024-08-30 12:27:52
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Nginx應對Permission denied和File not found的錯誤配置,文中介紹了兩個PHP程序使用時出現相關問題后的解決案例,需要的朋友可以參考下
 

13: Permission denied
前段時間把程序員的wordpress升級到3.5.1,本身如果沒有特別的插件,在后臺更新就能完成。

更新完成后在后臺發布文章,編輯器不能點擊可視化標簽,只能顯示html標簽,看了下js控制臺提示ReferenceError: tinyMCE is not defined 3.5。

直覺以為升級哪里有問題,簡單粗暴的重裝了,可是還是不行,這時候就覺得可能是nginx哪里配置的問題了。

查看了一下日志文件,發現有下面的錯誤提示:

2013/03/13 01:22:17 [crit] 3331#0: *10 open() "/usr/local/lnmp/nginx/fastcgi_temp/3/00/0000000003" failed (13: Permission denied) while reading upstream, client: 124.42.13.230, server: 264.cn, request: "GET /wp-admin/load-scripts.php?c=0&load%5B%5D=jquery,utils,plupload,plupload-html5,plupload-flash,plupload-silverlight,plupload-html4,json2&ver=3.5.1 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "264.cn", referrer: "http://www.nginx.cn/wp-admin/post-new.php"

很明瀏覽器只加載了部分頁面,原因是Permission denied。

首先確認工作進程(worker process)的用戶:

檢查配置文件nginx.conf的user指令

user www-data;

后者執行命令

#ps aux | grep "nginx: worker process" | awk '{print $1}'
www-data

都可以得到nginx工作進程的運行用戶

 

檢查nginx的proxy_temp目錄的所有者,

drwx------ 2 root root  4096 Mar 3 03:28 proxy_temp

可以看到proxy_temp的所有者不是www-data,修改目錄所有者為www-data即可。

chown -R www-data:www-data proxy_temp

 

通過以上的步驟,wordpress就可以正常的顯示,不會出現后臺的js錯誤了。

分析下failed (13: Permission denied) while reading upstream問題的原因

首先看一下nginx 反向代理參數說明

  • proxy_connect_timeout 600; #nginx跟后端服務器連接超時時間(代理連接超時)
  • proxy_read_timeout 600; #連接成功后,后端服務器響應時間(代理接收超時)
  • proxy_send_timeout 600; #后端服務器數據回傳時間(代理發送超時)
  • proxy_buffer_size 32k; #設置代理服務器(nginx)保存用戶頭信息的緩沖區大小
  • proxy_buffers 4 32k; #proxy_buffers緩沖區,網頁平均在32k以下的話,這樣設置
  • proxy_busy_buffers_size 64k; #高負荷下緩沖大?。╬roxy_buffers*2)
  • proxy_temp_file_write_size 64k; #設定緩存文件夾大小,大于這個值,將從upstream服務器傳

問題就出在proxy_temp_file_write_size上,當你的文件超過該參數設置的大小時,nginx會先將文件寫入臨時目錄(缺省為nginx安裝目下/proxy_temp目錄),

如果nginx對prxoy_temp沒有權限就會寫不進去,結果就是只顯示部分頁面。

我遇到這個案例用工具查看了一下,post-new.php這個頁面大小事94,超過了64k就要符合我們上面的分析。

 

File not found 錯誤
使用php-fpm解析PHP,"No input file specified","File not found"是令nginx新手頭疼的常見錯誤,原因是php-fpm進程找不到SCRIPT_FILENAME配置的要執行的.php文件,php-fpm返回給nginx的默認404錯誤提示。

比如我的網站doucument_root下沒有test.php,訪問這個文件時通過抓包可以看到返回的內容。

HTTP/1.1 404 Not FoundDate: Fri, 21 Dec 2012 08:15:28 GMTContent-Type: text/htmlProxy-Connection: closeServer: nginx/1.2.5X-Powered-By: PHP/5.4.7Via: 1.1 c3300 (NetCache NetApp/6.0.7)Content-Length: 16File not found.

 

很多人不想用戶直接看到這個默認的404錯誤信息,想自定義404錯誤.


給出解決辦法前我們來先分析下如何避免出現這類404錯誤,然后再說真的遇到這種情況(比如用戶輸入一個錯誤不存在的路徑)時該怎么辦,才能顯示自定義的404錯誤頁。

一、錯誤的路徑被發送到php-fpm進程
出現這類錯誤,十個有九個是后端fastcgi進程收到錯誤路徑(SCRIPT_FILENAME),而后端fastcgi收到錯誤路徑的原因大都是配置錯誤。

常見的nginx.conf的配置如下:

server {  listen  [::]:80;  server_name example.com www.example.com;  access_log /var/www/logs/example.com.access.log;   location / {    root  /var/www/example.com;    index index.html index.htm index.pl;  }  location /images {    autoindex on;  }  location ~ .php$ {    fastcgi_pass  127.0.0.1:9000;    fastcgi_index index.php;    fastcgi_param SCRIPT_FILENAME /var/www/example.com$fastcgi_script_name;    include fastcgi_params;  }}

這個配置中有很多不合理的地方,其中一個明顯的問題就是root指令被放到了location / 塊。如果root指令被定義在location塊中那么該root指令只能對其所在的location生效。其它locaiont中沒有root指令,像location /images塊不會匹配任何請求,需要在每個請求中重復配置root指令來解決這個問題。因此我們需要把root指令放在server塊,這樣各個location就會繼承父server塊定義的$document_root,如果某個location需要定義一個不同的$document_root,則可以在location單獨定義一個root指令。

另一個問題就是fastCGI參數SCRIPT_FILENAME 是寫死的。如果修改了root指令的值或者移動文件到別的目錄,php-fpm會返回“No input file specified”錯誤,因為SCRIPT_FILENAME在配置中是寫死的并沒有隨著$doucument_root變化而變化,我們可以修改SCRIPT_FILENAME配置如下:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

所以我們不能忘記在server塊中配置root指令,不然$document_root的值為空,只會傳$fastcgi_script_name到php-fpm,這樣就會導致“No input file specified”錯誤。

二、請求的文件真的不存在
當nginx收到一個不在的.php文件的請求時,因為nginx只會檢查$uri是否是.php結尾,不會對文件是否存在進行判斷,.php結尾的請求nginx會直接發給php-fpm處理。php-fpm處理時找不到文件就會返回“No input file specified”帶著“404 Not Found”頭。

解決辦法
我們在nginx攔截不存在的文件,請求并返回自定義404錯誤

使用 try_files 捕捉不存在的urls并返回錯誤。

location ~ .php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME .... ................................... ...................................}

上面的配置會檢查.php文件是否存在,如果不存在,會返回404頁面。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品va| 欧美日韩国产限制| 亚洲视频网站在线观看| 亚洲欧美激情在线视频| 成人疯狂猛交xxx| 日韩美女视频中文字幕| 日韩视频免费在线| 国产69久久精品成人| 精品欧美一区二区三区| 欧美激情精品久久久久久变态| 日韩性生活视频| 国产精品com| 国内偷自视频区视频综合| 91精品视频网站| 欧美日韩在线免费观看| 欧美日本精品在线| 精品国产拍在线观看| 国产精品麻豆va在线播放| 国产精品偷伦视频免费观看国产| 91精品成人久久| 国产啪精品视频网站| 日韩成人在线观看| 中文字幕日韩精品有码视频| 国产精品一区二区久久国产| 国产精品日日做人人爱| 久久视频在线直播| 国产a级全部精品| 日韩中文第一页| 午夜免费久久久久| 综合欧美国产视频二区| 欧美亚洲第一区| 另类美女黄大片| 成人在线观看视频网站| 伊人久久大香线蕉av一区二区| 国产精品久久久久久av下载红粉| 国产成人精品国内自产拍免费看| 欧美国产精品人人做人人爱| 性色av一区二区三区免费| 国产在线播放91| www.亚洲免费视频| 精品久久久久久中文字幕一区奶水| 久久久久久久亚洲精品| 国产精品av电影| 38少妇精品导航| 欧美激情中文网| 国产噜噜噜噜久久久久久久久| 一区二区三区视频免费| 欧美激情亚洲自拍| 久久精品视频网站| 91成人精品网站| 亚洲精品www久久久久久广东| 久久久免费在线观看| 九九热最新视频//这里只有精品| 亚洲精品视频中文字幕| 精品国产一区二区三区久久久狼| 久久国内精品一国内精品| 亚洲国产又黄又爽女人高潮的| 亚洲欧美综合精品久久成人| 欧美色视频日本版| 国产成人精品免高潮费视频| 久久亚洲精品一区二区| 欧美黑人极品猛少妇色xxxxx| 九九热精品视频在线播放| 亚洲午夜久久久久久久| 欧美日韩在线视频一区二区| 日韩精品中文在线观看| 亚洲欧美日韩精品久久亚洲区| 欧美精品成人91久久久久久久| 亚洲电影在线看| 中文字幕九色91在线| 欧美一级视频一区二区| 91美女福利视频高清| 精品久久久久久久久久ntr影视| 一级做a爰片久久毛片美女图片| 91精品国产综合久久男男| 久久精品国产91精品亚洲| 亚洲精品午夜精品| 国产aaa精品| 成人xvideos免费视频| 日本一区二三区好的精华液| 国产精品欧美在线| 日韩网站免费观看高清| 在线视频欧美日韩| 在线丨暗呦小u女国产精品| 欧美中在线观看| 欧美日韩免费一区| 亚洲成人a**站| 欧美人在线视频| 国产精品男女猛烈高潮激情| 国产日韩欧美黄色| 国产精品视频久久久| 国产精品自产拍在线观看中文| 亚洲国产天堂久久综合| 88国产精品欧美一区二区三区| 久久久久久国产| 欧美区二区三区| 欧美中文字幕视频| 日韩激情在线视频| 国产热re99久久6国产精品| 国自在线精品视频| 国产精品老女人精品视频| 911国产网站尤物在线观看| 国a精品视频大全| 午夜精品在线观看| 国产精品h在线观看| 久久99精品国产99久久6尤物| 久久精品最新地址| 久久99视频免费| 九九热视频这里只有精品| 亚洲精品成人网| 91在线看www| 久热在线中文字幕色999舞| 亚洲剧情一区二区| 疯狂做受xxxx高潮欧美日本| 亚洲97在线观看| 亚洲第一二三四五区| 欧美高清无遮挡| 夜夜狂射影院欧美极品| 亚洲缚视频在线观看| 国产极品jizzhd欧美| 国产中文字幕亚洲| 搡老女人一区二区三区视频tv| 国产日韩欧美一二三区| 久久天天躁狠狠躁夜夜躁| 最新国产精品拍自在线播放| 91久久精品久久国产性色也91| 亚洲精品97久久| 久久成人国产精品| 久久久久久香蕉网| 亚洲欧美日韩天堂一区二区| 久久精彩免费视频| 日韩精品极品在线观看播放免费视频| 九九热这里只有精品免费看| 欧美最猛性xxxxx(亚洲精品)| 黑人与娇小精品av专区| 日韩成人小视频| 亚洲天堂免费观看| 深夜福利国产精品| 亚洲精品免费在线视频| 欧美视频二区36p| 国产精品爱啪在线线免费观看| 亚洲片在线资源| www.亚洲男人天堂| 亚洲国产精品一区二区三区| 精品久久久久久久久国产字幕| 国产精品尤物福利片在线观看| 久久久免费高清电视剧观看| 欧美乱妇高清无乱码| 韩国三级日本三级少妇99| 久久躁日日躁aaaaxxxx| 97高清免费视频| 国产一区二区三区在线观看网站| 欧美另类暴力丝袜| 欧美电影免费观看高清| 欧美日韩成人黄色| 成人激情综合网| 92国产精品久久久久首页| 亚洲天堂久久av| 国产精品久久久久久av下载红粉| 日本欧美精品在线| 国产69精品久久久| 亚洲片在线资源| 久久综合久久美利坚合众国| 日韩不卡中文字幕|