记录nginx两种问题解决

本文记录了在服务器迁移过程中遇到的Nginx配置问题,包括recv错误及JS、图片被不当解析的问题,并提供了详细的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1: recv错误

recv() failed (104: Connection reset by peer) while reading client request line
发生这种问题,主要是因为网络问题,在迁移 aizher.com 服务器过程中,碰到这样的问题,情况比较特殊,也是网络问题,但是不是网上描述本地网络端口冲突的问题。
出现这种问题原因是,西部数据的服务器上需要配置白名单,才能访问服务器,我之前只是做了DNS解析到西部数据的服务器上,
第一次客户端能够请到服务器上,但是,西部数据会马上把请求连接给重置,导致nginx提示连接充值,出现上述错误。
解决方案也很简单,直接在西部数据的服务器上添加白名单即可。(一开始知道白名单的事情,好长时间没搞,给忘记了)

2:js,图片被php执行。
在在迁移aizher.com 服务器过程中碰到的另外一个问题是,js,css,和图片被php执行(当然这是后来知道),一开始的时候,整个服务器的页面
都花掉了,页面样式全乱。并且是有些图片可以正常加载,而有的不能,png和jpg的都不能加载。当时因为是php配置问题,找了N久,没有找到原因。
后来

error_reporting = E_ALL & ~E_NOTICE
打开php的notice提示,发现,请求png图片时,报出php语法错误来,奇哉怪也,突然想到是nginx配置问题,所有的请求,都按php解析做的,原来的nginx配置是
server_name *.aizher.com;
        index index.html index.htm index.php;
        root /home/admin/web/;
 
        location \$ {
                fastcgi_pass    127.0.0.1:9000;
                fastcgi_index   index.php;
                include fastcgi_params;
                fastcgi_param   SCRIPT_FILENAME /home/admin/web/$fastcgi_script_name;
        }
找到原因后,调整如下
server_name *.aizher.com;
        index index.html index.htm index.php;
        root /home/admin/web/;
        if (!-e $request_filename) {
                rewrite  ^(.*)$  /index.php?s=$1  last;
        }
 
        location ~ .*\.(php|php5)?$ {
                fastcgi_pass    127.0.0.1:9000;
                fastcgi_index   index.php;
                include fastcgi_params;
                fastcgi_param   SCRIPT_FILENAME /home/admin/web/$fastcgi_script_name;
        }
 
        location /status {
                stub_status on;
                access_log   off;
        }
 
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
                expires      30d;
        }
 
        location ~ .*\.(js|css)?$
        {
                expires      12h;
        }

也许你会问,为什么不把之前的nginx拷贝过来直接使用。原因是,
1:这台服务器上还有其他服务,nginx文件不能直接覆盖,之前是使用的lnmp,这个这台服务器,都是从头搭建,也没有使用fpm,所以...。
2:大意失荆州,太小看这个问题,以为很容易就能搞定。

<think>好的,我现在需要帮助用户解决如何配置Nginx以禁用访问日志和错误日志的问题。首先,我得回想一下Nginx日志相关的配置知识。根据用户提供的引用内容,Nginx主要有access_log和error_log这两个指令来控制日志记录。 用户想完全关闭这两种日志,所以我需要找到对应的配置位置。访问日志通常在server或http块中通过access_log指定,而错误日志则在main、http、server或location块中用error_log配置。要禁用访问日志,应该把access_log设置为off;而错误日志则需要将error_log的路径指向/dev/null或者调整日志级别到crit以减少输出,但用户可能希望完全关闭,所以可能用/dev/null更合适。 接下来,我需要检查用户提供的引用内容是否正确支持这些方法。引用[1]提到access_log和error_log,引用[4]提到可以将错误日志发送到syslog,但用户需要的是关闭而不是重定向。因此,正确的做法是设置access_log off和error_log /dev/null。 然后,我需要考虑用户可能的配置环境,比如nginx.conf文件的结构,以及不同的块(如http、server、location)中的配置方式。同时,要提醒用户在修改后重载或重启Nginx服务,确保配置生效。 还需要注意是否存在其他可能影响日志记录的指令,比如log_format或rewrite_log,但根据用户的问题,主要关注的是access_log和error_log。此外,引用[3]提到rewrite_log默认不记录,所以可能不需要处理。 最后,要确保步骤清晰,给出具体的配置示例,并解释每个步骤的作用。同时,考虑到用户可能想完全禁用日志,使用/dev/null是跨平台的解决方案,而将错误日志级别设为crit可能仍会记录关键错误,但用户可能希望彻底关闭,所以推荐使用/dev/null方法。 可能还需要提示用户备份配置文件,避免配置错误导致服务无法启动。另外,测试配置文件的语法是否正确,使用nginx -t命令,这是一个好的做法。</think>要关闭Nginx的访问日志和错误日志,需通过修改nginx.conf配置文件实现。具体步骤如下: ### 一、禁用访问日志 1. 在`http`或`server`配置块中,将`access_log`指令设置为`off` ```nginx http { # 全局关闭访问日志 access_log off; server { # 若需单独关闭某个虚拟主机的访问日志 access_log off; } } ``` ### 二、禁用错误日志 2. 在`main`/`http`/`server`配置块中,将`error_log`指向空设备 ```nginx # 全局关闭错误日志(Linux/Mac) error_log /dev/null; # 或针对特定server关闭 server { error_log /dev/null; } ``` ### 三、补充说明 - Windows系统可使用`nul`代替`/dev/null` - 错误日志仍建议保留最低级别记录(如`crit`级别),便于故障排查 ```nginx error_log /var/log/nginx/error.log crit; # 仅记录严重错误[^1] ``` ### 四、配置验证 ```bash sudo nginx -t # 测试配置文件语法 sudo nginx -s reload # 重载配置[^4] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值