Nginx的安装和使用

什么是Nginx?

Nginx 是异步框架的网页服务器,也可以用作反向代理、负载平衡器和 HTTP 缓存。大部分 Web 服务器使用 Nginx,通常作为负载均衡器。

Nginx的应用场景

1http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。

并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

Nginx的使用

 一.Nginx的安装

    1. 熟悉Cenos7相关命令(centos7默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools

开放端口: firewall-cmd --zone=public --add-port=端口号/tcp --permanent    

端口firewall-cmd --zone=public --remove-port=端口号/tcp --permanent 

生效配置firewall-cmd --reload

查看防火墙开放的端口firewall-cmd --zone=public --list-ports 

关闭防火墙:systemctl stop firewalld.service

防火墙状态:firewall-cmd --state

查看监听的端口:netstat -lnpt

检查端口被哪个进程占用:netstat -lnpt |grep 端口号

查看端口详细信息:ps 端口号

强制关闭端口:kill -9 端口号

 官网下载相应nginx版本tar

http://nginx.org/en/download.html

2.使用xftp上传到linux

3.解压tar

tar命令: tar   -zgzip的算法解压或者压缩

-x解压一个tar包

-v显示指令执行过程

-f指定要解压/压缩 文件名

-c 创建一个tar/压缩

             解压通常用法 tar  -zxvf  filename 如果要压缩的话z换成c

4.安装所需依赖

-  yum install pcre-devel

-  yum install zlib zlib-devel

-  yum install openssl openssl-devel

-  yum -y install gcc gcc-c++ autoconf automake make   安装c++编译环境

5.进入解压开的nginx-1.16.1文件夹找到 configur 执行

6.然后执行makenginx是一个完全由C语言编写的程序make命令是将文件编译就想javajavac一样

7.在执行make installmake install这个命令是将nginx安装安装好后可以在./usr/local/目录下发现一个nginx的文件夹.

这个就是安装好后的nginx。安装好后目录结构如下

 

二.启动nginx

1.Nginx用的是80端口 , 把端口对外开放

firewall-cmd --zone=public --add-port=80/tcp --permanent

firewall-cmd --reload

2.启动:安装好的nginx目录中有一个sbin,里面是一个nginx(可执行文件执行(./nginx

3.启动后直接在网页输入本机ip即可访问  页面如下

4.Nginx常用命令 

  /usr/local/nginx/sbin/nginx                     # 启动nginx  
 /usr/local/nginx/sbin/nginx -s reload              # 重新载入配置文件    
 /usr/local/nginx/sbin/nginx -s reopen             # 重启 Nginx 

/usr/local/nginx/sbin/nginx -s stop               # 停止 Nginx 

/usr/local/nginx/sbin/nginx -t                   #检查配置文件是否正确

正反向代理

一.正向代理

如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访 问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

二.反向代理        

   其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问。我们只 需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返 回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器 地址,隐藏了真实服务器 IP 地址。

三.修改nginx.conf配置文件实现反向代理

1.配置之前需要配置hosts文件:

地址:C:WindowsSystem32driversetchosts

hosts文件的作用是完成域名和指定IP地址的映射。

2.修改windows系统目录中的hosts文件, ip为虚拟机里面的地址

3.修改server

server_name  it.nginx.com;        #自定义访问域名

root  /home/nginx/tomcat_data/;    #静态文件存放路径

index index.html;                 #定义首页

4.修改server下的location

proxy_pass http://tomcat_server;           #映射对应upstream

proxy_set_header X-Real-IP $remote_addr;   #映射nginx真实ip

proxy_set_header Host $Host;   

5.先检查配置文件是否正确

/usr/local/nginx/sbin/nginx -t(出现以下日志则可以重启nginx了)

 6./usr/local/nginx/sbin/nginx -s reload 修改了配置,重启配置.再访问it.nginx.com 

 

负载均衡

什么是负载均衡?

    增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的 情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡

负债均衡的使用

 首先启动两台Tomcat服务器

      1. 然后在nginx配置文件中修改upstream 添加两个ip地址分别是
           upstream tomcat_server{

   server 127.0.0.1:8080;

   server 127.0.0.1:8081;

   }

2.其他配置文件可以不用修改,直接检查即可 /usr/local/nginx/sbin/nginx -t)通过即可运行nginx

可以看见同一个前端代码访问了不同的后端。

1、轮询

轮询是最基本的配置方法,它是upstream模块默认的负载均衡默认策略。每个请求会按时间顺序逐一分配到不同的后端服务器。

参数:fail_time服务器会被认为停机的时间长度,默认为10s
            backup标记该服务器为备用服务器。当主服务器停止时,请求会被发送到它这里。
           down 标记服务器永久停机了。(在轮询中,如果服务器down掉了,会自动剔除该服务器)

2、IP(ip_hash)

指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题。

  其实保证session会话是同一个用户的解决方案可以采取Spring Sessiontoken等会话技术

3、权重(weight)

每个upstream下服务会有一个权重(weight)配置,这个权重就是请求派发的概率,权重越大请求派发给服务的机会越大,可以根据服务资源情况分配权重。

 在该例子中,weight参数用于指定轮询几率,weight的默认值为1,;weight的数值与访问比率成正比,比如8080被访问的几率为其他服务器的两倍

4、最少连接(least_conn)

把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是有些请求占用的时间很长,会导致其所在的后端负载较高,这种情况下最少连接方式分配方式就可以达到更好的负载均衡效果。

注意:启动2tomcat 可以使用批处理,新建一个文件,后缀为sh

文件内容:

 /home/lm/tools/tomcat8.5/bin/startup.sh

/home/lm/tools/tomcat2/bin/startup.sh

原文地址:https://www.cnblogs.com/limengcheng/p/12172474.html