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;
}

Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName的解决方法

今天我在pcDuino的Ubuntu上安装Apache,重启的时候出现错误提示:Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName。后来找到了解决方法,你需要修改 httpd.conf 文件,在命令行中输入以下命令:

vim /etc/apache2/httpd.conf

打开的是一个空文件,在文件中加入以下内容:

ServerName localhost

保存文件退出,重启apache,问题就解决了。

Linux Shell错误重定向的方法

        在进行Shell脚本编程时经常出现一些像Java的exception一样的错误,比如:cp *.c file或者ls *.c > file,如果在当前操作的路径下不存在.c的文件,Shell就会报错“No such file or directory”,那么,我们该如何去除这个提示呢?

       解决方法是:在语句后面加“2>/dev/null”,例如:cp *.c file 2>/dev/null或者ls *.c > file 2>/dev/null。

 

Tonitech版权所有 | 转载请注明出处: http://www.tonitech.com/?p=77

Linux Shell命令中判断目录下是否存在已知后缀名文件的命令

        今天遇到一个问题,需要判断目录下是否存在.c文件。我使用了if [ -f *.c ],用-f和通配符来判断是否有.c的文件存在,然而linux一直报错“unexpected operator”,因此在-f下,后面是不能使用通配符的。

        后来,我想了一个土办法,if [ -n “‘ls *.c'” ],这句话的意思是,如果ls命令执行后有得到内容,则是真,其中-n表示后面的内容不是空值时为真。这句话是可以用,可以判断文件存在在目录下,但是,这是出现了个问题,如果目录下没有.c的文件,就会报错“No such file or directory”,于是我放弃了这个方法。

        最后一个QQ群里一个牛人告诉我,使用 if ls *.c >/dev/null 2>&1;then,这是一个重定向的方法,ls所有以.c为后缀的文件,如果不存在,将标准错误重定向到标准输出,这里2>&1 的意思就是将标准错误也输出到标准输出当中。重定向中 0-标准输出,1-标准输出,2-标准错误,而No such file or directory是一个标准错误。

        值得注意的是:这个if后面没有中括号!并且2>&1的“>”是没有空格的!