Nginx

是一款服务器

轻量级的Web服务器,也是反向代理服务器,也是电子邮件(IMAP/POP3)代理服务器

特点是:占有内存少,并发能力强

ngnix的并发能力在同类型的web服务器中表现较好

使用ngnix的网站有:百度,京东,新浪,网易,腾讯,淘宝

nginx: download

 然后直接解压即可

现在介绍在linux系统上安装ngnix

1.安装gcc环境

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

2.下载Nginx安装包:

wget  https://ngnix.org/download/nginx-1.23.2.tar.gz

3.解压

tar -zxvf nginx-1.23.2.tar.gz

4.cd nginx-1.23.2

5.创建nginx 目录   mkdir -p /usr/local/nginx

6.指定安装位置

./configure --prefix=/usr/local/nginx   //这表示将安装到/usr/local/nginx 文件夹里

7.安装nginx

make && make install 

此时进入/usr/local/nginx就可以进入nginx的路径了

[root@localhost nginx]# tree
.
├── conf
│   ├── fastcgi.conf
│   ├── fastcgi.conf.default
│   ├── fastcgi_params
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types
│   ├── mime.types.default
│   ├── nginx.conf
│   ├── nginx.conf.default
│   ├── scgi_params
│   ├── scgi_params.default
│   ├── uwsgi_params
│   ├── uwsgi_params.default
│   └── win-utf
├── html
│   ├── 50x.html
│   └── index.html
├── logs
└── sbin
    └── nginx

nginx配置环境变量

打开配置文件:

vim /etc/profile
PATH=/usr/local/nginx/sbin:$PATH

Nginx命令:

先进入/usr/local/nginx/sbin

(1)查看nginx版本

[root@localhost]# nginx -v
nginx version: nginx/1.23.2

(2)启动nginx

[root@localhost]# nginx

启动ngnix服务后,你就可以在浏览器中输入虚拟机的地址,就可以访问到nginx首页了(nginx默认占用80端口,80端口默认可以省略,所以直接输入服务器地址即可)

(3)查看nginx进程

[root@localhost sbin]# ps -ef | grep nginx
root      11031      1  0 23:06 ?        00:00:00 nginx: master process ./nginx
nobody    11034  11031  0 23:06 ?        00:00:00 nginx: worker process
root      11049   3055  0 23:07 pts/0    00:00:00 grep --color=auto nginx

前面两行重点关注,一个是master进程,一个是worker进程

(4)停止nginx服务

nginx -s stop

Ngnix具体应用:部署静态资源 ,反向代理,负载均衡

(1)使用Ngnix部署静态资源:

静态资源:html页面,css文件,js文件,图片,视频等资源

相对于tomcat,nginx处理静态资源的能力更加高效,所以一般会将静态资源部署到nginx中,将静态资源部署到ngnix非常简单,只需要使用拷贝命令将文件复制到nginx安装目录下的html目录中即可

cp  静态资源地址(比如/test/helloworld.html)  nginx的html目录中(比如说/usr/local/nginx/html/)

 此时你在本地浏览器上输入:(默认80端口)

http://192.168.58.130/helloworld.html

就可以访问到这个页面了

(2)反向代理

正向代理是代理客户端,反向代理是代理服务器端

正向代理:在客户端和原始服务器(origin server)之间有一个代理服务器

客户端向代理服务器发送一个请求,并且指定原始服务器的地址,于是代理服务器向原始服务器转交请求,并将获得的内容返回给客户端

一般是在客户端设置代理服务器

比如你无法直接访问谷歌服务器,可以通过一个代理服务器(VPN)间接访问谷歌服务器

反向代理:在客户端不设置代理服务器,客户端也不用给反向代理服务器发送什么原始服务器的地址(这是正向代理和反向代理的最大区别),客户端直接向反向代理服务器发送请求

实际上,反向代理服务器还是会将请求转发给目标服务器

 反向代理实际应用场景:无法直接访问web服务器1,web服务器2,web服务器3(这些服务器组成一个内网,局域网),于客户端通过反向代理服务器去访问这些web服务器

反向代理实现:

安装了nginx的服务器100作为反向代理服务器, 我们实际想要访问的是101这台机器

在反向代理服务器中进行配置:

进入ngnix的conf文件夹,打开nginx.conf文件:

cd /usr/local/nginx/conf
vim nginx.conf

 将下面这段配置写入这个文件里:表示针对反向代理服务器82端口的请求会转发到101服务器的8080端口

server
{
   listen 82:
   server_name localhost;
   location/
   {  
      proxy_pass http://192.168.138.101:8080#将请求转发到指定服务器端口
   }
}

 此时就可以通过访问100服务器的80端口间接访问101服务器的8080端口

(3)负载均衡

单台服务器变成服务器集群,服务器集群接收负载均衡器发送过来的请求

 负载均衡其实是基于反向代理实现的:

当我们请求nginx这台服务器的时候,就会转发给服务器集群中的某一台服务器

upstream targetserver#通过upstream指令定义一组服务器
{
    server  192.168.138.101:8080;
    server  192.168.138.102:8080;
}

server
{
    listen   8080;
    server_name  localhost;
    location/
    {
      proxy_pass http://targetserver;//targetserver在上面定义
    }
}

没有设置负载均衡策略,那就是默认采用

(1)轮询(轮流来)的算法

除了有轮询算法,还有其他算法:

(2)加权轮询:配置越好的分配到的请求越多

upstream targetserver#通过upstream指令定义一组服务器
{
    server  192.168.138.101:8080   weight=10;
    server  192.168.138.102:8080   weight=5;
}

(3)IP_Hash:根据客户端发送过来的请求的IP地址,对这个IP地址进行哈希运算,然后对服务器节点的数量进行取模

 

upstream targetserver#通过upstream指令定义一组服务器
{
   ip_hash;

    server  192.168.138.101:8080   ;
    server  192.168.138.102:8080   ;
}

 (4)url_hash

 

 (5)least_connection

最少连接数,哪台服务器上连接数少就将请求转发到这台服务器上

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值