cba赛事推荐预测分析

admin · 2021-07-01

序言

  前一阵子用nginx分管了我网站由tomcat惩罚的的http办事,本文就跟公共分享下我的实战经过,以及怎样从0动手用nginx来拜候你的前端名目,欢送诸位感意思的开荒者浏览本文。

   写正在后面

  我开源名目[1]的第三方登录模块用到了localStorage来获取用户的受权了局,头几天有个网友反应说他从我作品的链接中点出来无法登录。

  

  始末一番排查后,我发明我正在作品中留的链接是https://kaisir.cn/chat-system[2],而第三方鉴权回调筑立的链接是https://www.kaisir.cn/chat-system[3]。因为我域名剖析那边设备了@拜候与www拜候指向的都是统一个网站,以是二者拜候界面肖似。然则回调地点中有www,哀告受权的拜候界面没有www,呈现了跨域题目。

  跨域后,localStorage里的货色天然是差异样的,以是就呈现了这个网友所说的题目。

   处理要领

  既然二者拜候的都是统一个办事器上的资本,那末咱们就能够正在办事端设备重定向,当哀告的地点没有率领www时,咱们就给他重定向到带www的地点。

  因而我搜了一奔忙利用tomcat设备未率领www的网站主动增添www,看了一眼计划,对比费事,不思折腾。

  

   利用nginx处理这个题目

  始末一番搜求后,我发明利用nginx处理这个题目对比简陋,因而我花了一点功夫学了下nginx,圆满处理了这个题目。

  注意:本文不先容怎样按部就班nginx,对此不睬解的开荒者,请移步nginx官网[4]停止研习。

   移除tomcat的设备

  开始咱们先把tomact已设备好的极少http办事移撤除,此处要删除的有:http拜候跳转https、域名证书、静态资本。

  注意:假如你没有利用tomcat能够跳过此章节, 直接研习nginx的闭联设备。

  闭上https拜候,删除域名证书

  咱们掀开tomcat的conf目次下的server.xml,找到Service标签里port为80的Connector标签,删除标签内的redirectPort属性,如下图所示。

  

  注意:你还必要窜改port的值,将其改为苟且一个非80的值,由于nginx必要利用80端标语。

  随后,接连找port为443的Connector标签,将其删除,如下图所示。

  

  终末,删除你目次下后缀为jks的域名文献便可。

  

   删除静态资本

  掀开tomcat的webapps目次将你的静态资本(前端名目)删掉便可。

  

   闭上http强跳https

  咱们掀开tomcat的conf目次下的web.xml文献,找到login-config标签和security-constraint的实质,将其删除,如下所示:

  

<!--开启http强迫跳转https拜候--><login-config><!--AuthorizationsettingforSSL--><auth-method>CLIENT-CERT</auth-method><realm-name>ClientCertUsers-onlyArea</realm-name></login-config><security-constraint><!--AuthorizationsettingforSSL--><web-resource-collection><web-resource-name>SSL</web-resource-name><url-pattern>/*</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint>

 

   设备nginx

  接上去,咱们来设备nginx,让它来完全接收客户真个http哀告,反向代办tomcat供给的办事,胜利与tomcat完毕共同。

   设备虚构主机

  开始,咱们必要先把虚构主机设备好,它的效率便是模块化解决你的悉数办事器资本,防止总共都一股脑的写入nginx的主设备文献,从而招致的可保护性低浸题目。

  咱们掀开nginx的conf目次,正在其目次下找到virtualhost.conf的文献(假如没有则必要手动创筑),该文献的效率便是将悉数的办事器设备引入出去停止同一解决,掀开文献后,咱们写入如下所示的实质:

  

#VirtualHostConfiguration.#默许存正在的,假如不存正在能够不睬includevhosts/localhost.vhost;#咱们新加的includevhosts/kaisir.cn;

 

  正在下面的设备文献中,咱们新加了一个kaisir.cn的设备,咱们必要正在vhosts目次下创筑这个文献,这个目次也是正在conf目次中的(假如没有就本身创筑),咱们直接创筑这个文献便可。

  

  注意:创筑的文献不克不及包孕后缀名,假如你有众个行使则正在此处创筑,而后正在virtualhost.conf文献中利用include指令停止引入便可。

  随后,咱们掀开conf目次下的nginx.conf文献,把方才创筑的virtualhost.conf文献引入出来,咱们找到http标签,正在标签外部增添如下所示的实质:

  

#...其余实质省略...http{#引入办事设备文献includevirtualhost.conf;}

 

  做完上述操纵后,咱们就能够欢欣的编纂咱们正在vhosts目次下创筑的文献了。

   办事器设备文献

  正在上述设备中,咱们正在vhosts目次下创筑的文献便是咱们的办事器设备文献了,http拜候的闭联设备都是正在此文献中停止写入。

   设备端口监听

  咱们掀开后面创筑的kaisir.cn文献,写入如下所示的实质:

  

server{listen80;listen443ssl;}

 

  上述设备中:

   server 为本文献的根指令,本章节前面悉数的设备都是写正在这个这个指令内中的 listen 监听80端口(即泛泛http的拜候) listen 监听443端口以及ssl拜候(即https的拜候) 设备ssl证书

  咱们写入如下所示的代码用来设备https拜候时所需的ssl证书文献:

  

#设备ssl证书ssl_certificate/Users/likai/nginx-website/conf/kaisir.cn/1_kaisir.cn_bundle.crt;ssl_certificate_key/Users/likai/nginx-website/conf/kaisir.cn/2_kaisir.cn.key;ssl_session_timeout5m;ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocolsTLSv1TLSv1.1TLSv1.2TLSv1.3;ssl_prefer_server_cipherson;

 

  上述设备中,咱们紧要窜改2个片面的设备:

   ssl_certificate 你域名的ssl证书文献位子(文献范例必然为crt格局的) ssl_certificate_key 你域名证书所对应的密钥文献 (文献范例必然为key格局的)

  注意:ssl证书必要去你域名的注册商那边下载

   设备网站拜候门途

  接上去,咱们来设备下每一个拜候门途所指向的静态资本(前端名目),咱们会用location指令来设备一条门途的拜候,如下所示,咱们设备了域名的根目次指向(即/的寓意),指令外部差异指定了静态资本正在硬盘中的门途以及默许的首页文献。

  

#根门途location/{#名目门途root/Users/likai/nginx-website/kasir.cn;#默许首页文献indexindex.htmlindex.htm;}

 

  设备完根目次后,咱们再来看下子目次的闭联拜候设备,如下所示:

  

location/chat-system{#名目门途alias/Users/likai/nginx-website/chat-system/;#默许首页文献indexindex.htmlindex.htm;#处理网页更始404try_files$uri$uri//chat-system/index.html;}

 

  经由过程考察上述设备后,咱们发明的差异点如下:

   alias 设备子目次时,咱们利用了alias来指向名目 try_files 这里是处理vue名目启用history形式后,网页更始404题目

  注意:假如你的vue名目是用Vue CLI搭筑的,那末就必要窜改vue.config.js中的publicPath属性值为:process.env.NODE_ENV === "development" ? "./" : "/chat-system"。"/chat-system"即为出产情况的拜候门途,便是咱们方才正在location指令行所设备的。假如此处设备谬误的话,你打包后的vue名目正在涉猎器拜候将使一片空缺??

  终末,正在途由设备文献中,传入参数:createWebHistory(process.env.BASE_URL)。

  详细代码请移步提交纪录:build: 启用途由的history形式[5]

   自界说谬误页

  正在涉猎器拜候一个不存正在的页面或许办事器外部产生谬误时,咱们或者必要对其停止惩罚,此时咱们就必要用到error_page指令,如下所示:

  

#自界说404与500页面,指向上面的locationerror_page404500/404.html;#自界说面location/404.html{alias/Users/likai/nginx-website/404-page/;#默许首页文献indexindex.htmlindex.htm;}

 

  注意:设备了error_page后,必然要设备location来指向你要拜候的静态名目。

   反向代办tomcat供给的办事

  咱们必要正在location指令外部利用proxy_pass来代办tomcat供给的办事,设备如下所示:

  

#反向代办Java接口,众门途采取正则抒发式婚配location~^/(api

 

  注意:location指令中利用正则停止了接口前缀地点的婚配,此处婚配的是/api/*、/uploads/*、/download/*、/other/*

  假如你的tomcat还供给了websocket办事,那末还必要孤独配一条location指令,用来代办,设备如下所示:

  

#反向代办websocket哀告location/websocket{proxy_passhttp://127.0.0.1:8080/websocket/;proxy_http_version1.1;proxy_set_headerUpgrade$http_upgrade;proxy_set_headerConnection"upgrade";}

 

  假如你没有利用Java来做办事端,而是利用python、php、c#等措辞做的,也能够利用proxy_pass来做反向代办。

   重定向未率领www的哀告

  终末,咱们来处理下本文着手所说的题目,正在nginx中处理这个题目极度简陋,咱们只要要判定下哀告地点中能否包孕www便可,假如不包孕则301重定向到带www的地点便可,设备如下所示:

  

#主机称号,哪一个写正在后面,默许就跳转哪一个server_namewww.kaisir.cnkaisir.cn;#哀告网址中不包孕www,则重定向到率领www的https地点if($http_host!~"^www.kaisir.cn$"){return301https://$server_name$request_uri;}

 

  设备完毕后,咱们掀开涉猎器拜候kaisir.cn[6]来验证下能否抵达了咱们的预期,如下图所示,圆满处理??

  

  注意:上述设备中,咱们利用正则抒发式对url停止了一奔忙婚配,个中server_name指令的效率是假如拜候地点中包孕此场所写的货色,就会触发施行这里的设备。

  此设备还会将你的http哀告默许重定向到https。

   完全的设备文献

  本章节完全的设备文献实质如下所示:

  

server{listen80;listen443ssl;#主机称号,哪一个写正在后面,默许就跳转哪一个server_namewww.kaisir.cnkaisir.cn;#哀告网址中不包孕www,则重定向到率领www的https地点if($http_host!~"^www.kaisir.cn$"){return301https://$server_name$request_uri;}error_page497https://$server_name$request_uri;#自界说404与500页面,指向上面的locationerror_page404500/404.html;#设备ssl证书ssl_certificate/Users/likai/nginx-website/conf/kaisir.cn/1_kaisir.cn_bundle.crt;ssl_certificate_key/Users/likai/nginx-website/conf/kaisir.cn/2_kaisir.cn.key;ssl_session_timeout5m;ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocolsTLSv1TLSv1.1TLSv1.2TLSv1.3;ssl_prefer_server_cipherson;#援用虚构设备文献includevhosts/_nginx.vhost.fpm;#根门途location/{#名目门途root/Users/likai/nginx-website/kasir.cn;#默许首页文献indexindex.htmlindex.htm;}location/chat-system{#名目门途alias/Users/likai/nginx-website/chat-system/;#默许首页文献indexindex.htmlindex.htm;#处理网页更始404try_files$uri$uri//chat-system/index.html;}#自界说面location/404.html{alias/Users/likai/nginx-website/404-page/;#默许首页文献indexindex.htmlindex.htm;}#反向代办Java接口,众门途采取正则抒发式婚配location~^/(api

nginx设备文献

 

  接上去,咱们来看下nginx的设备文献,做极少小优化。本章节的悉数设备都是正在nginx.conf文献中完毕,本章节提到的悉数设备文献均指nginx.conf。

   最大毗邻数

  最大毗邻数也能够成为并发数,即同临时刻最众扶助若干个客户端接入,正在设备文献中到场如下所示的设备:

  

events{#许可的毗邻数worker_connections20000;}

开启gzip

 

  gzip紧缩能够节减咱们的带宽资本,提拔网站的加载速率。它的开启体式格局也很简陋,正在设备文献的http指令内增添,如下所示:

  

http{#开启gzipgzipon;#许可紧缩的最小字节数gzip_min_length10;#IE涉猎器1-6版本禁用gzipgzip_disable"MSIE[1-6].";#启用gzip的文献范例gzip_typestext/plainapplication/x-javascripttext/csstext/javascriptapplication/xml;}

设备日记

 

  日记能够用来纪录每一个客户真个拜候功夫、ip、涉猎器等音讯,对咱们后续的网站保护带来助助,正在设备文献的http指令内增添如下所示的设备:

  

#筑立日记格局,增添客户端切实ip等音讯formatchatSystemLogFormat$http_xforwarded_for-$remote_user[$time_local]"$request"$status$body_bytes_sent"$http_referer""$http_user_agent";#拜候日记文献寄存门途ss_log/Users/likai/nginx-website/logs-chat-system/access.logchatSystemLogFormatbuffer=32k;

设备文献上传巨细

 

  假如你的网站供给了文献上传办事,那末文献的巨细局限除了正在你的办事端名目中设备外,还必要正在nginx中设备。

  同样的,正在设备文献的http指令内增添如下所示的设备:

  

#客户端能够上传的文献巨细client_max_body_size100m;

完全的设备文献

 

  完全的设备如下所示:

  

userlikaistaff;worker_processes8;error_log/Applications/MxSrvs/logs/errors_nginx.log;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#pidlogs/nginx.pid;events{#许可的毗邻数worker_connections20000;}http{#gzip婚配范例设备文献includemime.types;default_typeapplication/octet-stream;#客户端能够上传的文献巨细client_max_body_size100m;#开启gzipgzipon;#许可紧缩的最小字节数gzip_min_length10;#IE涉猎器1-6版本禁用gzipgzip_disable"MSIE[1-6].";#启用gzip的文献范例gzip_typestext/plainapplication/x-javascripttext/csstext/javascriptapplication/xml;#筑立日记格局,增添客户端切实ip等音讯log_formatchatSystemLogFormat$http_xforwarded_for-$remote_user[$time_local]"$request"$status$body_bytes_sent"$http_referer""$http_user_agent";#拜候日记文献寄存门途access_log/Users/likai/nginx-website/logs-chat-system/access.logchatSystemLogFormatbuffer=32k;#引入办事设备文献includevirtualhost.conf;sendfileon;keepalive_timeout65;}

参考材料

 

  [1]开源名目: https://kaisir.cn/chat-system

  [2]https://kaisir.cn/chat-system: https://kaisir.cn/chat-system

  [3]https://www.kaisir.cn/chat-system: https://www.kaisir.cn/chat-system

  [4]nginx官网: https://www.nginx.com/resources/wiki/start/topics/tutorials/install/

  [5]build: 启用途由的history形式: https://github.com/likaia/chat-system/co妹妹it/e7c55a714f2610a87a5c87d5864bc4c342a298b0

  [6]kaisir.cn: http://kaisir.cn

  [7]团体网站: https://www.kaisir.cn/

文章推荐:

nba2k18传奇版

cba2k巨星时刻

nba2k11没声音

大赢家篮球比分