nginx简单学习
1.nginx的安装
- .yum解决编译nginx所需的依赖包,之后你的nginx就不会报错了
- yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
- .安装配置nginx软件,下载源代码
- wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
- .解压缩源码,编译且安装
- tar -zxvf nginx-1.12..tar.gz
- 切换源码目录
- ./configure --prefix=/opt/nginx112/
- make && make install
- .进入nginx的工作目录
- cd /opt/ngin112/
- .查看gninx的工作目录
- [root@localhost nginx112]# ls
- conf 配置文件目录
- html 网页根目录,你的index.html就放在这里,然后通过域名访问 pythonav.cn/index.html html/index.html
- logs 日志
- sbin 存放nginx可执行命令的
- .定制自己的nginx网站
- 修改/opt/nginx112/html/index.html 这是nginx网页根文件,清空内容写入自己的html标签
- .启动nginx服务器
- /opt/nginx112/sbin/nginx 直接回车执行
- .检查nginx服务端口
- ps -ef|grep nginx
- .通过windows访问nginx web服务
- 浏览器 访问http://192.168.13.79
2.nigix.conf主配置文件学习
- worker_processes ; nginx工作进程数,根据cpu的核数定义
- events {
- worker_connections ; #连接数
- }
- top 然后按1 查看cpu核数
3.http区域块,定义nginx的核心web功能
- 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;
- sendfile on;
- #tcp_nopush on;
- #keepalive_timeout ;
- #保持长连接
- keepalive_timeout ;
- #支持图片 gif等等压缩,减少网络带宽
- gzip on;
- #这个server标签 控制着nginx的虚拟主机(web站点)
- server {
- # 定义nginx的入口端口是80端口
- listen ;
- # 填写域名,没有域名就写ip地址
- server_name www.s15rihan.com;
- # 定义编码
- charset utf-;
- # location定义网页的访问url
- #就代表 用户的请求 是 192.168.13.79/
- location / {
- #root参数定义网页根目录
- root html;
- #定义网页的首页文件,的名字的
- index index.html index.htm;
- }
- #定义错误页面,客户端的错误,就会返回40x系列错误码
- error_page /.html;
- #500系列错误代表后端代码出错
- error_page /50x.html;
- }
- #在另一个server{}的外面,写入新的虚拟主机2
- server{
- listen ;
- server_name www.s15oumei.com;
- location / {
- root /opt/myserver/oumei; #定义虚拟主机的网页根目录
- index index.html;
- }
- }
- }
- ######Nginx配置文件nginx.conf中文详解#####
- #定义Nginx运行的用户和用户组
- user www www;
- #nginx进程数,建议设置为等于CPU总核心数。
- worker_processes ;
- #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
- error_log /usr/local/nginx/logs/error.log info;
- #进程pid文件
- pid /usr/local/nginx/logs/nginx.pid;
- #指定进程可以打开的最大描述符:数目
- #工作模式与连接数上限
- #这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。
- #现在在linux .6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。
- #这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。
- worker_rlimit_nofile ;
- events
- {
- #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型
- #是Linux .6以上版本内核中的高性能网络I/O模型,linux建议epoll,如果跑在FreeBSD上面,就用kqueue模型。
- #补充说明:
- #与apache相类,nginx针对不同的操作系统,有不同的事件模型
- #A)标准事件模型
- #Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll
- #B)高效事件模型
- #Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。
- #Epoll:使用于Linux内核2.6版本及以后的系统。
- #/dev/poll:使用于Solaris /+,HP/UX 11.22+ (eventport),IRIX 6.5.+ 和 Tru64 UNIX .1A+。
- #Eventport:使用于Solaris 。 为了防止出现内核崩溃的问题, 有必要安装安全补丁。
- use epoll;
- #单个进程最大连接数(最大连接数=连接数*进程数)
- #根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为。
- worker_connections ;
- #keepalive超时时间。
- keepalive_timeout ;
- #客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。
- #分页大小可以用命令getconf PAGESIZE 取得。
- #[root@web001 ~]# getconf PAGESIZE
- #
- #但也有client_header_buffer_size超过4k的情况,但是client_header_buffer_size该值必须设置为“系统分页大小”的整倍数。
- client_header_buffer_size 4k;
- #这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。
- open_file_cache max= inactive=60s;
- #这个是指多长时间检查一次缓存的有效信息。
- #语法:open_file_cache_valid time 默认值:open_file_cache_valid 使用字段:http, server, location 这个指令指定了何时需要检查open_file_cache中缓存项目的有效信息.
- open_file_cache_valid 80s;
- #open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除。
- #语法:open_file_cache_min_uses number 默认值:open_file_cache_min_uses 使用字段:http, server, location 这个指令指定了在open_file_cache指令无效的参数中一定的时间范围内可以使用的最小文件数,如果使用更大的值,文件描述符在cache中总是打开状态.
- open_file_cache_min_uses ;
- #语法:open_file_cache_errors on | off 默认值:open_file_cache_errors off 使用字段:http, server, location 这个指令指定是否在搜索一个文件是记录cache错误.
- open_file_cache_errors on;
- }
- #设定http服务器,利用它的反向代理功能提供负载均衡支持
- http
- {
- #文件扩展名与文件类型映射表
- include mime.types;
- #默认文件类型
- default_type application/octet-stream;
- #默认编码
- #charset utf-;
- #服务器名字的hash表大小
- #保存服务器名字的hash表是由指令server_names_hash_max_size 和server_names_hash_bucket_size所控制的。参数hash bucket size总是等于hash表的大小,并且是一路处理器缓存大小的倍数。在减少了在内存中的存取次数后,使在处理器中加速查找hash表键值成为可能。如果hash bucket size等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为2。第一次是确定存储单元的地址,第二次是在存储单元中查找键 值。因此,如果Nginx给出需要增大hash max size 或 hash bucket size的提示,那么首要的是增大前一个参数的大小.
- server_names_hash_bucket_size ;
- #客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,一般一个请求的头部大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。
- client_header_buffer_size 32k;
- #客户请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取。
- large_client_header_buffers 64k;
- #设定通过nginx上传文件的大小
- client_max_body_size 8m;
- #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
- #sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime。
- sendfile on;
- #开启目录列表访问,合适下载服务器,默认关闭。
- autoindex on;
- #此选项允许或禁止使用socke的TCP_CORK的选项,此选项仅在使用sendfile的时候使用
- tcp_nopush on;
- tcp_nodelay on;
- #长连接超时时间,单位是秒
- keepalive_timeout ;
- #FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。下面参数看字面意思都能理解。
- fastcgi_connect_timeout ;
- fastcgi_send_timeout ;
- fastcgi_read_timeout ;
- fastcgi_buffer_size 64k;
- fastcgi_buffers 64k;
- fastcgi_busy_buffers_size 128k;
- fastcgi_temp_file_write_size 128k;
- #gzip模块设置
- gzip on; #开启gzip压缩输出
- gzip_min_length 1k; #最小压缩文件大小
- gzip_buffers 16k; #压缩缓冲区
- gzip_http_version 1.0; #压缩版本(默认1.,前端如果是squid2.5请使用1.)
- gzip_comp_level ; #压缩等级
- gzip_types text/plain application/x-javascript text/css application/xml; #压缩类型,默认就已经包含textml,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
- gzip_vary on;
- #开启限制IP连接数的时候需要使用
- #limit_zone crawler $binary_remote_addr 10m;
- #负载均衡配置
- upstream jh.w3cschool.cn {
- #upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。
- server 192.168.80.121: weight=;
- server 192.168.80.122: weight=;
- server 192.168.80.123: weight=;
- #nginx的upstream目前支持4种方式的分配
- #、轮询(默认)
- #每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
- #、weight
- #指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
- #例如:
- #upstream bakend {
- # server 192.168.0.14 weight=;
- # server 192.168.0.15 weight=;
- #}
- #、ip_hash
- #每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
- #例如:
- #upstream bakend {
- # ip_hash;
- # server 192.168.0.14:;
- # server 192.168.0.15:;
- #}
- #、fair(第三方)
- #按后端服务器的响应时间来分配请求,响应时间短的优先分配。
- #upstream backend {
- # server server1;
- # server server2;
- # fair;
- #}
- #、url_hash(第三方)
- #按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
- #例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
- #upstream backend {
- # server squid1:;
- # server squid2:;
- # hash $request_uri;
- # hash_method crc32;
- #}
- #tips:
- #upstream bakend{#定义负载均衡设备的Ip及设备状态}{
- # ip_hash;
- # server 127.0.0.1: down;
- # server 127.0.0.1: weight=;
- # server 127.0.0.1:;
- # server 127.0.0.1: backup;
- #}
- #在需要使用负载均衡的server中增加 proxy_pass http://bakend/;
- #每个设备的状态设置为:
- #.down表示单前的server暂时不参与负载
- #.weight为weight越大,负载的权重就越大。
- #.max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误
- #.fail_timeout:max_fails次失败后,暂停的时间。
- #.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
- #nginx支持同时设置多组的负载均衡,用来给不用的server来使用。
- #client_body_in_file_only设置为On 可以讲client post过来的数据记录到文件中用来做debug
- #client_body_temp_path设置记录文件的目录 可以设置最多3层目录
- #location对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡
- }
- #虚拟主机的配置
- server
- {
- #监听端口
- listen ;
- #域名可以有多个,用空格隔开
- server_name www.w3cschool.cn w3cschool.cn;
- index index.html index.htm index.php;
- root /data/www/w3cschool;
- #对******进行负载均衡
- location ~ .*.(php|php5)?$
- {
- fastcgi_pass 127.0.0.1:;
- fastcgi_index index.php;
- include fastcgi.conf;
- }
- #图片缓存时间设置
- location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
- {
- expires 10d;
- }
- #JS和CSS缓存时间设置
- location ~ .*.(js|css)?$
- {
- expires 1h;
- }
- #日志格式设定
- #$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
- #$remote_user:用来记录客户端用户名称;
- #$time_local: 用来记录访问时间与时区;
- #$request: 用来记录请求的url与http协议;
- #$status: 用来记录请求状态;成功是200,
- #$body_bytes_sent :记录发送给客户端文件主体内容大小;
- #$http_referer:用来记录从那个页面链接访问过来的;
- #$http_user_agent:记录客户浏览器的相关信息;
- #通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。
- log_format access '$remote_addr - $remote_user [$time_local] "$request" '
- '$status $body_bytes_sent "$http_referer" '
- '"$http_user_agent" $http_x_forwarded_for';
- #定义本虚拟主机的访问日志
- access_log /usr/local/nginx/logs/host.access.log main;
- access_log /usr/local/nginx/logs/host.access..log log404;
- #对 "/" 启用反向代理
- location / {
- proxy_pass http://127.0.0.1:88;
- proxy_redirect off;
- proxy_set_header X-Real-IP $remote_addr;
- #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- #以下是一些反向代理的配置,可选。
- proxy_set_header Host $host;
- #允许客户端请求的最大单文件字节数
- client_max_body_size 10m;
- #缓冲区代理缓冲用户端请求的最大字节数,
- #如果把它设置为比较大的数值,例如256k,那么,无论使用firefox还是IE浏览器,来提交任意小于256k的图片,都很正常。如果注释该指令,使用默认的client_body_buffer_size设置,也就是操作系统页面大小的两倍,8k或者16k,问题就出现了。
- #无论使用firefox4.0还是IE8.,提交一个比较大,200k左右的图片,都返回500 Internal Server Error错误
- client_body_buffer_size 128k;
- #表示使nginx阻止HTTP应答代码为400或者更高的应答。
- proxy_intercept_errors on;
- #后端服务器连接的超时时间_发起握手等候响应超时时间
- #nginx跟后端服务器连接超时时间(代理连接超时)
- proxy_connect_timeout ;
- #后端服务器数据回传时间(代理发送超时)
- #后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
- proxy_send_timeout ;
- #连接成功后,后端服务器响应时间(代理接收超时)
- #连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)
- proxy_read_timeout ;
- #设置代理服务器(nginx)保存用户头信息的缓冲区大小
- #设置从被代理服务器读取的第一部分应答的缓冲区大小,通常情况下这部分应答中包含一个小的应答头,默认情况下这个值的大小为指令proxy_buffers中指定的一个缓冲区的大小,不过可以将其设置为更小
- proxy_buffer_size 4k;
- #proxy_buffers缓冲区,网页平均在32k以下的设置
- #设置用于读取应答(来自被代理服务器)的缓冲区数目和大小,默认情况也为分页大小,根据操作系统的不同可能是4k或者8k
- proxy_buffers 32k;
- #高负荷下缓冲大小(proxy_buffers*)
- proxy_busy_buffers_size 64k;
- #设置在写入proxy_temp_path时数据的大小,预防一个工作进程在传递文件时阻塞太长
- #设定缓存文件夹大小,大于这个值,将从upstream服务器传
- proxy_temp_file_write_size 64k;
- }
- #设定查看Nginx状态的地址
- location /NginxStatus {
- stub_status on;
- access_log on;
- auth_basic "NginxStatus";
- auth_basic_user_file confpasswd;
- #htpasswd文件的内容可以用apache提供的htpasswd工具来产生。
- }
- #本地动静分离反向代理配置
- #所有jsp的页面均交由tomcat或resin处理
- location ~ .(jsp|jspx|do)?$ {
- 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_pass http://127.0.0.1:8080;
- }
- #所有静态文件由nginx直接读取不经过tomcat或resin
- location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|
- pdf|xls|mp3|wma)$
- {
- expires 15d;
- }
- location ~ .*.(js|css)?$
- {
- expires 1h;
- }
- }
- }
- ######Nginx配置文件nginx.conf中文详解#####
nginx配置文件详解
3.准备两个虚拟机主机的网页根目录内容
- [root@localhost myserver]# tree /opt/myserver/
- /opt/myserver/
- ├── oumei
- │ └── index.html 写入自己的内容
- └── rihan
- └── index.html 写入自己的内容
4.修改windows本地的测试域名C:\Windows\System32\drivers\etc\hosts文件写下如下内容
- 192.168.13.79 www.s15rihan.com
- 192.168.13.79 www.s15oumei.com 如果有服务器可以用自己的域名
5.nginx的访问日志功能
- .开启nginx.conf中的日志参数
- 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;
- .检查access.log的日志信息
- tail -f access.log
6.nginx的拒绝访问功能
- nginx的拒绝访问功能
- .在nginx.conf中,添加参数
- 在server{}虚拟主机标签中,找到location 然后添加参数
- #当赵一宁访问 192.168.13.79/ 的时候
- location / {
- #拒绝参数是 deny
- #deny 写你想拒绝的IP地址
- #deny还支持拒绝一整个网站 192.168.13.0/
- deny 192.168.13.33;
- root /opt/myserver/rihan;
- index index.html;
- }
7.nginx的错误页面优化
- .修改nginx.conf 中的配置参数
- 这个s1540x.html存在 虚拟主机定义的网页根目录下
- error_page /s1540x.html;
8.nginx的反向代理
- .实验环境准备
- 准备2个服务器,都安装好nginx软件
- nginx1 192.168.13.79 作为web服务器 (理解为火车票售票点)
- nginx2 192.168.13.24 作为反向代理服务器 (黄牛)
- 用户 通过浏览器去访问 黄牛 (代理)
- 浏览器 访问 192.168.13.24 > 192.168.13.79
- .在反向代理服务器中添加配置
- location / {
- proxy_pass http://192.168.13.63; 加上这个就可以
- #root html;
- #index index.html index.htm;
- }
9.nginx负载均衡
- 集群的概念:一堆服务器做一件事
- .实验准备
- 准备三台计算机
- nginx1 192.168.13.121 作为nginx负载均衡器 只要我访问这个负载均衡器,查看页面的结果,到底是来自于
- nginx2 192.168.13.24 web服务,提供一个页面
- nginx3 192.168.13.79 web服务,提供一个页面
- .先配置两个nginx web页面
- 192.168.13.24 准备一个 index.html 写入 你好,我是192.168.13.24机器
- 192.168.13.79 准备一个 index.html 写入 老了老弟,我是192.168.13.
- 然后启动两个nginx web 服务
- .准备一个nginx负载均衡器 192.168..121机器上,修改nginx.conf
- 写入如下内容
- 定义一个负载均衡池,负载均衡的算法有
- 调度算法 概述
- 轮询 按时间顺序逐一分配到不同的后端服务器(默认)
- weight 加权轮询,weight值越大,分配到的访问几率越高
- ip_hash 每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
- url_hash 按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
- least_conn 最少链接数,那个机器链接数少就分发
- .轮询(不做配置,默认轮询)
- .weight权重(优先级)
- .ip_hash配置,根据客户端ip哈希分配,不能和weight一起用
- upstream s15webserver {
- ip_hash;
- server 192.168.13.79 ;
- server 192.168.13.24 ;
- }
- 然后在虚拟主机中添加 反向代理配置,将用户的请求,直接转发给 负载均衡池中的服务器
- server {
- listen ;
- #当我的请求来自于 192.168..121时,走这>个虚拟主机
- server_name 192.168.13.121;
- #charset koi8-r;
- #access_log logs/host.access.log main;
- #核心配置,就在这,一条proxy_psss参数即可
- location / {
- proxy_pass http://s15webserver;
- #root html;
- #index index.html index.htm;
- }
- }
- .启动负载均衡器的 nginx服务
- .在客户端windows中测试访问,负载均衡器 192.168.13.121 ,查看请求分发的结果
nginx简单学习的更多相关文章
- nginx简单学习(tomcat)
一.负载均衡的简单配置 1.下载nginx 2.tomcat*2 配置不同的端口用于正常启动,在jsp中<%= session.getId()%>可以查看jSessionId,tomcat ...
- Linux yum的配置 , python环境管理, nginx搭建简单学习
Linux yum的配置 , python环境管理, nginx搭建简单学习 一丶配置yum的数据仓库 ### yum 工具, 方便,自行解决软件之间的依赖关系. # 配置yum源仓库 (可以使用,清 ...
- Nginx 入门学习教程
昨天听一个前同事说他们公司老大让他去研究下关于Nginx 方面的知识,我想了下Nginx 在如今的开发技术栈中应该会很大可能会用到,所以写篇博文记录总结下官网学习教程吧. 1. 什么是Nginx? 我 ...
- Windows 下 Docker 的简单学习使用过程之一 dockertoolbox
1. Windows 下面运行 Docker 的两个主要工具1): Docker for Windows2): DockerToolbox区别:Docker For Windows 可以理解为是新一代 ...
- 负载均衡介绍及Nginx简单实现
负载均衡介绍及Nginx简单实现 负载均衡 负载均衡介绍及Nginx简单实现 1. 介绍 2. 常用的开源软件 2.1 LVS 优点 缺点 2.2 Nginx 优点 缺点 3. 常用的开源反向代理软件 ...
- Laravel 5.1 简单学习
Laravel 5.1 简单学习 (1)Laravel的nginx配置,不配置或者配置错误,可能会报404或500错误,访问不到页面. location / { try_files $uri $uri ...
- 一篇文章带你了解轻量级Web服务器——Nginx简单入门
一篇文章带你了解轻量级Web服务器--Nginx简单入门 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器 在本篇中我们会简单介绍Nginx的特点,安装,相关指令使用以及配置信 ...
- Log4j简单学习笔记
log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常 ...
- Nginx 简单的负载均衡配置示例(转载)
原文地址:Nginx 简单的负载均衡配置示例(转载) 作者:水中游于 www.s135.com 和 blog.s135.com 域名均指向 Nginx 所在的服务器IP. 用户访问http://www ...
随机推荐
- [LeetCode] 549. Binary Tree Longest Consecutive Sequence II 二叉树最长连续序列之 II
Given a binary tree, you need to find the length of Longest Consecutive Path in Binary Tree. Especia ...
- python 可变数据类型 和 不可变数据类型
在 python 中,类型属于对象,变量是没有类型的: a=[1,2,3] a="Runoob"以上代码中,[1,2,3] 是 List 类型,"Runoob" ...
- elasticsearch 管理常用命令集合
elasticsearch rest api遵循的格式为: curl -X<REST Verb> <Node>:<Port>/<Index>/<T ...
- SpringBoot系列教程web篇之如何自定义参数解析器
title: 190831-SpringBoot系列教程web篇之如何自定义参数解析器 banner: /spring-blog/imgs/190831/logo.jpg tags: 请求参数 cat ...
- python3 turtle
一.turtle 1.操控画笔画图,turtle相当于笔头(x头?),有方向 2.https://docs.python.org/3.6/library/turtle.html 二.移动和绘制 imp ...
- P3275 [SCOI2011]糖果 题解
一道差分约束的模板题. 题目 题意:n个人每个人至少一个糖果,另外要满足k个不等式,求最少糖果数. 差分约束系统 给定一组不等式 $ x[i]-x[j]<=c[k] $ (或 $ x[i]-x[ ...
- Linux命令sort和uniq 的基本使用
uniq 123.txt 去除连续重复uniq -u 123.txt 保留唯一uniq -c 123.txt 去重并计算出现的个数sort -n 123.txt | uniq -c 排序后去重s ...
- 少儿编程|Scratch编程教程系列合集,总有一款适合你
如果觉得资源不错,友情转发,贵在分享!!! 少儿编程Scratch: 少儿编程Scratch第一讲:Scratch完美的初体验少儿编程Scratch第二讲:奇妙的接球小游戏少儿编程Scratch第三讲 ...
- RabbitMQ延迟消息队列实现定时任务完整代码示例
- Delphi调用爷爷类的方法(自己构建一个procedure of Object)
Delphi通过inherited 可以调用父类的方法,但是没有提供直接调用父类的父类的方法(爷爷类),通过变通的方式实现如下: 假设父类是TFather,爷爷类TGrand,调用爷爷类的Write方 ...