nginx怎么配置ssl可以即允许http访问也允许https访问

2025-03-28 06:44:03
推荐回答(1个)
回答1:

代码如下请参考

#user  nobody;
worker_processes  auto;

error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
    worker_connections  65535;
}


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;
    # server_names_hash_bucket_size 128K;

      client_header_buffer_size 32k;

      large_client_header_buffers 4 32k;
       client_body_buffer_size    8m;
        server_tokens off;
    ignore_invalid_headers   on;

    sendfile        on;
    tcp_nopush     on;

    keepalive_timeout  65;
    proxy_temp_path   /usr/local/nginx-1.8/proxy_temp;
    proxy_cache_path /usr/local/nginx-1.8/proxy_cache levels=1:2 keys_zone=cache_one:100m inactive=2d max_size=10g;
    gzip  on;
    gzip_disable "MSIE [1-6].(?!.*SV1)";
    gzip_min_length  1k;         
    gzip_buffers     4 16k;       
    gzip_http_version 1.0;       
    gzip_comp_level 2;           
    gzip_types   text/plain application/x-javascript text/css application/xml;          

upstream name {
          server 116.31.118.114:8098  weight=2 fail_timeout=3s  backup;  
           server 114.55.32.244:888  weight=1 max_fails=3 fail_timeout=300;
          server 114.55.85.154:8080  weight=1 max_fails=3 fail_timeout=300;    
           ip_hash;             
    }
 

       server {
       listen 443  default ;
        server_name  www.***.com;
      server_tokens off;
        ssl on; 
       ssl_certificate /usr/local/nginx/conf/web.crt;
       ssl_certificate_key /usr/local/nginx/conf/web.key;
      # error_page 497  https://$host:$server_port$request_uri;  
        location ~*/{ 
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass 

        proxy_http_version 1.1;
        proxy_set_header  Accept-Encoding  "";          
            
    location ~ .*\.(gif|jpg|png|html|css|js|ico|swf|pdf)(.*) {
            proxy_pass 

            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            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_cache cache_one;
            add_header Nginx-Cache $upstream_cache_status;
            proxy_cache_valid  200 304 301 302 24h;
            proxy_cache_valid 404 1m;
            proxy_cache_valid  any 2d;
            proxy_cache_key $host$uri$is_args$args;
            expires 7d;
        }       


upstream name {
          server 116.31.118.114:8098  weight=2 fail_timeout=3s  backup;  
           server 114.55.32.244:888  weight=1 max_fails=3 fail_timeout=300;
          server 114.55.85.154:8080  weight=1 max_fails=3 fail_timeout=300;    
           ip_hash;             
    }
 

       server {
       listen 80  default ;
        server_name  www.***.com;
      server_tokens off; 
       
        location ~*/{ 
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass 

        proxy_http_version 1.1;
        proxy_set_header  Accept-Encoding  "";          
            
    location ~ .*\.(gif|jpg|png|html|css|js|ico|swf|pdf)(.*) {
            proxy_pass 

            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            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_cache cache_one;
            add_header Nginx-Cache $upstream_cache_status;
            proxy_cache_valid  200 304 301 302 24h;
            proxy_cache_valid 404 1m;
            proxy_cache_valid  any 2d;
            proxy_cache_key $host$uri$is_args$args;
            expires 7d;
        }       


      location ~ /purge(/.*)

      {

          auth_basic "TDT  Center  CACHE  Center";

          auth_basic_user_file /tmp/htpasswd;

          allow 127.0.0.1;


          deny all;

          proxy_cache_purge cache_one $host$1$is_args$args;

      }

 

       # error_page  404              /404.html;
       #  error_page   400 501 502 503 504  https://$host:$server_port$request_uri;
       # location = /50x.html {
       #     root   html;
      #  }


        # redirect server error pages to the static page /50x.html
        #
     #   error_page   500 502 503 504  /50x.html;
       
}
}