nginx学习心得

nginx是什么:

        nginx是一个高性能的HTTP和反向代理服务器,也可以作为电子邮件的代理服务器。在高连接并发的情况下,Nginx是Apache服务器不错的替代品,能够支持高达 50,000 个并发连接数的响应。Nginx对静态资源的处理非常好,动态的处理我们可以交给Tomcat。


nginx工作原理:

        nginx启动之后,后台会运行master和多个worker进程。nginx支持多线程也支持多进程,但是默认是多进程的方式。
        master进程主要是用来管理worker进程,包括接收来自外界的信号、向各worker进程发送信号、监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。
        Worker进程则是处理基本的网络事件。多个worker之间是平等的,他们同等争取来自客户端的请求,各个进程之间是相互独立的,但是一个请求只能在一个worker进程中进行处理。
        Worker的进程的个数是可以设置的(worker_processes属性),一般为当前机器总cpu核心数,这样可以减少上下文切换带来的资源消耗。在Linux操作系统上,worker进程还可以绑定cpu,将某一个worker进程绑定到一个cpu的核上,这样就不会造成进程切换导致的cache的失效。
Nginx采用异步非阻塞的方式,不需要创建线程,每个请求只占用少量的内存,大概10M左右,没有上下文切换,事件处理非常轻便。


nginx的 CPU参数worker_processes和worker_cpu_affinity使用说明:

        worker_processes指明了nginx要开启的进程数,据官方说法,一般开一个就够了,多开几个,可以减少机器io带来的影响,一般为当前机器总cpu核心数。
如果我们的cpu为4核,怎么用数字代表我的cpu编号呢?根据cpu的核数,设置几位数字,可以第一位代表第一个cpu,第二位代表第二个cpu,其中用数字1代表使用。我的四核cpu我可以表示为0001,0010,0100,1000。
        nginx支持Linux操作系统、windows操作系统,具有跨平台特性,但是有些属性只有在Linux下才具有,比如:worker_cpu_affinity。


nginx常用的命令:

启动nginx:start nginx
停止nginx:nginx –s stop 或者nginx –s quit。stop与quit参数的区别在于stop是快速停止nginx,可能并不保存相关信息,quit是完整有序的停止nginx,并保存相关信息
测试nginx:nginx –t
重载nginx:nginx –s reload,修改nginx的配置文件之后,不需要关闭重新启动,直接使用这个命令就可以重新加载最新的配置信息
重新打开日志文件:nginx –s reopen


nginx做负载均衡服务器:

需求:在两个tomcat中部署相同的项目,tomcat中项目访问端口分别是8001和8002,以下是配置文件:

upstream site{
	server 192.168.3.10:8001 weight=2;
	server 192.168.3.20:8002 weight=1;
}

server {
	listen 80;
	server_name 192.168.3.96;
	location /{
		root jsp;
		index index.jsp ;
		proxy_pass http://site
	}
}


属性说明:
1) proxy_pass:转发路径,接收到请求之后,转发请求到哪里的路径
2) server里面的server_name:这里可以是域名,可以是ip地址,这个是外部客户端访问的地址,其中listen是指我们访问这个server_name服务器的时候,监听的服务器端口。如果server_name有多个域名,用空格隔开就可以。这里支持正则表达式的写法。
3) upstream:我们转发的地址的组合
4) weight:代表转发地址的访问权重,数值越大,权重越大,承担的压力越大。

不同域名映射同一台服务器,共享80端口,怎么根据访问域名的不同访问不同的程序:

设置server代码块即可,例如下面的配置文件,域名分别是yuming1.com和yuming2.com

server {
        listen       80;
        server_name  yuming1.com;
	proxy_set_header    Host $host;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
	location / {
            index       index.jsp;
            proxy_pass  http://localhost:8001;
	    proxy_intercept_errors on;
            proxy_redirect      off;
            client_max_body_size    65m;
            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;
        }
        #error_page  404 = 404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}
server {
        listen       80;
        server_name  yuming2.com;       
	proxy_set_header    Host $host;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
	location / {
            index       index.jsp;
            proxy_pass  http://localhost:8002;
	    proxy_intercept_errors on;
            proxy_redirect      off;
            client_max_body_size    65m;
            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;
        }
        #error_page  404 = 404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值