0

良い一日。nginx サーバーを取得し、https 接続を実行します。今のところ、すべての URL は https で実行されます。必要なのは、いくつかの URL を https から除外して、単純な http でアクセスできるようにすることだけです。これが私のNGINX設定ファイルです:

server {
       listen           80;
       server_name              my-fin.ru www.my-fin.ru;

        root         /usr/server/finance/abacus/webapp;

        location ~ ^/.+\.(eot|ttf|woff)$ {
            expires max;
            add_header Cache-Control public;
            add_header Access-Control-Allow-Origin *;
        }

        location ~ ^/.+\.(ico|jpg|jpeg|gif|pdf|jar|png|js|css|txt|epf|svg)$ {
            expires max;
            add_header Cache-Control public;
        }

        location / {
               return                   301 https://my-fin.ru;
        }

}

server {
        listen          *:443;
        server_name     my-fin.ru;
        client_max_body_size 10m;
        gzip                    on;
        gzip_min_length 500;
        gzip_buffers    4 8k;
        gzip_types              text/plain text/xml application/xml application/x-javascript text/javascript text/css text/json application/json;

        access_log  /var/log/nginx/finance.access.log;
        error_log   /var/log/nginx/finance.error.log;

        ssl on;
        ssl_certificate         /usr/server/myfin.crt;
        ssl_certificate_key     /usr/server/myfin.key;
        charset                 utf-8;

        root         /usr/server/finance/abacus/webapp;

        location ~ ^/.+\.(eot|ttf|woff)$ {
            expires max;
            add_header Cache-Control public;
            add_header Access-Control-Allow-Origin *;
        }

        location ~ ^/.+\.(ico|jpg|jpeg|gif|pdf|jar|png|js|css|txt|epf|svg)$ {
            expires max;
            add_header Cache-Control public;
        }

        location / {
                # give site more time to respond
                proxy_read_timeout 120;
                proxy_pass        http://127.0.0.1:8087;
                proxy_redirect          http:// $scheme://;

                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr ;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
        }

}

nginx の設定を手伝ってください。

4

1 に答える 1

1

このコメントによると、これが私がそれを行う方法です。

## non https server
server {
    #non ssl server
    listen 80;
    server_name example.com;
    root /path/to/root;
    location /features {
        #handle /features
    }
    location /info {
        # handle /info
    }
    location /help {
        #handle /help
    }
    location /
        return 301 https://example.com$request_uri;
    }
}
## https server
server {
    # handle ssl
    listen 443 ssl;
    server_name example.com subdomain1.example.com;
    root /path/to/root;
    location ~ /(features|help|info) {
        # redirect those 3 subfolders to http
        return 301 http://example.com$request_uri;
    }
    location / {
        #handle ssl requests;
    }
}
## https subdomain
server {
    listen 443 ssl;
    server_name subdomain2.example.com;
    root /path/to/root;
    location ~ /(features|help|info) {
        # redirect those 3 subfolders to http
        return 301 http://example.com$request_uri;
    }
    location / {
        # subdomain handling
    }
}

ワイルドカード SSL 証明書がない限り、https はサブドメインでは機能しないことに注意してください。そうしないと、ブラウザーは警告を発します。

于 2013-06-21T08:49:52.153 に答える