iframe nginx 跨域配置

23 min read
#user  nobody;
worker_processes  3;

#debug | info | notice | warn | error | crit
error_log  logs/error.log  warn;

pid        logs/nginx.pid;

#worker_rlimit_nofile 65535;


events {
    worker_connections  8192;
}

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

    fastcgi_intercept_errors on; 
    
    log_format  main  '"$upstream_addr" $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;
    access_log off;
    open_log_file_cache max=1000 inactive=20s min_uses=2 valid=1m;

    server_names_hash_bucket_size 128;

    large_client_header_buffers 4 64k;
    
    client_header_buffer_size 32k;
    
    client_body_buffer_size    5120k;
    
    client_max_body_size    100m;

    server_tokens off;
    
    ignore_invalid_headers   on;
    

    recursive_error_pages    on;

    server_name_in_redirect off;

    sendfile  on;

    tcp_nopush  on;

    tcp_nodelay    on;

    keepalive_requests 3000;
    
    keepalive_timeout  120;

   client_body_timeout 12;
   client_header_timeout 12;
   send_timeout 10;
   
    autoindex off; 
    
    include    gzip.conf;

    map_hash_bucket_size 64;

    #FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。下面参数看字面意思都能理解。
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 8 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;
    
   upstream st_app {
      ip_hash;  
      server 127.0.0.1:443  weight=1 max_fails=10 fail_timeout=120s;
    }
    
    upstream zlj_jhpt {
      ip_hash;  
      server IP:443 weight=1 max_fails=10 fail_timeout=120s;
      server IP:6443  weight=1 max_fails=10 fail_timeout=120s;
      #server IP:8080  weight=1 max_fails=10 fail_timeout=120s;    
      keepalive 64;
    }

    
    server {
    listen 8998 default;
    location / {
            root   error;
            index  index.html index.htm;
    }
    }
    
    server {
    
    listen       7443 ssl;
    server_name  域名1:7443;
    ssl_certificate       D:XXX;
    ssl_certificate_key   D:XXX;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    #ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers  on;

    charset ISO-88509-1;

    
        location /st_app {
        proxy_pass https://st_app;
        include    proxy.conf;
        # 配置html以文件方式打开
        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-Mx-ReqToken,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-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
        }
    }
    
    
    
    location /st {
        proxy_pass https://st;
        include    proxy.conf;
        # 配置html以文件方式打开
        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-Mx-ReqToken,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-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
        }
    }
        
    }    
    
}