zoukankan      html  css  js  c++  java
  • nginx.config 多个方案解决跨域问题

    #user nobody;

    user sam owner;

    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;
    
    server {
        # listen       80;
        listen       9000;
        server_name  localhost;
        # server_name  resouce;
        
        # 以文件目录的方式展开
        autoindex on;
        
        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
        
        # location / {
        # #    root   html;
        #     root   D:Devwww;
        #     index  index.html index.htm;
    
        #     # 跨域
        #     add_header 'Access-Control-Allow-Origin' '*';
            
        #     # 每次访问, 不缓存
        #     add_header Cache-Control 'no-cache, must-revalidate';
        # } 
        
        # location /{
        #     root   D:Devwww;
        #     index  index.html index.htm;
        #    proxy_pass http://localhost:9000/;
          
        #    #告诉浏览器允许跨域访问的方法
        #    add_header Access-Control-Allow-Methods *;
        #    # 告诉浏览器缓存OPTIONS预检请求1小时
        #    add_header Access-Control-Max-Age 3600;
        #    #允许带有cookie访问
        #    add_header Access-Control-Allow-Credentials true;
        #    #注意 * 不能满足带有cookie的访问,Origin 必须是全匹配,这里通过变量获取
        #    add_header Access-Control-Allow-Origin $http_origin;
        #    #设置支持所有的自定义请求头
        #    add_header Access-Control-Allow-Headers $http_access_control_request_headers;
        #    #如果预检请求,则返回成功,不需要转发到后端
        #    if ($request_method = OPTIONS){
        #        return 200;
        #    }
        # } 
    
        # location / {    
        #     root   D:Devwww;
        #     index  index.html index.htm;
        #    proxy_pass http://192.168.31.193:8081;    
        #    proxy_set_header Host $host:9000;    
        #    proxy_set_header X-Real-IP $remote_addr;    
        #    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    
        # }
    
        location / {
            root   D:Devwww;
            index  index.html index.htm;
           if ($request_method = 'OPTIONS') {
               add_header 'Access-Control-Allow-Origin' '*';
               add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
               #
               # Custom headers and headers various browsers *should* be OK with but aren't
               #
               add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
               #
               # Tell client that this pre-flight info is valid for 20 days
               #
               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';
               add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
               add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
           }
           if ($request_method = 'GET') {
               add_header 'Access-Control-Allow-Origin' '*';
               add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
               add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
               add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
           }
        }
    
        #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;
            root   D:Devwww;
        }
    
        # 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       3000;
    #     server_name  resouce;
    #    # 以文件目录的方式展开
    #     autoindex on;
    #     location / {
    #         root   D:Devwww;
    #         # 跨域
    #         add_header Access-Control-Allow-Origin *;
    #         # 每次访问, 不缓存
    #         add_header Cache-Control 'no-cache, must-revalidate';
    #     }
    
    
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;
    
    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;
    
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;
    
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    

    }

  • 相关阅读:
    Django学习(二) Django框架简单搭建
    Django学习(一) Django安装配置
    Python学习(一) Python安装配置
    注册第一天,纪念一下
    小程序笔记
    详解HTML5中的进度条progress元素简介及兼容性处理
    服务管理
    yum
    管道,输出,管道,重定向,grep
    VIM
  • 原文地址:https://www.cnblogs.com/izhaong/p/12154308.html
Copyright © 2011-2022 走看看