2019-01-18

2019-01-18  本文已影响0人  鬼测

nginx的基本配置和SSL的http跳转https基本配置

在nginx中的nginx.conf下配置

http {

......

#这里为http请求动态服务配置

server {                                                           #nginx中web服务配置必须内容

        listen      80;                                            #nginx进入的端口默认80

        server_name ***.***.com;                        #关联的网址,该网址必须在解析中指向当前nginx服务器的IP地址

        location / {                                                #这里的斜杠指向的是网址后不添加路由的基本跳转

                root /*****/;                                        #这里是动态服务的文件位置

                index Login.jsp;                                #nginx起始跳转指向

                proxy_pass http://localhost:8081/ ;   #这里是动态服务的本地端口指向,如果不写则为静态指向

        }

    }

###################################### http跳转SSL基本配置#############################################

server {                                                                    

        listen      80;                                                    

        server_name www.*****.***;

        if ($scheme = http ) {                                        #这里是判定请求是否为http类型

                return 301 https://$host$request_uri;        #这里根据301返回跳转至https,$host为请求的网址,$request_url为请求的参数内容

        }

        error_page  500 502 503 504  /50x.html;           #错误处理 error_page报错类型指定  500 502等报错处理,斜杠后html是报错后跳转页面名

        location = /50x.html {                                         #基本路由跳转指向

            root  html;                                                       #跳转页面所在位置

        }

    }

server {                                                                        #SSL服务配置

        listen 443;                                                            #443默认安全端口

        server_name ***.****.***;                                     #网址

        ssl on;                                                                 #SSL 开启

        root html;                                                            #根路径指向

        index index.html index.htm; 

        ssl_certificate  cert/****************.pem;            #SSL密钥

        ssl_certificate_key  cert/**************.key;        #SSL键 这两个都是可以申请的,自建文件可能出现谷歌浏览器不识别警告提醒

        ssl_session_timeout 5m;                                  #会话时间设定

        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    #加密方式

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;            #SSL版本 1.3版本与1.2版本差别在多个加载时有区分

        ssl_prefer_server_ciphers on;                           #优先使用服务端加密  off则是使用客户端加密        

        gzip on;                                                               #gzip压缩开启

        gzip_min_length  5k;                                           #最小

        gzip_buffers    4 16k;                                           #缓存

        gzip_http_version 1.0;                                         #版本

        gzip_comp_level 5;                                              #压缩级别 共9级(太大会后悔的)

        gzip_types application/javascript text/plain application/x-javascript text/css application/xml text/javascript application/x

-httpd-php image/jpeg image/gif image/png;                #允许压缩的类型

        gzip_vary on;                                                        #根据客户端的HTTP头来判断,是否需要压缩,用于区分浏览器支持压缩否

        #这里的try_files 主要用于单页面多路由跳转的项目使用

        location / {                                                            #SSL中的网址根路径指向  静态网页

                root /****/**********;                             

                try_files $uri $uri/ @router;                           #读取静态文件 与rewrite区别是高效率,不需要重载的就不执行  @router自定义

                #$uri 是请求文件的路径   $uri/ 事请求目录的路径  与$request_uri区别为不带参数 就是问号后内容

                index index.html;

                if ( $query_string ~ "view=string" ) {            # $query_string正则 与$args相同  ~后为正则条件

                        rewrite ^/index.html https://***.*****.com/index.html? permanent;  #重定向跳转指定页面   permanent参数内容

                }

        }

        location @router {                                #自定义校验

                rewrite ^.*$ /index.html last;

        }

        #SSL中自定义路由指向动态服务

        location /name/ {                        #自定义路由指向名

                root  /*****/******/name/;    #文件路径中包涵指向路由名的文件夹

                index index.jsp;        

                add_header Access-Control-Allow-Credentials: true;                            #head添加跨域请求处理

                add_header Access-Control-Allow-Origin: '*';                                        #跨域请求网址名 通用为* 可指向指定网址名

                add_header Access-Control-Allow-Headers X-Requested-With;           #跨域处理AJAX请求处理 如果没有可能会导致AJAX请求302错误

                add_header Access-Control-Allow-Methods GET,POST,OPTIONS;    #跨域请求处理 这里会导致跨域请求多OPTIONS请求  必填

                client_max_body_size      16m;

                client_body_buffer_size  128k;

                proxy_pass                http://localhost:9090/;

                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_set_header          X-Forwarded-Proto https;

                proxy_next_upstream      off;

                proxy_connect_timeout    30;

                proxy_read_timeout        300;

                proxy_send_timeout        300;

        }

}

上一篇下一篇

猜你喜欢

热点阅读