当前位置:
通过nginx方式解决跨域问题[具体配置收藏一下]
机器助手 | 
 263人浏览
worker_processes  1;

error_log  logs/error.log;
pid        /var/run/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  65;

    #避免header请求过大,出现400错误
    client_header_buffer_size 16k;
    large_client_header_buffers 8 16k;
    server_names_hash_bucket_size  64;
    
    gzip on;
    gzip_min_length  5k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 4;
    gzip_types       text/plain application/x-javascript application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary on;




    #API域名配置
    server {
      listen       443 ssl;
      server_name  base-api.wf.biemo.com;

      
      ssl_certificate /opt/ssl/4025240_base-api.wf.biemo.com_nginx/4025240_base-api.wf.biemo.com.pem;
      ssl_certificate_key /opt/ssl/4025240_base-api.wf.biemo.com_nginx/4025240_base-api.wf.biemo.com.key; 
      ssl_session_timeout 1d;
      ssl_session_cache shared:SSL:50m;
      ssl_session_tickets off;
      ssl_protocols TLSv1.2;
      ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
      ssl_prefer_server_ciphers on;
      add_header Strict-Transport-Security max-age=15768000;
      ssl_stapling on;
      ssl_stapling_verify on;

      #允许上传视频最大为10M
      client_max_body_size 10M;
	 
            location  ^~ /base/{			
					if ($request_method = 'OPTIONS') {
							add_header 'Access-Control-Allow-Origin' '*';
							add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
							add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, 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-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, 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-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
					}
					if ($request_method = 'PUT') {
						add_header 'Access-Control-Allow-Origin' '*';
						add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
					}
					if ($request_method = 'DELETE') {
						add_header 'Access-Control-Allow-Origin' '*';
						add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
					}
					
								   
					   
					proxy_set_header Host $host:$server_port;
					proxy_set_header Referer "https://base-api.wf.biemo.com/base/";
					proxy_pass_header User-Agent;
					proxy_pass   http://118.190.247.33:7000/;     
            }
			
			location ^~ /buy/{
					if ($request_method = 'OPTIONS') {
							add_header 'Access-Control-Allow-Origin' '*';
							add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
							add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, 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-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, 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-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
					}
					if ($request_method = 'PUT') {
						add_header 'Access-Control-Allow-Origin' '*';
						add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
					}
					if ($request_method = 'DELETE') {
						add_header 'Access-Control-Allow-Origin' '*';
						add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
					}			   
					   
					proxy_set_header Host $host:$server_port;
					proxy_set_header Referer "https://base-api.wf.biemo.com/buy/";
						proxy_pass_header User-Agent;
					proxy_pass   http://118.190.247.33:7002/;     
            }
			
			location ^~ /sell/{
					if ($request_method = 'OPTIONS') {
							add_header 'Access-Control-Allow-Origin' '*';
							add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
							add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, 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-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, 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-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
					}
					
					if ($request_method = 'PUT') {
						add_header 'Access-Control-Allow-Origin' '*';
						add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization,   DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
					}
					
					if ($request_method = 'DELETE') {
						add_header 'Access-Control-Allow-Origin' '*';
						add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
					}			   
					   
					proxy_set_header Host $host:$server_port;
					proxy_set_header Referer "https://base-api.wf.biemo.com/sell/";
						proxy_pass_header User-Agent;
					proxy_pass   http://118.190.247.33:7003/;     
            }
			
			location ^~ /admin/{
					if ($request_method = 'OPTIONS') {
							add_header 'Access-Control-Allow-Origin' '*';
							add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
							add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, 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-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, 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-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization,   DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
					}
					if ($request_method = 'PUT') {
						add_header 'Access-Control-Allow-Origin' '*';
						add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization,   DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
					}
					
					if ($request_method = 'DELETE') {
						add_header 'Access-Control-Allow-Origin' '*';
						add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PUT,DELETE';
						add_header 'Access-Control-Allow-Headers' 'uuid,Authorization, DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
					}			   
					   
					proxy_set_header Host $host:$server_port;
					proxy_set_header Referer "https://base-api.wf.biemo.com/admin/";
						proxy_pass_header User-Agent;
					proxy_pass   http://118.190.247.33:7004/;     
            }
    }


     #PC静态页
    server {
      listen       81;
      server_name  localhost;
      location / {
        proxy_pass   http://47.107.230.46:8088/PC$request_uri;             
        proxy_set_header Host $host:$server_port;
        proxy_pass_header User-Agent;
        add_header X-Content-Type-Options  'nosniff';#禁止嗅探文件类型
        add_header Content-Security-Policy "script-src 'self' 'unsafe-eval' 'unsafe-inline'";#只允许同源下的js
        add_header X-XSS-Protection "1; mode=block";#开启XSS过滤器
      }
    }

    #WAP静态页
    server {
      listen       82;
      server_name  localhost;
      location / {
        proxy_pass   http://47.107.230.46:8088/WAP/$request_uri;             
        proxy_set_header Host $host:$server_port;
        proxy_pass_header User-Agent;
        add_header X-Content-Type-Options  'nosniff';#禁止嗅探文件类型
        add_header Content-Security-Policy "script-src 'self' 'unsafe-eval' 'unsafe-inline'";#只允许同源下的js
        add_header X-XSS-Protection "1; mode=block";#开启XSS过滤器
      }
    }
	
	
	 server {
      listen       8080;
      server_name  localhost;
      location / {
        root /usr/local/nginx/html/;
      }
    }



#网关域名配置
     
  #买家端 pc
    server {
      listen       443 ssl;
      server_name  buy.wf.biemo.com;
	  ssl_certificate /opt/ssl/4033558_buy.wf.biemo.com_nginx/4033558_buy.wf.biemo.com.pem;
      ssl_certificate_key /opt/ssl/4033558_buy.wf.biemo.com_nginx/4033558_buy.wf.biemo.com.key; 
      ssl_session_timeout 1d;
      ssl_session_cache shared:SSL:50m;
      ssl_session_tickets off;
      # modern configuration. tweak to your needs.
      ssl_protocols TLSv1.2;
      ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
      ssl_prefer_server_ciphers on; 
      # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
      add_header Strict-Transport-Security max-age=15768000;
      # OCSP Stapling ---
      # fetch OCSP records from URL in ssl_certificate and cache them
      ssl_stapling on;
      ssl_stapling_verify on;
	  
      location / {

        #除首页、商品页、帮助中心页外走pc端渲染服务  
        proxy_pass   http://47.107.230.46:7007;             
	    proxy_set_header Host $host:$server_port;
        proxy_pass_header User-Agent;
        add_header X-Content-Type-Options  'nosniff';#禁止嗅探文件类型
        add_header Content-Security-Policy "script-src 'self' 'unsafe-eval' 'unsafe-inline'";#只允许同源下的js
        add_header X-XSS-Protection "1; mode=block";#开启XSS过滤器
      }
    }



   #买家端wap
    server {
      listen       443 ssl;
      server_name  m-buy.wf.biemo.com;
	  ssl_certificate /opt/ssl/4030641_m-buy.wf.biemo.com_nginx/4030641_m-buy.wf.biemo.com.pem;
      ssl_certificate_key /opt/ssl/4030641_m-buy.wf.biemo.com_nginx/4030641_m-buy.wf.biemo.com.key; 
      ssl_session_timeout 1d;
      ssl_session_cache shared:SSL:50m;
      ssl_session_tickets off;
      # modern configuration. tweak to your needs.
      ssl_protocols TLSv1.2;
      ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
      ssl_prefer_server_ciphers on; 
      # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
      add_header Strict-Transport-Security max-age=15768000;
      # OCSP Stapling ---
      # fetch OCSP records from URL in ssl_certificate and cache them
      ssl_stapling on;
      ssl_stapling_verify on;
	  
	  
      location / {

        #除首页、商品页、帮助中心页外走wap端渲染服务  
        proxy_pass   http://47.107.230.46:7008;
		proxy_set_header Host $host:$server_port;
        proxy_pass_header User-Agent;
        add_header X-Content-Type-Options  'nosniff';#禁止嗅探文件类型
        add_header Content-Security-Policy "script-src 'self' 'unsafe-eval' 'unsafe-inline' https://base-api.wf.biemo.com/buy https://base-api.wf.biemo.com/base https://open.weixin.qq.com/*";#只允许同源下的js
        add_header X-XSS-Protection "1; mode=block";#开启XSS过滤器
      }
    }
   

    #管理端
    server {
      listen       443 ssl;
      server_name  admin.wf.biemo.com;

      
      ssl_certificate /opt/ssl/4025103_admin.wf.biemo.com_nginx/4025103_admin.wf.biemo.com.pem;
      ssl_certificate_key /opt/ssl/4025103_admin.wf.biemo.com_nginx/4025103_admin.wf.biemo.com.key; 
      ssl_session_timeout 1d;
      ssl_session_cache shared:SSL:50m;
      ssl_session_tickets off;
      # modern configuration. tweak to your needs.
      ssl_protocols TLSv1.2;
      ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
      ssl_prefer_server_ciphers on; 
      # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
      add_header Strict-Transport-Security max-age=15768000;
      # OCSP Stapling ---
      # fetch OCSP records from URL in ssl_certificate and cache them
      ssl_stapling on;
      ssl_stapling_verify on;

      location / {
        root   /opt/server/ui/manager-admin/dist;
        try_files $uri $uri/ /index.html $uri/ =404;
        index  index.html index.htm;
        add_header X-Content-Type-Options  'nosniff';#禁止嗅探文件类型
        add_header Content-Security-Policy "script-src 'self' 'unsafe-eval' 'unsafe-inline' https://base-api.wf.biemo.com/base";#只允许同源下的js
        add_header X-XSS-Protection "1; mode=block";#开启XSS过滤器
      }
    }
	
	
	 #卖家端
    server {
      listen       443 ssl;
      server_name  sell.wf.biemo.com;

      
      ssl_certificate /opt/ssl/4030396_sell.wf.biemo.com_nginx/4030396_sell.wf.biemo.com.pem;
      ssl_certificate_key /opt/ssl/4030396_sell.wf.biemo.com_nginx/4030396_sell.wf.biemo.com.key; 
      ssl_session_timeout 1d;
      ssl_session_cache shared:SSL:50m;
      ssl_session_tickets off;
      # modern configuration. tweak to your needs.
      ssl_protocols TLSv1.2;
      ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
      ssl_prefer_server_ciphers on; 
      # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
      add_header Strict-Transport-Security max-age=15768000;
      # OCSP Stapling ---
      # fetch OCSP records from URL in ssl_certificate and cache them
      ssl_stapling on;
      ssl_stapling_verify on;

      location / {
        root   /opt/server/ui/manager-seller/dist;
        try_files $uri $uri/ /index.html $uri/ =404;
        index  index.html index.htm;
        add_header X-Content-Type-Options  'nosniff';#禁止嗅探文件类型
        add_header Content-Security-Policy "script-src 'self' 'unsafe-eval' 'unsafe-inline' https://base-api.wf.biemo.com/base";#只允许同源下的js
        add_header X-XSS-Protection "1; mode=block";#开启XSS过滤器
      }
    }


    server {
            listen       80;
            server_name  wx.biemo.com;

             location /MP_verify_4JxiVno52dyMj8iL.txt{
        alias /opt/verify/MP_verify_4JxiVno52dyMj8iL.txt;
}

			root /opt/data/www/ec_front;
  			location / {
      			try_files $uri $uri/ /index.html;
  			}

  		location /social-web/ {
                        proxy_pass http://localhost:8091/social-web/;
                        proxy_buffer_size  128k;

                        proxy_buffers   32 32k;

                        proxy_busy_buffers_size 128k;

                        add_header X-Static transfer;

                        proxy_redirect off;

                        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_next_upstream http_500 http_502 http_504 error timeout;
             }
    }

    server {
            listen       80;
            server_name  erp.biemo.com;

			root /opt/data/www/ec_admin;
  			location / {
      			try_files $uri $uri/ /index.html;
  			}

  			location /api/social/ {
                        proxy_pass http://localhost:8092/api/social/;
                        proxy_buffer_size  128k;

                        proxy_buffers   32 32k;

                        proxy_busy_buffers_size 128k;

                        add_header X-Static transfer;

                        proxy_redirect off;

                        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_next_upstream http_500 http_502 http_504 error timeout;
             }
    }
  

 }