一、什么是Nginx?
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
二、为什么要用Nginx?
刚开始开发一个项目后,你可能只有一台服务器就能满足访问需求,可随着访问量越来越大,一台服务器开始吃不消,于是你决定使用多台服务器,开启多个服务来为用户提供访问,可这时你不得不面临一个问题:用户不可能同时去访问多台服务器,该如何让用户只管访问一个端口,就能去访问到不同的服务器呢?这时Ngnix就可以来帮你实现了。举个简单的例子,百度网站的服务器很多而且分布在不同的地方,但是用户只需要输入www.baidu.com就能访问到这个网站,其中的实现原理就体现了Ngnix的作用。
三、Nginx的功能
1.反向代理:就是代理服务器端,上面举的百度的例子就体现了反向代理。与之对应的还有一个正向代理,即代理客户端,比如VPN
2.负载均衡:每一台服务器的性能都各不相同,我们把性能高的服务器的权重调大,让它能被更多人访问,从而减少其它服务器的压力,这便是负载均衡。
4.动静分离:Nginx对网站的静态资源可以单独处理,从而提供访问效率。
5.iphash:可以解决多台服务器之间的session不共享的问题,但这样会影响性能,所以不推荐用,可以考虑用Redis来实现。
。。。。。。
四、Nginx的使用
安装:官网下载zip包,解压即可使用nginx newshttp://nginx.org/
常用命令:
windows:
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;
Linux:
查看版本
./nginx -v
启动
./nginx
关闭
./nginx -s stop
./nginx -s quit
重新加载nginx配置
./nginx -s reload
配置文件:nginx.conf配置文件分三部分组成
第一部分:全局块
从配置文件开始到 events 块之间,主要是设置一些影响 nginx 服务器整体运行的配置指令
可以做并发处理服务数量的配置,值越大,可以支持的并发处理量越多,但是会受到硬件、软件等设备的制约
第二部分:events 块
影响 nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 workprocess 下的网络连接进行序列化,是否允许同时接收多个网络连接等等
第三部分:http块(重要)
反向代理和负载均衡都在此配置
upstream lb{
//负载均衡配置
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:8081 weight=1;
}
location / {
//反向代理配置
proxy_pass http://lb;
}
注意:修改配置文件之后要重启一下Nginx,否则配置不会起效。
想深入学习Nginx,就得多使用它的配置文件。