2016-08-12 24 views
1

クロスオリジンを有効にするためにJAVAウェブサービスのproxy_passを設定しました。ウェブサービスURL http://10.1.200.156:8080/ClientService/passwordReset/を使用して投稿リクエストを送信できますが、http://10.1.200.156/ClientService/passwordReset/は404エラーを返します。クライアントアプリケーションはResponse for preflight is invalid (redirect)です。 ウェブを検索した後、Nginx設定にproxy_set_header Host $http_host;を追加しましたが、まだ運がありません。以下は、Nginxの設定です。助けてください。Nginxプロキシパス404エラー - CORS

http { 
    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 /var/log/nginx/access.log main; 

    sendfile   on; 
    tcp_nopush   on; 
    tcp_nodelay   on; 
    keepalive_timeout 65; 
    types_hash_max_size 2048; 

    include    /etc/nginx/mime.types; 
    default_type  application/octet-stream; 

    include /etc/nginx/conf.d/*.conf; 

    server { 
    listen 80; 
    server_name euca-172-16-10-214.eucalyptus.internal; 

    location /ClientService/passwordReset/ { 
     proxy_pass http://10.1.200.156:8080/ClientService/passwordReset/; 

      if ($request_method = 'OPTIONS') { 
       add_header 'Access-Control-Allow-Origin' '*'; 
       add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; 
       add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; 
       add_header 'Access-Control-Max-Age' 1728000; 
       add_header 'Content-Type' 'text/plain charset=UTF-8'; 
       #add_header 'Content-Length' 0; 
       return 204; 
       } 

      if ($request_method = 'POST') { 
       add_header 'Access-Control-Allow-Origin' '*'; 
      add_header 'Access-Control-Allow-Credentials' 'true'; 
       add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; 
       add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; 
       } 

      if ($request_method = 'GET') { 
       add_header 'Access-Control-Allow-Origin' '*'; 
      add_header 'Access-Control-Allow-Credentials' 'true'; 
       add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; 
       add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; 
       } 
     } 
    } 
} 
+1

プロキシするときはURIを含めないでください。 'proxy_pass http://10.1.200.156:8080;' –

+0

ありがとうございました。 – lpsandaruwan

+0

私は助けることができてうれしいです。それを答えとして受け入れてください –

答えて

3

プロキシ処理中はURIを含めないでください。以下を試してください:

proxy_pass http://10.1.200.156:‌​8080;