为什么要使用Nginx
公司产品出现瓶颈
公司产品刚上线并发量比较小,用户比较少,在低并发的情况下,一个jar包启动完全足够,在用tomcat返回(类似下面)
慢慢的公司随着规模变大之后用户多了,并发量大了一个服务器满足不了我们的需求之后
由于我们横向扩展,又增加了服务器,这个时候几个项目启动在不同的服务器上,用户访问就需要添加一个代理服务器
什么是Nginx
Nginx (enginex[是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Ramblerru站点(俄文: PaM6nep)开发的,第一个公开版本0.1.0发布于2004年10月4日,2011年6月1日,nginx 1.0.4发布。
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。 Nginx是一个安装非常的简单、配置文件非常简洁(还能够支持peri语法)、Bug非常少的服务。Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。
你还能够不间断服务的情况下进行软件版本的升级。 Nginx代码完全用C语言从头写成。官方数据测试表明能够支持高达50,000个并发连接数的响应。
Nginx作用?
Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理
正向代理
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率类似于跳板机,VPN
反向代理
Nginx
Nginx提供的负载均衡有两种:内置策略和扩展策略,内置策略为轮询,加权轮询,IP hash,扩展策略,只有你想不到没有他做不到
轮询
加权轮询
IPhash对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
动静分离
在我们的一个软件开发中,有些请求需要后台处理的,有些不需要比如(css,html,jpg,js)等这些不需要在后台处理的属于静态文件,让动态网站里面的动态网页根据一定规则把不变的资源和经常变的资源区分开来,分开以后我们根据静态资源的特点做缓存处理,提高资源响应速度
目前,通过nginx大大提升我们的网站响应速度,优化用户的体验
Nginx安装
Windows安装
链接:百度网盘 请输入提取码 提取码:dqph
下载1.6.1稳定版本解压后如下
运行nginx
首先Nginx是有一个默认80端口在我们的conf/nginx.conf文件中可以看到
我们不建议使用exe直接打开因为会一闪而过
直接在目录下cmd进入目录打开我们的nginx.exe他不会有输出的我们去浏览器看是否运行成功
在浏览器输入localhost就可以访问因为http默认端口也是80
如果在Windows想要关闭我们的Nginx的话退出我们的cmd窗口我们是关不掉的
重新在目录下进入cmd输入我们的指令
nginx -s stop (快速停止nginx) 或 nginx -s quit (完整有序的停止nginx)
使用taskkill
taskkill /f /t /im nginx.exe taskkill是用来终止进程的, /f是强制终止 . /t终止指定的进程和任何由此启动的子进程。 /im示指定的进程名称 .
以上就是Windows安装Nginx的教程
Linux安装Nginx
链接:百度网盘 请输入提取码 提取码:dqph
下载我们安装包之后进入到我们的Linux当中
创建nginx目录
我们还是一样在我们的/usr/local/下创建我们的Nginx包
mkdir nginx
解压nginx
上传到我们的nginx目录并进行解压
tar -zxvf [包名]
解压之后进入到我们的一个nginx-1.18.0目录下
执行自动配置文件
这里可以看到有一个绿色的文件我们执行一下
./configure
执行完之后我们在make一下
make
执行完在执行我们的makeinstarll确认一下
make install
之后查看我们安装路径
whereis nginx
进入我们查看的安装目录下可以看到一个sbin目录(sbin)是执行文件夹
执行nginx
之后进入我们的一个sbin目录执行我们的nginx
之后我们要进行一个端口设置查看端口是否开放
firewall-cmd --query-port=80/tcp
查看我们80端口是否开放
可以看到我的端口没有开放外面访问不到(开发80端口)
firewall-cmd --permanent --add-port=80/tcp
修改配置之后要重启防火墙
firewall-cmd --reload
我们在Windows查看是否能够运行
Nginx常用命令
cd /usr/local/nginx/sbin/ ./nginx 启动 ./nginx -s stop 停止 ./nginx -s quit 安全退出 ./nginx -s reload 重新加载配置文件 ps aux|grep nginx 查看nginx进程 # 开启 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:标识添加的端口;
@第七片海