NGINX和PHP 使用SOCKET通信错误 An error occurred.

环境:centos7.5  、NGINX、PHP7.2  (php和nginx都是全麻编译安装手动配置)

将nginx和php之间的通信将http转为socket结果报错了

 

错误:

An error occurred.

Sorry, the page you are looking for is currently unavailable.
Please try again later.

If you are the system administrator of this resource then you should check the error log for details.

Faithfully yours, nginx.

 

分析日志:

[root@ZHANG conf]# cat /var/log/nginx/error.log 
2019/06/14 09:51:32 [notice] 19823#0: signal process started
2019/06/14 10:00:36 [notice] 19870#0: signal process started
2019/06/14 10:17:37 [notice] 3902#0: signal process started
错误日志没有不可

[root@ZHANG conf]# cat /var/log/nginx/access.log 
36.60.51.229 - - [14/Jun/2019:10:18:43 +0800] "GET /login.php HTTP/1.1" 502 537 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36"
36.60.51.229 - - [14/Jun/2019:10:18:49 +0800] "GET /login.php HTTP/1.1" 502 537 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36"
11.120.115.136 - - [14/Jun/2019:10:31:34 +0800] "GET / HTTP/1.1" 502 537 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"
访问日志看到了502字样,锁定服务器内部问题

分析原因:

1、检测配置确认php-fpm.sock是否存在(保证其正确)

2、1.的ok就测试一个.html探针文件检测,发现探针文件可以访问php文件不可以,问题就在php或者php与nginx的通信上

3、查看php错误日志,发现php错误日志一切正常,方向转移到nginx和php的通信上

4、通过检查 php-fpm.sock 没有可写权限(问题),赋予可写权限之后问题解决

 

注:造成502的原因很多,所以解决问题的方式比较多(这只是‘万千’种错误中的一种),对于新手来说因为权限导致的问题不少,类似权限导致服务器其他服务报错的问题对于新手来说可能很棘手,我经常都是自己编译安装,也有可能是自己编译安装、配置的所以才会没有部分权限,这问题这几年遇到好多次,把个人解决思路写写希望能带部分新人解决类似问题的灵感

<think>首先,用户的问题是:“nginx 配置完成后出现 'An error occurred. Sorry, the page you are looking for is currently unavailable' 错误”。这看起来是一个Nginx配置问题导致的错误页面。 从系统级指令中,我需要: - 所有行内数学表达式用$...$格式,但这个问题似乎不涉及数学,所以可能不需要。 - 独立公式用$$...$$并单独成段,同样不适用。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾添加引用标识,如[^1]。 用户提供的引用包括: - [^1]: 关于Nginx路径问题,导致错误,解决方法是修改路径并重启Nginx。 - [^2]: 关于各种错误页面的解决,但内容不具体。 - [^3]: 关于Nginx配置PHP的问题,包括fastcgi_param设置。 - [^4]: 关于Nacos配置内存不足导致的错误,建议检查日志增加内存。 用户的问题集中在Nginx配置后出现错误页面,所以我需要聚焦在Nginx相关的解决方案上。 关键点: - 错误消息:"An error occurred. Sorry, the page you are looking for is currently unavailable. Please try again later." 这是Nginx的默认错误页面。 - 常见原因:配置错误、路径问题、权限问题、服务未启动等。 从引用中提取有用信息: - [^1]:提到路径问题,修改路径后重启Nginx解决。 - [^3]:详细说明了PHP配置,包括SCRIPT_FILENAME的设置。 - [^4]:提到检查日志文件(error.log)内存问题。 我的回答应该结构清晰,逐步解决问题: 1. **理解问题**:解释错误消息的含义。 2. **常见原因**:列出可能的原因。 3. **诊断步骤**:指导用户如何检查日志测试配置。 4. **解决方案**:基于引用提供具体建议。 5. **生成相关问题**:在最后添加相关问题。 回答结构: - 开头:确认问题并概述。 - 主体:分步骤解释。 - 结尾:总结建议。 - 相关问题:列出几个相关问题。 确保回答真实可靠: - 基于标准Nginx知识引用内容。 - 建议用户检查日志,因为日志文件通常包含详细错误信息。 最后,添加引用标识在相关段落末尾。 生成相关问题: 1. 如何检查Nginx错误日志? 2. Nginx配置中路径问题的常见解决方法? 3. 如何优化Nginx性能以避免类似错误? 用中文回答。</think>### Nginx配置后出现“An error occurred. Sorry, the page you are looking for is currently unavailable”错误的分析与解决 当您在配置Nginx后遇到“An error occurred. Sorry, the page you are looking for is currently unavailable”错误时,这通常表示Nginx无法正确处理请求,导致其显示默认错误页面。此错误可能由多种原因引起,包括路径配置错误、服务未启动、权限问题或资源不足。下面我将一步步帮助您诊断解决此问题,基于常见Nginx配置实践相关引用内容。整个过程旨在确保您的Nginx服务稳定运行。 --- ### 步骤1: 理解错误原因 这个错误消息是Nginx的默认响应,当它无法找到或处理请求的资源时会显示。常见触发原因包括: - **路径配置错误**:Nginx无法定位网站文件(如HTML、PHP脚本),因为配置中的路径设置不正确。 - **服务未启动或崩溃**:后端服务(如PHP-FPM)未运行或未正确配置。 - **权限问题**:Nginx进程没有访问网站文件的权限。 - **资源不足**:服务器内存或CPU不足,导致Nginx无法处理请求(尤其在运行资源密集型应用如Nacos时)[^4]。 - **语法错误**:Nginx配置文件(如`nginx.conf`)中存在语法错误,导致服务无法启动。 根据引用[^1],路径错误是常见原因之一;修改路径后重启Nginx通常能解决。引用[^3]强调PHP配置中的`SCRIPT_FILENAME`设置可能出错,影响动态内容处理。引用[^4]建议优先检查日志文件,以获取具体错误信息。 --- ### 步骤2: 诊断问题(推荐优先操作) 在修改配置前,请先通过以下方法诊断问题,避免盲目调整: 1. **检查Nginx错误日志**: Nginx日志文件(通常位于`/var/log/nginx/error.log`)包含详细错误信息。运行命令查看: ```bash tail -f /var/log/nginx/error.log # 实时查看日志 ``` 常见日志错误示例: - `Permission denied`:表示权限问题。 - `File not found`:路径配置错误。 - `Connection refused`:后端服务(如PHP-FPM)未启动。 根据日志内容,针对性解决。引用[^4]强调,日志是诊断的核心依据[^4]。 2. **测试Nginx配置语法**: 运行以下命令检查配置文件是否有语法错误: ```bash nginx -t ``` 如果输出`test is successful`,表示语法正确;否则,根据错误提示修复配置文件。 3. **验证后端服务状态**: 如果涉及PHP或应用(如Nacos),确保后端服务运行正常: - 检查PHP-FPM:`systemctl status php-fpm`(或类似服务名)。 - 检查应用状态:如Nacos是否因内存不足崩溃(引用[^4]提到内存不足是常见问题)[^4]。 --- ### 步骤3: 常见解决方案 基于诊断结果,参考以下解决方案。**注意:修改配置文件后,必须重启Nginx使更改生效(使用`nginx -s reload`或`systemctl restart nginx`)**。 - **解决路径配置错误**: 确保Nginx配置中的`root`路径指向正确的网站文件目录。例如: ```nginx server { listen 80; server_name example.com; root /var/www/html; # 确保路径正确,如引用[^1]所示 index index.html index.php; location / { try_files $uri $uri/ =404; } } ``` 如果路径错误,修改后重启Nginx。引用[^1]提到,路径修正后问题解决[^1]。 - **修复PHP或动态内容配置**: 如果使用PHP,检查`fastcgi_param`设置。确保`SCRIPT_FILENAME`正确指向文件路径: ```nginx location ~ \.php$ { root /var/www; # 确认root路径 fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 关键设置,如引用[^3] include fastcgi_params; } ``` 错误配置会导致Nginx无法处理PHP请求,显示错误页面[^3]。 - **处理权限问题**: 确保Nginx用户(通常为`www-data`或`nginx`)有权限访问网站目录: ```bash chown -R nginx:nginx /var/www/html # 修改目录所有者 chmod -R 755 /var/www/html # 设置适当权限 ``` - **解决资源不足问题**: 如果日志显示内存不足(如运行Nacos时),增加服务器内存或优化应用配置。引用[^4]建议关闭虚拟机后增加内存,然后重启服务[^4]。 - **其他通用修复**: - 确保Nginx服务已启动:`systemctl start nginx`。 - 检查防火墙或端口冲突:确保端口80或443未被占用。 - 清除浏览器缓存:有时缓存导致错误页面持续显示。 --- ### 步骤4: 预防最佳实践 - **定期检查日志**:养成查看`error.log`的习惯,可提前发现问题。 - **测试配置变更**:每次修改后运行`nginx -t`。 - **备份配置文件**:避免误操作导致服务中断。 - **资源监控**:使用工具(如`top`或`htop`)监控服务器资源,防止内存不足。 如果以上步骤无法解决,请提供具体日志输出或配置片段,以便进一步分析。错误通常源于简单配置疏漏,通过系统化诊断大多能快速修复。 --- ### 相关问题 1. 如何检查Nginx错误日志以诊断配置问题? 2. Nginx配置中路径错误的常见解决方法有哪些? 3. 如何优化Nginx性能以避免资源不足导致的错误? [^1]: 引用[1]:【报错】An error occurred. Sorry, the page you are looking for is currently unavailable. Please...。文章目录 问题分析解决 问题 把项目部署在 nginx 后,进入指端口页面报如下: An error occurred. Sorry, the page you are looking for is currently unavailable. Please try again later. If you are the system administrator of this resource then you should check the error log for details. Faithfully yours, nginx. 分析 在排查错误之后,可能是因为路径的问题 解决 原先的路径 改后的路径 改后将 nginx 进程杀掉之后再重启一下 nginx 就好了 nginx -s reload。 [^3]: 引用[3]:An error occurred. Sorry, the page you are looking for is currently unavailable. Please try again。二、配置问题 nginx.conf配置 location ~ \.php$ { root /var/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; index index.php; }。 [^4]: 引用[4]:An error occurred. Sorry, the page you are looking for is currently unavailable.。 解决方法(前提要自己的nacos,nginx的配置没写错):1.进入到nginx/logs目录下,查看error.log文件 ,有问题的话就根据显示的问题进行解决。2. 根据nacos运行的信息 进入到这个文件里,看是否运行成功,成功图 不成功的有失败信息。因为nacos运行需要的内存不小,一般可能是因为内存不足,内存不足信息: (内存不足:先关闭虚拟机,然后把虚拟机的内存加大点)其他根据报错信息进行相应的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值