CSS中margin和padding的区别
CSS中margin和padding有以下三方面区别。
在CSS中margin是指从自身边框到另一个容器边框之间的距离,就是容器外距离。在CSS中padding是指自身边框到自身内部另一个容器边框之间的距离,就是容器内距离。
1、语法结构。
padding:
padding-left:10px; 左内边距、padding-right:10px; 右内边距、padding-top:10px; 上内边距、padding-bottom:10px; 下内边距。
margin:margin-left:10px; 左外边距、margin-right:10px; 右外边距、margin-top:10px; 上外边距、margin-bottom:10px; 下外边距。-margin
2、可能取的值。
padding:length规定具体单位记的内边距长度、%基于父元素的宽度的内边距的长度、auto浏览器计算内边距、inherit 规定应该从父元素继承内边距。
margin:length 规定具体单位记的外边距长度、%基于父元素的宽度的外边距的长度、auto浏览器计算外边距、inherit 规定应该从父元素继承外边距。
3、浏览器兼容问题。
padding:所有浏览器都支持padding属性、任何版本IE都不支持属性值“inherit”。
margin:所有浏览器都支持margin属性、任何版本IE都不支持属性值“inherit”。
线程的创建与撤销
CreateThread、ExitThread和C run time线程函数(需要包含头文件#include 《process.h》) 。建议用C run time函数_beginthreadex或者是_beginthread函数创建,比MFC的安全,C运行时库里的函数的线程应该使用_beginthread和_endthread这些C运行时函数来管理线程。
这里稍微区别:
(1):_beginthread函数的线程入口函数必须使用_cdecl调用约定。_beginthreadex函数的线程入口函数必须使用_stdcall调用约定
(2):_endthread将会自动的关闭线程句柄,然而_beginthreadex不会,需要使用CloseHandle现实的关闭句柄。所以_beginthreadex函数可以使用WaitForSingleObject函数来获取线程对象来进行同步。
(3):_endthread将会自动的关闭线程句柄,然而_beginthreadex不会,需要使用CloseHandle现实的关闭句柄。所以_beginthreadex函数可以使用WaitForSingleObject函数来获取线程对象来进行同步。
(4):一个连接Libcmt.lib的可执行文件,不要调用ExitThread函数,这个函数会阻止系统的运行时回收已分配的资源。使用_endthread and _endthreadex可以回收已分配的资源然后再调用ExitThread。
(5):对于使用C运行时库里的函数的线程应该使用_beginthread和_endthread这些C运行时函数来管理线程,而不是使用CreateThread和ExitThread。否则,当调用ExitThread后,可能引发内存泄露。
好像就这些吧!参考一下!
-gin
windows版nginx怎样配置负载均衡
一、 下载Nginx(nginx-1.5.8.zip)
解压到D:/serve目录下
双击运行nginx.exe,屏幕一闪而过或者在DOS里面敲打命令,如图所示:
可以看到屏幕一闪而过,接下来测试一下是否安装启动成功;
在任务管理器的进程中查看nginx.exe是否启动
若看到该映像名称,证明nginx程序已经启动成功!
这时我们就可以在浏览器中访问:
Nginx配置文件完成如下:
#使用的用户和组,window下不指定
#user nobody;
#指定工作衍生进程数(一般等于CPU总和数或总和数的两倍,例如两个四核CPU,则总和数为8)
worker_processes 1;
#指定错误日志文件存放路径,错误日志级别可选项为【debug|info|notice|warn|error|crit】
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#指定pid存放路径
#pid logs/nginx.pid;
#工作模式及连接数上限
events {
#使用网络I/O模型,Linux系统推荐使用epoll模型,FreeBSD系统推荐使用kqueue;window下不指定
#允许的连接数
#user epoll;
worker_connections 100;
}
#设定http服务器,利用他的反向代理功能提供负载均衡支持
http {
#设定mime类型
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“’;
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
access_log logs/access.log main;
#设定access log
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
#keepalive_timeout 0;
keepalive_timeout 65;
#开启gzip模块
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain application/x-javascript text/css application/xml;
output_buffers 1 32k;
postpone_output 1460;
server_names_hash_bucket_size 128;
client_max_body_size 8m;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_vary on;
#设定负载均衡的服务器列表
upstream localhost {
#设定负载均衡的服务器列表
#ip_hash;
#同一机器在多网情况下,路由切换,ip可能不同 #weigth参数表示权值,权值越高被分配到的几率越大
server 192.168.101.222:8088 max_fails=2 fail_timeout=600s;
server 192.168.101.5:8081 max_fails=2 fail_timeout=600s;
}
#设定虚拟主机
server {
listen 80;
server_name localhost;
charset UTF-8;
#设定本虚拟主机的访问日志
access_log logs/host.access.log main;
#对 “/“ 启用负载均衡
location / {
root \\192.168.101.222\D:\web\apache-tomcat-6.0.37\webapps;
index index.html index.htm index.aspx;
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 12;
#连接成功后 等待后端服务器响应时间 其实已进入后端的排队之中等候处理
proxy_read_timeout 90;
#代理请求缓存区 这个缓存区间会保存用户的头信息一共Nginx进行规则处理 一般只要能保存下头信息即可
proxy_send_timeout 90;
#同上 告诉Nginx保存单个用的几个Buffer最大用多大空间
proxy_buffer_size 4k;
proxy_buffers 4 32k;
#如果系统很忙的时候可以申请国内各大的proxy_buffers 官方推荐 *2
proxy_busy_buffers_size 64k;
#proxy 缓存临时文件的大小
proxy_temp_file_write_size 64k;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_max_temp_file_size 128m;
proxy_pass http://localhost;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
四、测试
前提是分别启动两台机器的tomcat,其次启动nginx服务;
在192.168.101.23上访问nginx服务器(通过访问(项目路径)来实现对192.168.101.222和192.168.101.5这两个机器上应用程序的访问,最终实现tomcat的均衡负载)
关闭192.168.101.222上的tomcat服务,访问192.168.101.23上的nginx服务,观察192.168.101.5上的tomcat是否运行;
关闭192.168.101.5上的tomcat服务,访问192.168.101.23上的nginx服务,观察192.168.101.222上的tomcat是否运行;
两个tomcat都启动,访问nginx服务,模拟并发用户n个,观察tomcat的运行情况;
如果和的tomcat都运行就说明搭建nginx代理服务成功,tomcat实现了均衡负载;
-margin