Linux Enterprise 之 Nginx

1. Nginx简介及安装

Nginx 是一个轻量级,高性能的HTTP和反向代理web服务器,其特点是占有内存少,并发能力强

功能作用:

1. 反向代理

  反向代理服务器位于用户与目标服务器之间,对用户来说,它代表着服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器信息。反向代理服务器通常可用来作为web加速缓存,降低网络和服务器的负载,提高访问效率。

2. 负载均衡

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

3. 动静分离

       根据资源类型的不同,分为动态资源和静态资源,将动态页面和静态页面交给不同的服务器来解析,加快解析速度,降低单个服务器的压力。

安装:

1. 下载安装包

官网下载:nginx官网

我已经提前下载好了,在这里通过ftp共享到server1

解压安装包

添加语法检测

进入目录查看编译可选参数

编译

报错,没有编译器,安装编译器

yum install -y gcc

再次编译

报错,缺少PCRE库,安装pcre库

yum install pcre-devel -y

再次编译

报错,缺少openssl,这是因为我们编译时添加了参数--with-http_ssl_module,该模块需要openssl库

安装openssl库

yum install openssl-devel -y

再编译

./configure --prefix=/usr/local/nginx --with-http_ssl_module

编译成功,且可以看到多了一个文件夹objs

make一下

切换到安装目录

可以看到sbin目录下有一个nginx文件,这就是nginx的主程序

 

2. Nginx启动及版本更新与回退

vim nginx.conf

可以看到默认监听端口为80

默认发布根目录为html 默认发布页面为index.html

查看nginx版本

启动并查看进程

可以看到有两个进程,一个master进程是负责监控worker进程,而worker进程是真正处理请求的进程

 

测试:

更改默认发布页面

echo "hello nginx" > /usr/local/nginx/html/index.html

 访问

可以看到访问的是刚才更改的页面,服务器是nginx

 

Nginx的版本更新与回退

更新:

注意更新前先备份

解压编译要更新的版本

make(不需要make install)

将生成的nginx复制到安装目录,覆盖原文件

查看版本,发现已经改变

但此时的进程使用的还是原来的二进制文件(加载在内存中)

 

通过kill命令,让原来的进程不再接受信号,并重新生成nginx进程

让旧进程关闭worker

此时不要着急kill旧的master进程,如果新版本出现问题无法正常工作,可以通过它恢复

 

回退:

直接通过之前的备份覆盖更新

kill -HUP PID

再告诉更新失败的进程不再接受请求,关闭worker进程

最后关闭更新失败版本的master进程

 

3. Nginx配置示例

3.1 虚拟主机

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

如上图所示,配置了虚拟主机 通过www.huayu.com访问,访问位置是根下的virtualhost目录

新建目录,并写生成发布页面

mkdir /virtualhost
echo "virtual host nginx" > /virtualhost/index.html

 启动服务

配置好本地解析

直接访问

可以看到访问的是server1的html默认发布目录里的index.html

 

访问虚拟主机(虚拟主机在这里也是80端口,通过不同域名来区分)

 显然虚拟主机访问的是我们刚配置的虚拟主机发布目录

虚拟主机也可以通过监听不同的端口来区分,我这里使用的是不同域名

注意:nginx本身只支持静态资源

 

3.2 Nginx的负载均衡

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

配置负载均衡,在用户访问bbs.huayu.com的80端口时,实际访问的是本机的8000 8001 8002 8003端口,轮询访问,weight代表权重,即每访问三次8000端口,其他访问一次。可以通过设置不同的服务器地址ip,这样就可以将本机看作一个负载均衡器,负责调度请求到真实的服务,这里的配置只是演示如何调度请求到其他位置。

 

3.3 防盗链

server1配置nginx图片防盗链,将请求重写到一个盗链图片

服务重载

nginx -s reload

 

server2上面启动httpd并更改默认发布页面如下

将测试需要的图片资源上传到server1

直接访问

通过server2的盗链访问

可以看到访问不到原图片,访问的是我们重写的地址

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值