首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

nginx 405 异常解决 (js高亮)

2012-09-23 
nginx 405 错误解决 (js高亮)nginx遇到post请求静态文件会得到405错误用upstream 把post转成get方式比如高

nginx 405 错误解决 (js高亮)
nginx遇到post请求静态文件会得到405错误
用upstream 把post转成get方式


比如高亮代码 code.html, 注意把js高亮的js放到结尾了,先加载html

<html><head><link href="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css" rel="stylesheet" type="text/css"/><script src="jquery.min.js" type="text/javascript"></script></head><body onload='prettyPrint()'><script type="text/javascript">$.ajax({  type: 'POST',  url: "a.c",  success: function(data){        alert(data);        $("#thiscode").html(data);      },      error:function(e){      alert(e);      },  dataType: "string"});</script></script><pre id="thiscode"></pre></body></html><script src="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js" type="text/javascript"></script> 


添加 nginx.conf
添加upstream static_backend {  server localhost:80;}server {....添加        error_page 405 =200 @405;location @405 {root html;proxy_method GET;proxy_pass http://static_backend;}

完整的如下:
#user  nobody;worker_processes  1;#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '    #                  '$status $body_bytes_sent "$http_referer" '    #                  '"$http_user_agent" "$http_x_forwarded_for"';    #access_log  logs/access.log  main;    sendfile        on;    #tcp_nopush     on;    #keepalive_timeout  0;    keepalive_timeout  65;    #gzip  on;    upstream static_backend {        server localhost:80;    }    server {        listen       80;        server_name  localhost;        #charset koi8-r;        #access_log  logs/host.access.log  main;        location / {            root   html;            index  index.html index.htm;        }        #error_page  404              /404.html;        # redirect server error pages to the static page /50x.html        #        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }        error_page 405 =200 @405;location @405 {root html;proxy_method GET;proxy_pass http://static_backend;}        # proxy the PHP scripts to Apache listening on 127.0.0.1:80        #        #location ~ \.php$ {        #    proxy_pass   http://127.0.0.1;        #}        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000        #        #location ~ \.php$ {        #    root           html;        #    fastcgi_pass   127.0.0.1:9000;        #    fastcgi_index  index.php;        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;        #    include        fastcgi_params;        #}        # deny access to .htaccess files, if Apache's document root        # concurs with nginx's one        #        #location ~ /\.ht {        #    deny  all;        #}    }    # another virtual host using mix of IP-, name-, and port-based configuration    #    #server {    #    listen       8000;    #    listen       somename:8080;    #    server_name  somename  alias  another.alias;    #    location / {    #        root   html;    #        index  index.html index.htm;    #    }    #}    # HTTPS server    #    #server {    #    listen       443;    #    server_name  localhost;    #    ssl                  on;    #    ssl_certificate      cert.pem;    #    ssl_certificate_key  cert.key;    #    ssl_session_timeout  5m;    #    ssl_protocols  SSLv2 SSLv3 TLSv1;    #    ssl_ciphers  HIGH:!aNULL:!MD5;    #    ssl_prefer_server_ciphers   on;    #    location / {    #        root   html;    #        index  index.html index.htm;    #    }    #}}


a.c的代码
#include #include #include #include #include int main(argc,argv){    int s,len;    struct sockaddr_in remote_addr;    char buf[BUFSIZ];    memset(&remote_addr,0,sizeof(remote_addr));    remote_addr.sin_family=AF_INET;    remote_addr.sin_addr.s_addr=inet_addr("127.0.0.1");    remote_addr.sin_port=htons(8000);        if((s=socket(AF_INET,SOCK_STREAM,0))<0)    {        perror("socket");        return 1;    }    if(connect(s,(struct sockaddr *)&remote_addr,sizeof(struct sockaddr))<0)    {        perror("connect");        return 1;    }    printf("connect to server\n");    len=recv(s,buf,BUFSIZ,0);    buf[len]='\0';    printf("%s",buf);    while(1){        printf("enter string to end:");        scanf("%a",buf);        if(!strcmp(buf,"quit"))            break;        len=send(s,buf,strlen(buf),0);        len=recv(s,buf,strlen(buf),0);        buf[len]='\0';        printf(" received:%s\n",buf);    }    close(s);    return 0;}

热点排行