Nginx笔记
1.Nginx简介
概念:nginx是一个高性能的Web服务器和反向代理服务器,也可作为邮件代理服务器。
特点:占用内存少,并发处理能力强,免费开源的。
同类服务器:Apache,Lighttpd(lighty),Tengine等。
使用集团:淘宝,新浪,搜狐,网易,美团等。
反向代理图解:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fGehzCcx-1652704046201)(D:\SSMFramework\分布式\Nginx\picture\Nginx图解.png)]
下载地址:http://nginx.org
一般情况下,99%的nginx服务器需在linux操作系统下运行。
2.正反向代理
正向代理图解:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-klh7YN3k-1652704046203)(D:\SSMFramework\分布式\Nginx\note\正向代理.png)]
反向代理图解:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vAl92TIk-1652704046205)(D:\SSMFramework\分布式\Nginx\note\反向代理.png)]
总结:正向代理代理客户端,反向代理代理服务器端。
反向代理中整个过程中用户可能并不知道有反向代理服务器的存在,其服务器被封装起来了。
3.负载均衡
轮询:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IZE5wFJ9-1652704046206)(D:\SSMFramework\分布式\Nginx\note\轮询.png)]
加权轮询:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6tH59pKY-1652704046207)(D:\SSMFramework\分布式\Nginx\note\加权轮询.png)]
处理固定请求:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VPIzO7Qm-1652704046207)(D:\SSMFramework\分布式\Nginx\note\处理固定请求.png)]
动静分离:
动静分离,在我们的软件开发中,有些请求是需要后台处理的,有些请求是不需要经过后台处理的(如:css、html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件。让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。
※nginx的三大特点:反向代理,负载均衡,动静分离。
4.linux下nginx的安装
下载步骤:
进入官网下载nginx压缩包tar.gz。
解压后找到配置文件和启动命令文件。
进入目录,使用 ./configure
命令执行文件,再使用make命令。完成后进入sbin目录下,执行./nginx
就算执行成功了。
再浏览器中浏览 http://localhost:80 检测是否开启成功。
常用命令:
cd /usr/local/nginx/sbin/
ps aux | grep nginx # 查看nginx进程
ps -ef|grep nginx # 查看ngnix的进程
./nginx -v #查看nginx的版本
./nginx -t #检查nginx的配置文件是否正确
./nginx # 启动
# 记得设置防火墙
./nginx -s stop # 停止
./nginx -s quit # 安全退出
./nginx -s reload # 重新加载配置文件
#为了使更方便访问nginx,可将其配置到环境变量中,在 /etc/profile下的PATH中追加 “/usr/local/nginx/sbin/”
5.Nginx实例应用
1.部署静态资源
相对于Tomcat,Nginx处理静态资源的能力更加高效,所以生产环境下,都会将静态资源部署到Nginx中。部署方法只需要将文件复制到Nginx安装目录下的html目录即可。并修改配置文件参数即可。
2.反向代理实例
实际应用:
准备工作:准备两台服务器,一台作为nginx反向代理服务器,另一台为java程序的服务器。
配置反向代理:
在nginx服务器中的配置文件中:
# 配置反向代理
server{
listen 80;
server_name localhost;
location / {
#反向代理服务,将请求转发至8080
proxy_pass http://192.168.xxx.xxx:8080;
}
}
3.负载均衡实例
配置负载均衡:
upstream targetserver{
#upstream指令可以定义一组服务器
server 192.168.xxx.xxx:8080;
server 192.168.xxx.xxx:8081;
#可设置权重,权重默认为1
server 192.168.xxx.xxx:8082 weight=5;
}
server{
listen 8080;
server_name localhost;
location / {
# 轮询机制调取具体服务器
proxy_pass http://targetserver;
}
}