相关疑难解决方法(0)

我们可以创建自定义HTTP状态代码吗?

我有一个REST和WCF服务,并希望根据操作发送自定义状态代码.

某些验证失败然后我想发送HTTP 444的示例,当授权失败时,我想发送HTTP 455

问题是我们如何对SOAP和REST Web服务进行验证.

在客户端上,错误代码如何起作用,因为当您从WCF服务(使用SOAP)发送HTTP 400/500时,会在显示状态代码的客户端上抛出异常.

现在,如果我发送一个新的自定义状态代码,客户端如何处理这个?

c# asp.net wcf http wcf-rest

77
推荐指数
6
解决办法
7万
查看次数

尽管配置,NginX在60秒后发出HTTP 499错误.(PHP和AWS)

在上周末,我注意到我的一个中型AWS实例出现问题,如果请求超过60秒,Nginx总是返回HTTP 499响应.请求的页面是PHP脚本

我花了几天时间试图找到答案,并尝试了我可以在互联网上找到的所有内容,包括Stack Overflow上的几个条目,没有任何效果.

我已经尝试修改PHP设置,PHP-FPM设置和Nginx设置.你可以在星期五看到我在NginX论坛上提出的一个问题(http://forum.nginx.org/read.php?9,237692)虽然没有得到任何答复所以我希望我能找到一个在我被迫回到Apache之前回答这个问题,我知道它正常工作.

是不是同样的问题在其他项中报告的HTTP 500错误.

我已经能够使用PHP 5.4.11使用NginX的新的微型AWS实例来复制问题.

为了帮助那些希望看到问题的人,我将带你完成设置,我为最新的Micro测试服务器运行.

您需要使用AMI ami-c1aaabb5启动新的AWS Micro实例(因此它是免费的)

此PasteBin条目具有完整的设置,可以运行以镜像我的测试环境.您最后需要在NginX配置中更改example.com

http://pastebin.com/WQX4AqEU

一旦设置完毕,您只需要创建我正在测试的示例PHP文件

<?php
sleep(70);
die( 'Hello World' );
?>
Run Code Online (Sandbox Code Playgroud)

将其保存到webroot中然后进行测试.如果您使用php或php-cgi从命令行运行脚本,它将起作用.如果您通过网页访问脚本并拖动访问日志/var/log/nginx/example.access.log,您会注意到在60秒后收到HTTP 1.1 499响应.

现在您可以看到超时,我将完成我对PHP和NginX所做的一些配置更改以尝试解决此问题.对于PHP,我将创建几个配置文件,以便可以轻松禁用它们

更新PHP FPM配置以包含外部配置文件

sudo echo '
include=/usr/local/php/php-fpm.d/*.conf
' >> /usr/local/php/etc/php-fpm.conf
Run Code Online (Sandbox Code Playgroud)

创建一个新的PHP-FPM配置以覆盖请求超时

sudo echo '[www]
request_terminate_timeout = 120s
request_slowlog_timeout = 60s
slowlog = /var/log/php-fpm-slow.log ' >
/usr/local/php/php-fpm.d/timeouts.conf
Run Code Online (Sandbox Code Playgroud)

更改一些全局设置以确保紧急重启间隔为2分钟

# Create a global tweaks
sudo echo '[global]
error_log = /var/log/php-fpm.log
emergency_restart_threshold = 10
emergency_restart_interval = 2m
process_control_timeout …
Run Code Online (Sandbox Code Playgroud)

php http nginx amazon-web-services

53
推荐指数
1
解决办法
8万
查看次数

连接到上游时没有上游,但是上游是可以的

我对NGINX有一个非常奇怪的问题.

我有以下upstream.conf文件,上面有以下内容:

upstream files_1 {
    least_conn;
    check interval=5000 rise=3 fall=3 timeout=120 type=ssl_hello;

    server mymachine:6006 ;
}
Run Code Online (Sandbox Code Playgroud)

在locations.conf中:

location ~ "^/files(?<command>.+)/[0123]" {
        rewrite ^ $command break;
        proxy_pass https://files_1 ;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Run Code Online (Sandbox Code Playgroud)

在/ etc/hosts中:

127.0.0.1               localhost               mymachine
Run Code Online (Sandbox Code Playgroud)

当我这样做时wget https://mynachine:6006/alive --no-check-certificate,我明白了HTTP request sent, awaiting response... 200 OK.我还验证了端口6006正在使用netstat进行监听,并且可以.

但是当我向NGINX文件服务器发送请求时,我收到以下错误:

连接上游时没有上游,客户端:..,请求:"POST/files/save/2 HTTP/1.1,上游:" https:// files_1/save "

但上游还可以.问题是什么?

nginx

12
推荐指数
2
解决办法
9884
查看次数

如何解决nginx-连接到上游客户端时没有实时上游?

目前,我正在基于tomcat上运行的grails 3的系统上使用JMeter运行负载测试。每秒发送20k请求后,nginx错误日志中显示“连接上游客户端时没有上游上游”。我们的应用程序是基于多租户的,因此我需要执行高负载。这是我的nginx配置。

worker_processes  16;
worker_rlimit_nofile 262144;
error_log  /var/log/nginx/error.log;

events {
    worker_connections  24576;
    use epoll;
    multi_accept on;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  600;
    keepalive_requests 100000;
    access_log off;
    server_names_hash_max_size  4096;
    underscores_in_headers  on;
    client_max_body_size 8192m;
    log_format vhost '$remote_addr - $remote_user [$time_local] $status "$request" $body_bytes_sent "$http_referer" "$http_user_agent" "http_x_forwarded_for"';

    proxy_connect_timeout      120;
    proxy_send_timeout         120;
    proxy_read_timeout         120;


    gzip  on;
    gzip_types text/plain application/xml text/css text/js text/xml application/x-javascript text/javascript application/json application/xml+rss image application/javascript;
    gzip_min_length  1000;
    gzip_static on;
    gzip_vary on;
    gzip_buffers 16 8k;
    gzip_comp_level 6; …
Run Code Online (Sandbox Code Playgroud)

nginx

8
推荐指数
2
解决办法
2万
查看次数

如何弄清楚Nginx状态码499

我的设置:

卷曲 - > AWS ELB - > Nginx - > NodeJS

当请求数量高时,我面临这个问题.

Nginx访问日志

xx.xx.xx.xx - - [30/Oct/2014:13:23:40 +0000] "POST /some/calls/object HTTP/1.1" 499 0 "-" "curl/7.27.0"
xx.xx.xx.xx - - [30/Oct/2014:13:23:40 +0000] "POST /some/calls/object HTTP/1.1" 499 0 "-" "curl/7.27.0"
Run Code Online (Sandbox Code Playgroud)

Nginx错误日志

2014/10/30 13:23:40 [info] 11181#0: *17811 client xx.xx.xx.xx closed keepalive connection
2014/10/30 13:23:40 [info] 11181#0: *17631 epoll_wait() reported that client prematurely closed connection, so upstream connection is closed too while sending request to upstream, client: xx.xx.xx.xx, server: example.com, request: "POST /some/calls/objects HTTP/1.1", …
Run Code Online (Sandbox Code Playgroud)

nginx

5
推荐指数
0
解决办法
4791
查看次数

标签 统计

nginx ×4

http ×2

amazon-web-services ×1

asp.net ×1

c# ×1

php ×1

wcf ×1

wcf-rest ×1