Linux系统安装nginx+入门笔记

安装过程

1.加载wget命令

yum install wget

2.拉取安装包

wget https://nginx.org/download/nginx-1.16.1.tar.gz
3.解压安装包

tar -zxvf nginx-1.16.1.tar.gz 
 

4.执行这个命令自动配置一下

Linux系统安装nginx+入门笔记_第1张图片

5.编译安装

make
make install

6.查看nginx安装的位置

whereis nginx

7.进入sbin

cd /usr/local/nginx/sbin

8.执行

nginx

8.在Linux系统上访问localhost:8080,看到页面:

Linux系统安装nginx+入门笔记_第2张图片

 

标志成功安装了

入门笔记

什么是Nginx?

Nginx是一个高性能的HTTP和反向代理web服务器,Nginx代理的是服务器,Nginx本身也是台服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

 为什么要使用Nginx?

单点服务器早已无法承载上万个乃至数十万个用户的持续访问。比如一台Tomcat服务器在理想状态下只能够可以承受住2000个左右的并发量,为了解决这个问题,就需要多台Tomcat服务器来进行负载均衡。

那么,应该如何实现负载均衡?Nginx就是其中的一种解决方案,当用户访问网站时,Nginx拦截到这个访问请求,并将其通过轮询的方式均匀地分配到不同的服务器上。

Linux系统安装nginx+入门笔记_第3张图片

 并且,在Nginx中有一种ip_hash策略,它可以获取到用户的真实IP,计算出hash值来选择服务器,这也是一种优秀的负载均衡方式。 所以,掌握Nginx成为了Web开发学习道路上不可缺少的一部分。

什么是正向代理?

正向代理就是客户端将自己的请求率先发给代理服务器,通过代理服务器将请求转发给服务器,如VPN,为了可以连上国外的网站,客户端需要使用一个可以连接外网的服务器作为代理这就是VPN,并且客户端能够连接上该代理服务器。

Linux系统安装nginx+入门笔记_第4张图片

什么是反向代理?

反向代理代理服务器端,而正向代理代理客户端,在有多台服务器分布情况下,为了能让客户端访问到的IP地址为同一个网站,需要使用反向代理

Linux系统安装nginx+入门笔记_第5张图片

Zuul与Nginx有什么区别?

  1. 功能和用途不同:Zuul是基于Java开发的服务网关,他提高动态路由,负载均衡,过滤器链等功能,而Nginx是一款高性能的Web服务器和反向代理服务器,主要用于处理HTTP请求和响应,提高负载均衡,反向代理,缓存等功能
  2. 实现方式不同:Zuul使用SpringCloud进行管理和部署,可以通过配置文件或API进行管理,而Nginx是基于C语言开发的,采用模块化的架构涉及,可通过配置文件进行管理
  3. 可扩展性和定制性不同:Zuul可以方便集成springcloud中的其他组件和服务,提高更加完整的服务治理方案,同时Zuul也提供一些扩展点,可根据业务需求进行自定义开发。而Nginx也提供了一些模块和插件,但扩展和定制性相对较低
  4. 语言和生态环境不同:zuul是基于java开发的,更适合Java开发者,Nginx是使用C语言开发的,更适合系统运维人员和Linux下的应用程序开发者,可以与Linux,OpenResty等生态环境无缝集成

Nginx比Zuul功能强大,可以整合lua脚本语言,抗并发性能要好
Zuul适用于为服务器中的过滤和拦截等功能
最好是建议Nginx和Zuul一起合作,nginx实现反向代理,zuul实现微服务网关拦截。

在Nginx的安装目录下有一个conf文件夹,打开其中的nginx.conf文件

在nginx.conf文件中配置:

反向代理一台服务器

在location参数中添加proxy_pass字段,并填写需要反向代理的服务器地址与端口号:

注意:每一行的配置都需要以封号结尾!!!

Linux系统安装nginx+入门笔记_第6张图片

反向代理多台服务器

除了不断地添加proxy_pass参数,更好的解决方案是配置upstream服务器组!

在配置文件的http块中添加upstream属性:

Linux系统安装nginx+入门笔记_第7张图片

配置完nginx.conf后 启动测试

进入Nginx安装目录下的sbin文件夹,运行命令nginx,

如果之前已经启动,无需关闭nginx服务,只需要让nginx重新加载配置文件即可,命令:

nginx-s reload

 刷新浏览器,如果反向代理成功,那么访问的路径会映射到配置文件中的服务器地址

将来随着用户量增长,肯需要添加新服务器,这时候只需要修改配置文件,使用ngnx-s reload命令即可,无需关闭nginx服务器

关闭服务命令

nginx-s stop  #立即停止,无论是否在工作 

nginx-s quit  #等待进程完成当前工作后安全退出

Nginx中的负载均衡

Nginx负载均衡方式有如加权轮询(默认)、IP哈希(将用户的ip计算成哈希值)、url哈希等等,这里就以加权轮询作为介绍。加权轮询是通过给服务器添加各自的权重值,Nginx通过权重来进行请求的分配,权重越高接收到的请求数量越多。

Linux系统安装nginx+入门笔记_第8张图片

上图配置了三台服务器,在加权轮询的模式下,6次不同的请求中,权重为3的服务器将会分配到3次请求,权重为2的服务器会分配到2个请求,权重为1的服务器则会分配到1个请求。负载均衡大大减少了在高并发的环境下服务器宕机的风险!

ip_hash:
加权轮询和普通轮询方式都存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。
我们可以采用ip_hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

 配置Nginx中的负载均衡

同样也是在nginx.conf中配置

Linux系统安装nginx+入门笔记_第9张图片

添加完成后nginx-s reload 刷新一下即可 

Nginx的动静分离

Nginx的静态处理能力很强,但是动态处理能力不足,因此在企业中常用动静分离奇数。动静分离技术其实是采用代理方式,在server{}端加入待正则匹配的location来指定匹配项针对PHP的动静分离;静态页面交给Nginx处理,动态页面交给PHP-FPM模块或Apache处理。在Nginx配置中,是通过location配置段配合正则匹配实现静态和动态页面的不同处理方式

Nginx常用命令 

cd /usr/local/nginx/sbin/
./nginx  启动
./nginx -s stop  停止
./nginx -s quit  安全退出
./nginx -s reload  重新加载配置文件  如果我们修改了配置文件,就需要重新加载。
ps aux|grep nginx  查看nginx进程
 

 总结:ok,我又学会了一点

你可能感兴趣的:(Nginx,linux,服务器,Nginx)