当前位置:首页 > 教程 > 正文内容

nginx多个乱码(nginx出错)

2023-06-04 17:00:07教程1

nginx出错

Nginx报504 gateway timeout错误引起,一个是文件配置问题,另一个是相关处理时长了,最后也有可能是资源不足导致了,下面我们一起来看看。

解释如下:

最近在工作中,需要做Excel导入的功能,由于Excel的数据比较多,而且我们的服务端程序需要对数据的内容做校验,会调用很多的外部服务接口,所以毫无悬念的导入Excel接口调用超过了一分钟,并且报错:504 gateway timeout。以下是两种解决思路:

1. 优化业务代码

一个接口调用超过一分钟,一定有可以优化的地方,看看数据库或者接口的调用是否合理,是否可以合并请求。

2. 修改Nginx的服务器配置

如果实在是优化不了了,可以把Nginx的超时时间上调。看看时间是否符合要求,在nginx.config里面的三个参数:

fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;

以上的单位是秒。

如果使用了Nginx的代理,可以在块里加上:

proxy_connect_timeout 300s;proxy_send_timeout 300s;proxy_read_timeout 300s;

变成:

location /foo { proxy_pass http://xxx.xxx.xxx.xxx:8080/foo; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; access_log /var/log/nginx/access.foo.log main; error_log /var/log/nginx/error.foo.log;}

如果没有解决我们再来看看

从错误代码基本可以确定跟nginx本身无关,主要是提交给php-fpm的请求未能正确反馈而导致,一般情况下,提交动态请求的时候,nginx会直接把 请求转交给php-fpm,而php-fpm再分配php-cgi进程来处理相关的请求,之后再依次返回,最后由nginx把结果反馈给客户端浏览器,但 我这个vps目前跑的是个纯php应用内容,实际上用户所有的请求都是php请求,有的耗费时间比较久,php-cgi进程就一直都被用满,而php- fpm本身的配置文件只打开了10组php-cgi进程,这样的话在线用户稍微多的话就会导致请求无法被正常处理而出错。 大概分析出了原 因,下面做就比较容易了,首先是更改php-fpm的几处配置: 把max_children由之前的10改为现在的30,这样就可以保证 有充足的php-cgi进程可以被使用; 把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程 处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。

nginx出错了日志在哪里

日志文件是一直打开,多线程通过队列写入,一般是行缓冲,程序停止会自动关闭句柄。nginx也是这么做的,大部分的应用程序都是这么做的,频繁的打开文件句柄会耗费额外的性能,得不偿失。

一般情况下,有成熟的日志处理框架来处理这些事情,不需要你自己实现。

你提到如果一直打开,你不能通过别的方式修改以及删除这个文件,这个是肯定的。当然这也延伸出另外一个问题,就是你一个程序如果启动多次,那在多个进程同时读写一个日志文件时日志内容有问题。

nginx出错联系谁

这说明监控端的网络连接出现中断,需要尝试硬件重新安装

nginx常见报错

这是由于服务器端的配置出现了状况,平时也很少见到。

具体解决法就是修改配置文件:1、把max_children由之前的10改为现在的30,这样就可以保证有充足的php-cgi进程可以被使用;把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。

2、接着再更改nginx的几个配置项,减少FastCGI的请求次数,尽量维持buffers不变:fastcgi_buffers由464k改为2256k;fastcgi_buffer_size由64k改为128K;fastcgi_busy_buffers_size由128K改为256K;fastcgi_temp_file_write_size由128K改为256K。

nginx503报错

一、访问出现503 service unavailable,但刷新一下又能正常访问

出现这种情况是由于网站超过了iis限制造成的,比如2003的操作系统在提示IIS过多时并非像2000系统提示“链接人数过多”,而是提示"Service Unavailable",出现这种情况是由于网站超过了系统资源限制造成的,主要是程序占用资源太多。

解决方法:增加IIS连接数就可以解决。

二、不限制IIS连接数,但还会提示503 service unavailable

这种情况一般都是使用ACCESS数据库的网站,通过分析就可以知道是ACCESS引擎当了。通过排查会发现一些文件引起ACCESS引擎“灾难性故障”及“未将对象引用设置到对象的实例”的错误。

解决方法:通过服务器医生的文件医生修复就可以恢复正常。

三、浏览一个 Windows SharePoint Services Web 站点时,提示:Service Unavailable

出现该问题的的原因是Microsoft Internet 信息服务 (IIS) 6.0 中没有正确地配置用于虚拟服务器的应用程序池。

解决方法:

1、首先我们需要验证虚拟服务器是否正确配置了应用程序池,默认的应用程序池是 MSSharePointPortalAppPool。

a).单击“开始”选择“管理工具”,然后单击“Internet 信息服务 (IIS) 管理器”。

b).打开“ServerName”,展开“Web 站点”,右键单击虚拟服务器,然后单击“属性”。

c).单击“主目录”选项卡,为虚拟服务器配置的应用程序池列在“应用程序池”框中。

d).单击“确定”即可。

2、验证应用程序池帐户是服务器上的 IIS_WPG 组和 STS_WPG 组的成员。

3、重新启动 IIS 以回收应用程序池。

四、网站第一次出现“service unavailable”问题,直接重启IIS就行了。步骤如下:

1、使用快捷键Windows+R打开运行,输入iisreset就可以实现IIS重启。

2、在开始菜单中搜索IIS,然后打开IIS,然后选择重新启动IIS也可以。

五、网站经常出现service unavailable503,或者重启iis后仍然会挂掉的方法

1、套用CDN

首先你要排除下服务器或vps资源是否够用,看下你的服务器各项资源是否都在正常值(cpu,带宽,内存等),现在的vps或者服务器都有后台面板统计的,cpu你长期百分之百肯定有问题,当你的硬件资源没有空闲时会导致iis工作不正常的,会报一些乱七八糟的错误,其实比较简单的解决方法就是网站访问加cdn,套上cdn后,网站需要的服务器资源都走cdn了,iis负载也下来了,自然不会报错。

2、关掉一些不必要的软件功能

比如很多站长用安全狗防护网站,软件确实不错,但会造成卡顿。另外你的安全级别默认或者很高的话,拦截的会非常多,有时一秒钟能拦击几个到十几个,这样也消耗了你的服务器。

3、网站自身程序问题

网站运行中如果交互性不重要,就把网站静态化,动态在iis下跑比较费力的,尤其是php

4、切换系统服务

网站如果还在用iis系统或在win上搭建的apache/nginx,建议换成linux系统,其实linux也没那么难,推荐amh或宝塔一键安装php环境,然后用winsp(类似ftp的可视化管理工具)管理文件和权限就可以了。

nginx常见错误代码

第一种:Nginx自己的错误页面

Nginx访问一个静态的html 页面,当这个页面没有的时候,Nginx抛出404,那么如何返回给客户端404呢?

看下面的配置,这种情况下不需要修改任何参数,就能实现这个功能。

server {

listen 80;

server_name www.test.com;

root /var/www/test;

index index.html index.htm;

location / {

}

# 定义错误页面码,如果出现相应的错误页面码,转发到那里。

error_page 404 403 500 502 503 504 /404.html;

# 承接上面的location。

location = /404.html {

# 放错误页面的目录路径。

root /usr/share/nginx/html;

}

}

第二种:反向代理的错误页面

如果后台Tomcat处理报错抛出404,想把这个状态叫Nginx反馈给客户端或者重定向到某个连接,配置如下:

upstream www {

server 192.168.1.201:7777 weight=20 max_fails=2 fail_timeout=30s;

ip_hash;

}

server {

listen 80;

server_name www.test.com;

root /var/www/test;

index index.html index.htm;

location / {

if ($request_uri ~* ‘^/$’) {

rewrite .* http://www.test.com/index.html redirect;

}

# 关键参数:这个变量开启后,我们才能自定义错误页面,当后端返回404,nginx拦截错误定义错误页面

proxy_intercept_errors on;

proxy_pass http://www;

proxy_set_header HOST $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;

}

error_page 404 /404.html;

location = /404.html {

root /usr/share/nginx/html;

}

}

第三种:Nginx解析php代码的错误页面

如果后端是php解析的,需要加一个变量

在http段中加一个变量

fastcgi_intercept_errors on就可以了。

指定一个错误页面:

error_page 404 /404.html;

location = /404.html {

root /usr/share/nginx/html;

}

指定一个url地址:

error_page 404 /404.html;

error_page 404 = http://www.test.com/error.html;

nginx 错误

windows 10 下无法启动nginx的解决方法

问题##

windows 10 下启动nginx,闪屏而过,访问localhost显示无法访问。

分析##

cmd下使用命令:netstat -an | find "0.0.0.0:80",可以发现80端口已经被占用。

尝试##

1、改变绑定中的80端口,把原来绑定80端口的站点,换成其他端口;失败。

2、关闭World Wide Web Publishing Service;失败。

3、更改nginx目录下conf/nginx.conf下的监听端口号,把80改成其他未被占用端口号;成功!

所以可以确定是80端口的问题。

再分析##

再次使用命令:netstat -ano

可以发现占用80端口的服务pid = 4,

ctrl+shift+Esc打开任务管理器,查看详细,占先pid排序,可以查看到pid为4的进程:NT kernel & System。

解决##

经过网络查询,发现网上的提供的多种方式,单纯使用,并不能解决问题,经实践后,解决方式为2步:

第一步:使用如下命令关闭iis相关服务(管理员身份进入cmd)

net stop http

这时会有提示确认信息,提示要关闭http服务,需要停止其依赖的其他服务,输入Y

此时依赖的相关服务都会提示停止成功,到http服务时,最后会发现:http server 无法停止。

此时进入第二步。

第二步:命令行输入如下命令:sc config http start= disabled(注意start和=之间没有空格)

没有任何提示,重新出现输入提示,说明已经成功,如果有提示,请按提示进行修改。

然后重启电脑,输入netstat -ano | find "0.0.0.0:80"命令进行验证。如果没有任务输出,说明成功,如果还是有80端口相关信息输出,说明失败。可以再尝试其他方式。

说明:如果以后需要使用IIS服务,估计需要使用下列命令修复(管理员身份)

sc config http start= demand & net start http

可输入下面的命令验证

net start http

网络上还有另一种办法:

1、打开注册表:win键+R -> regedit

2、找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP

3、在右边找到Start这一项,将其改为0(我的系统原值为3)

4、重启系统,System进程不会再占用80端口

这种方式,我操作之后,没有效果。后来使用上述两步操作,成功释放80端口,但最终成功,不知道是否和这个操作有关系。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98879428.html