Nginx初探

1.Nginx简介

Nginx ("engine x") 是一个高性能的HTTP反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的。

何为反向代理呢?即以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

而Nginx主要完成的工作就是反向代理,比如我们向一台服务器的80端口发送了请求,该请求首先由Nginx监听到,其接受到请求内容后再转发给其他服务器,其他服务器处理完后再将结果传送给Nginx,最后由Nginx来统一返回给初始请求端。

Nginx最常见的使用方法就是作为静态资源服务器,比如将CSS,JS,html,htm等文件进行缓存处理。

2.环境搭建

2.1,首先在官网中下载所需版本:http://nginx.org/en/download.html

下载完毕后,解压

2.2,启动Nginx,开启Nginx有两种方法:一种是直接点击exe可执行文件开启;一种是命名行开启,命令如下

start nginx  启动nginx
nginx -s reload  修改配置后重新加载生效
nginx -s reopen  重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确

关闭nginx:
nginx -s stop  快速停止nginx
nginx -s quit  完整有序的停止nginx

2.各个参数含义解释


#user  nobody;
worker_processes  1;
error_log  logs/error.log debug;  #制定日志路径,级别

events {
	accept_mutex on;  #设置网路连接序列化,防止惊群现象发生,默认为on
    multi_accept on;  #设置一个进程是否同时接受多个网络连接
    worker_connections  1024;  #最大连接数
}

http {
    include  mime.types;
    default_type  application/octet-stream;
	upstream myserver {
      server localhost:8080 weight=5;
      server localhost:8090 backup;  #热备
    }
    server {
        listen  8443;
        server_name  localhost;
        location / {
            root  html;  #页面根目录
            index  index.html index.htm;  #默认页
            proxy_pass  http://myserver;  #请求转向自定义的服务器列表
        }
		#server error pages to the static page /50x.html
        error_page  500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

①,backup指令

upstream  proxyserver { 
        server   localhost:8080; 
        server   192.168.1.15:8080 backup; 
} 

只要在希望成为后备的服务器ip后面多添加一个backup参数,这台服务器就会成为备份服务器。 在平时不使用,nginx不会给它转发任何请求。只有当其他节点全部无法连接的时候,nginx才会启用这个节点。 一旦有可用的节点恢复服务,该节点则不再使用,又进入后备状态。

可以两台机子互为热备,平时各自负责各自的服务。在做上线更新的时候,关闭一台服务器的tomcat后,nginx自动把流量切换到另外一台服务的后备机子上,从而实现无痛更新,保持服务的持续性,提高服务的可靠性

②,root指令

location /img/ {
    alias /var/www/image/;
}

若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件

location /img/ {
    root /var/www/image;
}
若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件。

alias是一个目录别名的定义,root则是最上层目录的定义。

*还有一个重要的区别是alias后面必须要用"/"结束,否则会找不到文件,而root则可有可无。

③,accept_mutex指令

events { 
    accept_mutex off; 
} 

让我们看看accept_mutex的意义:当一个新连接到达时,如果激活了accept_mutex,那么多个Worker将以串行方式来处理,其中有一个Worker会被唤醒,其他的Worker继续保持休眠状态;如果没有激活accept_mutex,那么所有的Worker都会被唤醒,不过只有一个Worker能获取新连接,其它的Worker会重新进入休眠状态,这就是「惊群问题」。

Nginx缺省激活了accept_mutex,是一种保守的选择。如果关闭了它,可能会引起一定程度的惊群问题,表现为上下文切换增多(sar -w)或者负载上升,但是如果你的网站访问量比较大,为了系统的吞吐量,我还是建议大家关闭它。

④,ip_hash指令

原理是ip_hash技术能够将某个ip的请求定向到同一台服务器,这样一来这个ip下的客户端就能和后端某个服务器建立起稳固的session。

参考博客:

https://hillside.iteye.com/blog/703281

https://blog.youkuaiyun.com/bjash/article/details/8596538

https://blog.youkuaiyun.com/adams_wu/article/details/51669203

https://blog.youkuaiyun.com/hjgzj/article/details/45222223

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值