nginx的快速入门

一.什么是nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。
Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

二.常用功能

1、Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。
正向代理:一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并制定目标(原始服务器),然后代理向原始服务器转发请求并将获得的内容返回给客户端,客户端才能使用正向代理。我们平时说的代理就是指正向代理。简单一点:A向C借钱,由于一些情况不能直接向C借钱,于是A想了一个办法,他让B去向C借钱,这样B就代替A向C借钱,A就得到了C的钱,C并不知道A的存在,B就充当了A的代理人的角色。
在这里插入图片描述

反向代理(Reverse Proxy),以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求的客户端,此时代理服务器对外表现为一个反向代理服务器。
可以这么说:A向B借钱,B没有拿自己的钱,而是悄悄地向C借钱,拿到钱之后再交给A,A以为是B的钱,他并不知道C的存在。

在这里插入图片描述
2.负载均衡
负载均衡是一种技术解决方案。用来在多个资源(一般是服务器)中分配负载,达到最优化资源使用,避免过载。Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦。
3、web缓存
Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。

三.安装Nginx

这⾥下载的是 nginx-1.17.10.tar.gz 安装包,并将其直接放在了 root ⽬录下
1、在 /usr/local/ 下创建 nginx ⽂件夹并进⼊

cd /usr/local/
mkdir nginx
cd nginx

2、将 Nginx 安装包解压到 /usr/local/nginx 中即可

tar zxvf /root/nginx-1.17.10.tar.gz -C ./

解压完之后, /usr/local/nginx ⽬录中会出现⼀个 nginx-1.17.10 的⽬录
3、预先安装额外的依赖

yum -y install pcre-devel
yum -y install openssl openssl-devel

4.安装Nginx

cd nginx-1.17.10
./configure
make && make install

安装完成后,Nginx的可执⾏⽂件位置位于

/usr/local/nginx/sbin/nginx

5、启动Nginx

cd /usr/local/nginx/sbin
./nginx

如果想停止Nginx或重新加载Nginx,可以使用

./nginx -s stop
./nginx -s reload

这是启动游览器验证情况 输入你的主机ip
在这里插入图片描述

四.反向代理

实例一:使用www.123.com 访问Nginx,再通过Nginx访问tomcat
1.在Windows系统的host文件进行域名和虚拟机ip的配置
在这里插入图片描述

在这里插入图片描述
2.进入Nginx的配置文件修改

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

server {
        listen       80;
        # 配置虚拟机的ip
        server_name  192.168.2.63;
        location / {
        	# 要虚拟机的Tomcat
            proxy_pass http://127.0.0.1:8080;
            root   html;
            index  index.html index.htm;
        }

3.启动Nginx和Tomcat,访问www.123.com 出现
在这里插入图片描述

实例二:根据访问的路径不同跳转到不同端口的服务中,Nginx的监听端口为9001
访问http://127.0.1:9001/edu/ 跳转到127.0.0.1:8080/
访问http://127.0.1:9001/vod/ 跳转到127.0.0.1:8081/
1.在准备一个Tomcat 将端口号修改为8081
2.在端口号为8080的Tomcat的webapps下创建文件夹edu 添加一个HTML页面,内容为 8080,同理在另一个Tomcat创建文件夹edu,添加HTML页面,内容为8081
3.进入Nginx的配置文件修改

server {
        listen       9001;
        server_name  192.168.2.63;

        location ~ /edu/ {
            proxy_pass http://127.0.0.1:8080;
        }

        location ~ /vod/ {
            proxy_pass http://127.0.0.1:8081;
        }
    }

    ~  :用于表示uri包含正则表达式,并且区分大小写
    ~* :用于表示uri包含正则表达式,并且不区分大小写

访问 http://192.168.2.63:9001/edu/a.html
在这里插入图片描述
访问 http://192.168.2.63:9001/vod/a.html
在这里插入图片描述

五.负载均衡

1.企业在解决高并发问题时,一般有两个方向的处理策略,软件、硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库+web服务器两处添加解决方案,其中web服务器前面一层最常用的的添加负载方案就是使用nginx实现负载均衡。
2.Nginx实现负载均衡
同样使用两个tomcat模拟两台应用服务器,端口号分别为8080 和8081
Nginx的负载分发策略
1)、轮询 ——1:1 轮流处理请求(默认)
每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询。
2)、权重 ——weight
通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。
3)、ip_哈希算法
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题。
3、配置Nginx的负载均衡与分发策略
1)在8080的Tomcat的webapps里面的edu文件复制一份到8081里面
2)在Nginx的nginx.conf添加如下内容:

upstream myserver{
		# 监听的Tomcat
        server 192.168.2.63:8080;
        server 192.168.2.63:8081;
    }
server {
        listen       80;
        # 虚拟机的ip
        server_name  192.168.2.63;

        location / {
            proxy_pass http://myserver;
            root   html;
            index  index.html index.htm;
        }

在这里插入图片描述
在这里插入图片描述

六.动静分离

为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源比如图片,js,css等文件,我们可以在反向代理服务器中进行缓存,这样浏览器在请求一个静态资源时,代理服务器就可以直接处理,而不用将请求转发给后端服务器。用户请求的动态文件比如servlet,jsp则转发给Tomcat,Jboss服务器处理,这就是动静分离。这也是反向代理服务器的一个重要的作用。
1.在根目录下创建一个文件夹data,在data里面创建image和www两个文件夹,分别放一些图片和静态html文件
2.在Nginx的nginx.conf的server里面添加如下内容:

server {
        
        location /www/{
           root /data/;
           index index.html index.htm;
        }

        location /image/{
           root /data/;
           autoindex on;
        }
}

分别输入http://192.168.2.63/image/ http://192.168.2.63/www
在这里插入图片描述
http://192.168.2.63/www/a.html
在这里插入图片描述
发现可以访问静态资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值