• 关于 js 改变meta 的搜索结果

问题

如何用js阻止后续的javascript标签的载入?

小旋风柴进 2019-12-01 19:23:59 1119 浏览量 回答数 1

问题

js中body里能用this来代替吗 js报错 

kun坤 2020-06-03 11:19:00 0 浏览量 回答数 1

问题

jquery改变type=radio的状态

小旋风柴进 2019-12-01 19:28:57 710 浏览量 回答数 1

新用户福利专场,云服务器ECS低至102元/年

新用户专场,1核2G 102元/年起,2核4G 699.8元/年起

问题

js广告漂浮效果的例子

你的风向标 2019-12-01 21:47:39 5954 浏览量 回答数 0

问题

jquery 每次点击只改变最后一个的样式

小旋风柴进 2019-12-01 19:31:03 804 浏览量 回答数 1

问题

js运动框架问题求助

a123456678 2019-12-01 20:19:16 898 浏览量 回答数 1

回答

这个应该就是你要的效果了,检查选项的checked属性可以判断哪个选项被选中;通过onchange事件绑定即可 <!Doctype html> <head> <title>js练习</title> <meta charset="utf-8"> <script src="jquery.min.js"></script> </head> <body> <form action="" class="select" name="Form1"> <div class="radio" > <label> <input onchange="setA()" type="radio" name="questionSelect" value="A" />A. <span class="question-content">问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题</span> </label> </div> <div class="radio"> <label> <input type="radio" name="questionSelect" value="B"/>B. <span class="question-content">问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题问题</span> </label> </div> </form> <span>你的答案:</span><span id="answerOrder"></span> </body> <script text="text/javascript"> //给单选按钮绑定事件 window.onload=function(){ var ans = document.getElementsByName("questionSelect"); for(var i=0;i<ans.length;i++){ ans[i].onchange=setA; } } //当值改变时把当前选项呈现在指定区域 function setA(){ var ans = document.getElementsByName("questionSelect"); var ord = document.getElementById("answerOrder"); for(var i=0;i<ans.length;i++) if(ans[i].checked==true){ ord.innerHTML=ans[i].value; } } </script> </html>

杨冬芳 2019-12-02 02:57:03 0 浏览量 回答数 0

问题

原生js写的动画函数在数值计算上遇到的问题

a123456678 2019-12-01 20:15:28 924 浏览量 回答数 1

问题

怎么动态增加元素顺序?

小旋风柴进 2019-12-01 20:26:47 1108 浏览量 回答数 1

问题

怎么动态增加元素顺序?

小旋风柴进 2019-12-01 20:11:01 639 浏览量 回答数 1

回答

引用来自“milin”的评论直接用jquery好了,写的那么麻烦 以下代码取自: JS, JQUERY实现全选,反选。 其中,我将 <script src="js/jquery-1.8.3.min.js"></script> 改成: <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script> 测试一下,似乎正是你所要的效果。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input type="checkbox" value="全选" id="ckAll"/>水果</br> <div class="box"> <input type="checkbox" value="苹果" id="apple"/>苹果 <input type="checkbox" value="香蕉" id="bann"/>香蕉 <input type="checkbox" value="橘子" id="origin"/>橘子 </div> <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script> <script type="text/javascript">        //给所有 .box input 元素添加 checked = ckAll 当前的状态;        //prop('checked',value) ,第一个值获取属性,第二个值:设置属性值。prop只有一个参数时,表示获取元素属性。         $('#ckAll').click(function(){            $('.box input').prop('checked',$(this).prop('checked')); }); $('.box input').click(function(){ //each 便利每一个元素,让其执行该函数 $('.box input').each(function(){ if(!$(this).prop('checked')){ $('#ckAll').prop('checked',false); //有一个不满足就 跳出该循环,避免执行下面 return false; }else{ $('#ckAll').prop('checked',true); } }) })</script> </body> </html>  ######嗯嗯,是这样的,感谢分享!######一个不选中的场景,是否应当写成:if(!select1Input[i].checked){...}? 你少写了属性:checked。######if(!select1Input[i].checked){...}还是不管用###### 提问: 识别号为"selectAll"的html元素是什么类型?(type="?") 鉴于代表它的变量all 有个属性onclick (all.onclick), 我猜是 type="button"。可是它同时又有一个属性 checked, 我想它可能是 type="checkbox"。因此,我觉得,这个应当设立两个元素:一个 type="button", 一个 type="checkbox"。 请告诉我 元素 "selectAll" 是什么类型(type="?")。我不太明白这句话:"一个不选中,全选框也取消的效果"。全选框是否指的是 id="selectAll" 这个元素? "也取消" 是否是指 这个全选框消失?或它的checked 由 true 变为 false?  建议: 1.    定义 方法 selectReverse 的代码是否可以改成: var selectReverse = reverse.onclick = function(){     for (var i=0; i<select1Input.length; i++) {     select1Input[i].checked= !select1Input[i].checked;     } } 2.   将变量名称 reverse 换成 toggle。Toggle(切换),即使用自定义效果来显示或隐藏匹配的元素。这里,指的是 在  选中/未选中 (checked:true/false) 之间切换。鉴于 reverse 已经被 js 用于颠倒数组中元素的顺序的方法名: reverse(), 这里就不宜再用做其它的意思了。又发现,jQuery 中 toggle() 方法 是用来切换元素的可见状态的。如果是要"全选框也取消",即 全选框也消失, 那么 toggle 就最合适不过了。######回复 @良辰2250 : 我刚发一贴回答。可能正合你意。######回复 @tcxu : 点全选复选框可以全部选中,如果取消其中一个选项,全选复选框就不会选中。我是想让全选复选框与它的选项们之间有一个这样联动的效果呢######回复 @良辰2250 : 谢谢答复。你说:"一个不选中,全选框也取消的效果"。这是什么效果? 看来,全选框指的是 id="selectAll" 这个元素。 "也取消" 指是什么情况?是指 这个全选框消失, 还是指,一旦全选框的 checked 为 false, 其它所有的checkbox 的 checked 都会 是 false?######select1Input[i].checked= !select1Input[i].checked; 嗯,这样会更好######都是复选框:全选、反选、各选项: <label><input id="selectAll" type="checkbox" />全选/取消全选</label> <label><input id="selectReverse" type="checkbox" />反选</label><label><input type="checkbox" name="ability" />js</labe>######var selectAll=function (flag){ for(var i=0;i<select1Input.length;i++){ select1Input[i].checked=flag; } all.checked=flag; } 难道是这个意思?######和上面的效果也一样######直接用jquery好了,写的那么麻烦######借助于 网上的代码,如: <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script> 有一个弊端:万一那个代码网页找不到(当然,不希望如此),你自己的代码也就无法运行了。我明白了你的用意之后,就尝试修改你的代码。结果发现,不用 JQuery 也会奏效。请测试。 var all = document.getElementById('selectAll'); var reverse = document.getElementById('selectReverse'); var select1Input = document.getElementsByName('ability'); var selectAll = function(flag){ for (var i=0; i<select1Input.length; i++){ select1Input[i].checked = flag; } } for (var i=0;i<select1Input.length;i++) select1Input[i].onclick = function(){ all.checked = false; } var selectReverse = reverse.onclick = function(){ for (var i=0; i<select1Input.length; i++) { select1Input[i].checked= !select1Input[i].checked; } } all.onclick = function(){ if (all.checked) { selectAll(true); } if (!all.checked){ selectAll(false); } }  ######谢谢啦我参考了http://www.cnblogs.com/lk4525/p/6513924.html 里面一个计数器,补充了一点######/* 全选、不选、反选 */ var all = document.getElementById('selectAll'); var reverse = document.getElementById('selectReverse'); var select1Input = document.getElementsByName('ability'); var selectAll = function selectAll(flag) { for(var i=0; i<select1Input.length; i++) { select1Input[i].checked = flag; } } for(var i=0; i<select1Input.length; i++) { select1Input[i].onclick = function() { //引入计数器 var sum = 0; for(var j=0; j<select1Input.length; j++) { if(select1Input[j].checked) { sum += 1; if(sum == select1Input.length) { all.checked = true; } else { all.checked = false; } } } } } var selectReverse = reverse.onclick = function(){ for (var i=0; i<select1Input.length; i++) { select1Input[i].checked= !select1Input[i].checked; } } all.onclick = function() { if(all.checked) { selectAll(true); } if(!all.checked) { selectAll(false); } }  ######$(document).on("click", ".checkAll", function (ev) { $(this).parents("table").find(".option .checkSingle").prop("checked", $(this).prop("checked")); }); $(document).on("click", ".checkSingle", function (ev) { var checked = $(this).parents("table").find(".option .checkSingle:not(:checked)").length == 0; $(this).parents("table").find(".checkAll").prop("checked", checked); });######回复 @Tis : 嗯嗯,方法有很多######判断全选框是否应该选中,只要判断 单选框的选中数量 和 总数量是否相等。######为什么写到循环里,直接all.checked=flag不可以?并且你click的时候已经改变all了,为什么还要在selectall里面改变下。还有,全选click里面的if意义在哪?直接selectAll(this.checked)不就好了######测试:点全选,再取消一个选项,再选中,会发现全选框居然不选中了。selectAll(flag)在all.onclick的里面是可以全选,但会存在一个如上的问题。所以引入一个计时器(选中的要和全部数一样),这时所有复选框都选中了,全选框才会是选中的状态

kun坤 2020-06-09 13:59:32 0 浏览量 回答数 0

问题

想实现图片切换功能,但是最终效果是点击右边小图,左边显示的一直是最后一张图

小旋风柴进 2019-12-01 19:29:25 1454 浏览量 回答数 0

问题

如何用JS判断页面滚动到特定的div,从而实现背景的更换

小旋风柴进 2019-12-01 20:19:20 2490 浏览量 回答数 1

问题

JQuery页面的表格数据的增加与分页的实现? 400 报错

爱吃鱼的程序员 2020-06-03 16:49:21 2 浏览量 回答数 1

回答

做网页时,我们通常需要考虑到不同电脑屏幕尺寸,以及不同手机屏幕大小等问题,解决样式发生改变的情况,那么如何解决呢?现在主要是采用自适应来解决高度,宽度的,以及图片自适应问题,下面就PC端和移动端来总结一下,通常进行自适应高度和宽度,图片时,一般与页面的布局存在关系。 1、最小尺寸分辨率1024*768(传统17寸显示器),则可以采用940px、960px、或者常用的980px作为最小宽度 2、1024768之后稍大的分辨率就是1280768了,则可以采用1200px或者1220px作为稍大的网页宽度 3、支持css3、html5的高级浏览器可以利用CSS3 Media Queries让网页在不同分辨率下自动调节布局标签 4、不支持css3、html5的脑残浏览器特别是<=ie8系列则需要用js以及resize事件来控制html的布局标签宽度了 5、宽度自适应需要对每个显示模块进行不同宽度的计算,在做html布局时需要大量的计算与适配。 6、宽度自适应为不同宽度显示器写布局元素时常用的css 下面我们看下,如何用js和css来自适应屏幕的大小。 一:了解高度和宽度的基础 下面用图片来说明: 网页可见区域高宽为:document.body.clientHeight||document.body.clientWidth 网页正文的区域高宽为:document.body.scrollHeight||document.body.scrollWidth(包括滚轮的长度) 网页被卷去的上左区域:document.body.scrollTop||document.body.scrollLeft 二: css自适应高度 1.两栏布局,左边固定,右边宽度自适应 方法一: //html部分 左边 正文 //css部分 *{margin:0;padding:0} #left{float:left;width:200px;background:red;} #bodyText{margin-left:200px;background:yellow; 方法二: //html部分 左边 正文 //css部分 #left{float:left;width:200px;background:red;margin-right:-100%;} #body{width:100%;float:left;} #bodyText{margin-left:200px;background:yellow;} 2.三栏布局,两边定宽,中间自适应宽度 方法一: <div id="left">左边</div>----注意和div的位置有关系 <div id="right">右边</div> <div id="center">中间</div> //css部分 #left{width:200px;background:red;float:left;} #center{width:auto;background:blue;} #right{width:200px;background:yellow;float:right;} 方法二: html部分: <div id="body"> <div id="center">中间</div> </div> <div id="left">左边</div> <div id="right">右边</div> css部分: #body{width:100%;float:left;} //设置浮动和width:100% #body #center{background:red;margin-left:200px;margin-right:300px;} //margin-left:100%的使用方法 #left{width:200px;background:yellow;margin-left:-100%;float:left} #right{width:300px;background:blue;margin-left:-300px;float:left} -----如果设置为margin-left:-100%,则会跑到body的左边。 -----如果设置为margin-left:-300px(即right的宽度),则会跑到body的右边 3.关于最小宽度和最大宽度 这里依然结合布局来看,如下面的代码:自适应宽度,从而改变布局。 //html部分 <div id='container'> <div class='one'></div> <div class='two'></div> <div class='three'></div> </div> //css部分 #container{width:100%;} .one{width:20%;background:red;} .one,.two,.three{float:left; height:100px;} .two{width:60%;background:yellow;} .three{width:20%;background:blue;} @media (max-width:800px){--如果浏览器小于800px .one{width:40%;} .two{width:60%} .three{width:100%} } @media (max-width:400px)--如果浏览器宽度小于400px { .one{width:100%} .two{width:100%} .three{width:100%} } 理解什么叫最小宽度和最大宽度,最小宽度指为元素设置的最小宽度,到达最小宽度后,缩放文本不会起到任何作用 最大宽度是所有元素所能达到的一个上限,不能再继续往上增加。 三: css处理自适应高度 //html部分代码 <div id="fit"></div> //css代码 html,body{margin:0;height:100%;} #fit{width:200px;background:yellow;height:100%;border:1px solid red;} --这里同时给html和body加样式,是为了兼容各大浏览器。 IE 处于混杂模式时,body以窗口为高度参照,body设置为100%就可以使得页面和窗口一样高,body里面的嵌套div也可以扩展到窗口高度, 这样的话可以使布局适应浏览器窗口大小。窗体 》body》div (html ,body {overflow:scroll} 一层滚动条) 但是当处于标准模式时,body以html标签为高度参照,html标签才以窗口为参照,所以仅仅body 100%,并不能使它的子div100% 占据整个屏幕 还要使得 html 100%使得 html获得窗口大小才行。窗体》html》body》div (html ,body {overflow:scroll} 两层滚动条 ,html的滚动条从来不会用到) 父级随子级高度变化而自适应变化与子级随父级高度变化而变化 <div id="fj"> 我是父级 <div id="zj1">我是子级1</div> <div id="zj2">我是子级2</div> </div> //css部分 #fj{border:4px solid red;} #zj1{border:2px solid yellow;} #zj2{border:2px solid blue;}----这种情况下,父级高度随着子级div的高度自适应的改变 如果子div使用了float属性,此时已经脱离标准流,父div不会随内容的高度变化而变化,解决的办法是在浮动的div下面,加一个空div,设置clear属性both <div id="fj"> 我是父级 <div id="zj1">我是子级11111111111111111111111111</div> <div id="zj2">我是子级222222222222222222222222222222222222222222 222222222222222222222222222</div> <div id="clear" style="clear:both"></div>------如果去掉这句话,则父级div高度,不会随着子级的高度变化而变化 </div> //css部分 #fj{border:4px solid black;} #zj1{border:2px solid yellow;float:left} #zj2{border:2px solid blue;float:left} 高度的自适应的方法还有很多,这里不再列举。像height:auto等等。 四:js处理高度和宽度自适应问题 <div id="div1" >222222222222222222222</div> //js部分 function setHeight(obj) { var temHeight=null; //FF if(window.innerHeight) { temHeight=window.innerHeight;//包括页面高度和滚动条高度 } else { temHeight=document.body&&document.body.clientHeight; } if(temHeight>document.body.clientHeight)//页面高度 { oDiv.style.height=temHeight+"px"; } else { oDiv.style.height=document.body.clientHeight+"px"; } } window.onload=function() { var oDiv=document.getElementById("div1"); getHeight(oDiv); } 宽度自适应代码: function setWidth(obj) { var screenWidth = window.screen.width; var width; var imgURL ; if (screenWidth >= 1440) { width = "1400px"; imgURL = "1400.png";//设置不同分辨率下的图片 } else if (1024 < screenWidth && screenWidth < 1440) { width = "1200px"; imgURL = "1200.png"; } else { width = "980px"; imgURL = "980.png"; } obj.style.width=width ; obj.style.backgroundImage="url(" + imgURL + ")"; }) 五:移动端的自适应高度和宽度 移动端的相对要简单些,首先,在网页代码的头部,加入一行viewport标签。 <meta name=”viewport” content=”width=device-width, initial-scale=1″ /> viewport是网页默认的宽度和高度,上面的意思表示,网页的宽度默认等于设备屏幕的宽度,原始缩放比例为1,即网页初始大小占屏幕面积的100%。 1:由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要。具体说,CSS代码不能指定像素宽度:width:xxx px;只能指定百分比宽度:width: xx%;或者width:auto; 2:一般使用em,尽量少使用px字体 3:使用流动布局 4:自适应网页设计”的核心,就是CSS3引入的media query模块。下载地址: http://download.csdn.net/download/song_121292057/8031781 自动探测屏幕宽度,然后加载相应的CSS文件。 <link rel="stylesheet" type="text/css" media="screen and (max-device-width: 400px)" href="style.css" /> -------当屏幕小于400时,就加载style.css这个文件 5:除了用html标签加载CSS文件,还可以在现有CSS文件中加载。 @import url("style2.css") screen and (max-device-width: 800px);//当小于800px屏幕时,就加载style2.css文件 6:图片的自动缩放,比较简单。只要一行CSS代码:img{ max-width: 100%;}建议根据不同的屏幕分辨率,加载不同大小像素的图片。 移动端的自适应,大体上差不多就这么多,主要核心是利用mediaquery,根据不同的屏幕大小,实现不同的布局。代码可看上面的列子。这里不再重复写。

问问小秘 2020-05-12 18:08:22 0 浏览量 回答数 0

回答

Nginx.conf : user  oschina; worker_processes  2; #error_log  logs/error.log; #error_log  logs/error.log  notice; #error_log  logs/error.log  info; #pid        logs/nginx.pid; events {     use epoll;     worker_connections  2048; } 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  off;     access_log  logs/access.log;     client_header_timeout  3m;     client_body_timeout    3m;     send_timeout           3m;       client_header_buffer_size    1k;     large_client_header_buffers  4 4k;     sendfile        on;     tcp_nopush      on;     tcp_nodelay     on;     #keepalive_timeout  75 20;     include    gzip.conf;         server {     listen 80;     server_name .oschina.net;     location / {         rewrite (.*) http://www.oschina.net$1 permanent;     }     }     server {     listen 80;     server_name www.oschina.net my.oschina.net m.oschina.net;         log_format  oschina_log         '$remote_addr - $remote_user [$time_local] $request '         '"$status" $body_bytes_sent "$http_referer" '         '"$http_user_agent" "$http_x_forwarded_for"';         access_log  logs/oschina.log;     location ~ ^/(WEB-INF)/ {             deny all;         }         location ~ .(apk|torrent|htm|html|asp|php|gif|jpg|jpeg|png|bmp|ico|rar|css|js|zip|java|jar|txt|flv|swf|mid|doc|ppt|xls|pdf|txt|mp3|wma)$ {             root /data/oschina/webapp;         access_log off;             expires 24h;         }             location ~ ^/uploads/ {         access_log off;             root /data/oschina/webapp;         expires 24h;         }     location / {         proxy_pass http://localhost:8080;         include proxy.conf;     }     error_page 502 503 /502.html;         error_page 404 /404.html;     error_page 403 /403.html;     } } gzip.conf: gzip              on; gzip_min_length      1000; gzip_types         text/plain text/css application/x-javascript; proxy.conf: 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; client_max_body_size    10m; client_body_buffer_size 128k; proxy_connect_timeout   300; proxy_send_timeout      300; proxy_read_timeout      300; proxy_buffer_size       4k; proxy_buffers           4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k;######rewrite (.*) http://www.oschina.net$1 permanent; 这句的意思,是不是访问 http://localhost:8080/oschina 这样的后端 url ,会重定下到 http://localhost/oschina ?######老大回帖真够快的。。。 感谢,正好配一下######engine X与 Tomcat通讯是用8080端口进行 代理proxy是吗? 正则那里还没怎么看懂,看来还得看看engine x的资料补习补习######我也发扬一下风格,这里是我对apache和tomcat的配置: httpd.conf LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so #LoadModule auth_digest_module modules/mod_auth_digest.so #LoadModule authn_alias_module modules/mod_authn_alias.so #LoadModule authn_anon_module modules/mod_authn_anon.so #LoadModule authn_dbd_module modules/mod_authn_dbd.so #LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authn_file_module modules/mod_authn_file.so #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so #LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so #LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so #LoadModule cache_module modules/mod_cache.so #LoadModule cern_meta_module modules/mod_cern_meta.so LoadModule cgi_module modules/mod_cgi.so #LoadModule charset_lite_module modules/mod_charset_lite.so LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule dav_lock_module modules/mod_dav_lock.so #LoadModule dbd_module modules/mod_dbd.so #LoadModule deflate_module modules/mod_deflate.so LoadModule dir_module modules/mod_dir.so #LoadModule disk_cache_module modules/mod_disk_cache.so #LoadModule dumpio_module modules/mod_dumpio.so LoadModule env_module modules/mod_env.so #LoadModule expires_module modules/mod_expires.so #LoadModule ext_filter_module modules/mod_ext_filter.so #LoadModule file_cache_module modules/mod_file_cache.so #LoadModule filter_module modules/mod_filter.so #LoadModule headers_module modules/mod_headers.so #LoadModule ident_module modules/mod_ident.so #LoadModule imagemap_module modules/mod_imagemap.so LoadModule include_module modules/mod_include.so #LoadModule info_module modules/mod_info.so LoadModule isapi_module modules/mod_isapi.so #LoadModule ldap_module modules/mod_ldap.so #LoadModule logio_module modules/mod_logio.so LoadModule log_config_module modules/mod_log_config.so #LoadModule log_forensic_module modules/mod_log_forensic.so #LoadModule mem_cache_module modules/mod_mem_cache.so LoadModule mime_module modules/mod_mime.so #LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule setenvif_module modules/mod_setenvif.so #LoadModule speling_module modules/mod_speling.so #LoadModule ssl_module modules/mod_ssl.so #LoadModule status_module modules/mod_status.so #LoadModule substitute_module modules/mod_substitute.so #LoadModule unique_id_module modules/mod_unique_id.so   //mod_security 共同打开(下边配置中已经打开) #LoadModule userdir_module modules/mod_userdir.so #LoadModule usertrack_module modules/mod_usertrack.so #LoadModule version_module modules/mod_version.so #LoadModule vhost_alias_module modules/mod_vhost_alias.so #SVN Module conf LoadModule dav_svn_module "D:/Serv/Subversion/bin/mod_dav_svn.so" LoadModule authz_svn_module "D:/Serv/Subversion/bin/mod_authz_svn.so" #PHP Module conf LoadModule php5_module "D:/Serv/Apache/PHP/php5apache2_2.dll" PHPIniDir "D:/Serv/Apache/PHP/" #mod_security conf 2.5.12 LoadModule security2_module modules/mod_security2/mod_security2.so LoadModule unique_id_module modules/mod_unique_id.so SecRuleEngine On SecDefaultAction log,auditlog,deny,status:403,phase:2,t:lowercase,t:replaceNulls,t:compressWhitespace SecAuditEngine RelevantOnly SecAuditLogType Serial SecAuditLog logs/mod_security2.log #jk Module conf LoadModule jk_module modules/mod_jk.so Where to find workers.properties JkWorkersFile conf/worker.properties JkMountFile conf/uriworkermap.properties Where to put jk logs JkLogFile logs/mod_jk.log Set the jk log level [debug/error/info] JkLogLevel info Select the log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " JkOptions indicate to send SSL KEY SIZE, JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories JkRequestLogFormat set the request format JkRequestLogFormat "%w %V %T" <IfModule !mpm_netware_module> <IfModule !mpm_winnt_module> ServerName localhost DocumentRoot "D:/Serv/wwwroot/" <Directory "D:/Serv/wwwroot/cache/status">     Order allow,deny     Deny from all     #allow from 127.0.0.1 </Directory> <Location /svn>         DAV svn         SVNPath "D:/Serv/svnroot/" </Location> 后面部分无关紧要的就不贴了。 worker.properties的配置 #--- see following for detail    "http://tomcat.apache.org/connectors-doc/"   "http://tomcat.apache.org/connectors-doc/reference/workers.html"   #========server列表======== worker.list=controller,status #========controller,负载均衡控制器========   load-balance worker, can be "lb, status" worker.controller.type=lb worker.controller.balance_workers=tomcat1,tomcat2 如何选择最优的worker, B[usyness]: 选最不忙的, R[equest]: 缺省 worker.controller.method=B #ticky_session   sticky_session_force             含义     true             false            SESSION会复制,有粘性     true             true             SESSION不复制,有粘性     false            false            SESSION会复制,无粘性     false            true             SESSION会复制,无粘性 注意 worker.controller.sticky_session=1,等同于worker.controller.sticky_session=true.此处指定集群是否需要会话复制, #如果设为true,则表明为会话粘性,不进行会话复制,当某用户的请求第一次分发到哪台Tomcat后,后继的请求会一直分发到此 #Tomcat服务器上处理;如果设为false,则表明需求会话复制。这就是说,如果你要想进行均衡负载,并在192.168.1.5和192.168.1.3 #两台机器的Tomcat实例上实现集群全局session复制,此处值要设置成false。 #sticky_session 1: True, otherwise False, 相同session id一直访问同一服务器    #sticky_session_force session id出错状态不返回500(Server Error), 由另一worker接手    worker.controller.sticky_session=0 worker.controller.sticky_session_force=0 #worker.status.type=status #========tomcat1========    worker.tomcat1.port=8009 worker.tomcat1.host=localhost worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor=1 worker.tomcat1.socket_connect_timeout=3000 #========tomcat2======== #worker.tomcat2.port=8009 #worker.tomcat2.host=localhost #worker.tomcat2.type=ajp13 #worker.tomcat2.lbfactor=1 #worker.tomcat2.socket_connect_timeout=3000 worker.connection_pool_size=10 #默认值(connection_pool_size +1)/ 2 worker.connection_pool_minsize=5 worker.socket_timeout=1 worker.socket_connect_timeout=3000 uriworkermap.properties配置,设置转发规则 /.jsp=controller /.do=controller /blog/=controller /bbs/=controller /site/=controller  !/.html=controller  !/.gif=controller  !/.jpg=controller  !/*.png=controller  extra/httpd-mpm.conf 模块   上边一样的就不贴了,主要是下边的配置,因为我用了mod_security模块,所以要做一些配置,这里不做解释了,写的很详细,我比较喜欢在配置文件里把容易忘记的地方写上文档。毕竟这东西配完了就不再动了,很容易忘记 WinNT MPM ThreadsPerChild: constant number of worker threads in the server process MaxRequestsPerChild: maximum  number of requests a server process serves #注意:ThreadLimit指令应当放在ThreadsPerChild之前,否则ThreadsPerChild指令生效后ThreadLimit会失效,而导致不必要的错误 ThreadLimit必须大于等于ThreadsPerChild #对于mpm_winnt,ThreadLimit的默认值是1920;对于其他MPM这个值是64 #ThreadLimit 这个指令设置了每个子进程可配置的线程数ThreadsPerChild上限。任何在重启期间对这个指令的改变都将被忽略,但对ThreadsPerChild的修改却会生效。 #ThreadLimit 使用这个指令时要特别当心。如果将ThreadLimit设置成一个高出ThreadsPerChild实际需要很多的值,将会有过多的共享内存被分配。 #如果将ThreadLimit和ThreadsPerChild设置成超过系统的处理能力,Apache可能无法启动,或者系统将变得不稳定。该指令的值应当和ThreadsPerChild大致保持一致 #ThreadsPerChild 每个子进程建立的常驻的执行线程数。默认值是25。子进程在启动时建立这些线程后就不再建立新的线程了。 <IfModule mpm_winnt_module>     ThreadLimit            2000     ThreadsPerChild        2000     MaxRequestsPerChild    2000 </IfModule> ######当然由于日常使用windows的原因,因此apache的配置并不一定适合linux 这里是NT架构使用了线程,而linux一般都是使用进程。 以前研究过apache的文档,但老是看过以后就忘记了,用的时候还得继续看,比较恶心。######嘿, 因为 Nginx 就是 http 协议的反向代理, 所以不需要像 apache 那样还得来个 JK 如果是我那,就直接在 Nginx 上分辨, 是 PHP 就给 Apache, 是 jsp 就直接 tomcat 连 apache 的 JK 都省了。 但Session 粘贴问题的话,Nginx 的 第三方 session 功能好像暂时还是在测试阶段...除非只用 cookies 所以应用还得斟酌了.######受教了

kun坤 2020-06-04 11:06:34 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 SSL证书 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 2020中国云原生 阿里云云栖号