nginx如何反向代理?nginx如何负载均衡?nginx如何实现动静分离?

nginx介绍

Nginx (engine x) 是一个****高性能的**HTTP**反向代理**web服务器****,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的****稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而*****闻名*。2011年6月1日,nginx 1.0.4发布。

Nginx是一款*轻量级**的**Web* *服务器/**反向代理*服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是****占有内存少,**并发**能力强****,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东新浪网易腾讯淘宝等。

Nginx安装

1、下载nginx

.tar.gz文件

2、上传到linux系统,到/usr/local/目录下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kHEhgfSJ-1657029143650)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612165844673.png)]

3、对nginx进行解压缩

tar zxf nginx-1.8.0.tar.gz

4、安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc

yum install gcc-c++

5、 PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。

yum install -y pcre pcre-devel

6、zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。

yum install -y zlib zlib-devel

7、OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

​ nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。

yum install -y openssl openssl-devel

8、进入/var ,临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录

使用configure命令进行按装

cd /var
mkdir -p temp/nginx

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

9、 先编译,再安装

make
make install

10、进入/usr/loacl/nginx/sbin中 启动nginx

 ./nginx 
// 查看nginx进程
[root@centos701 sbin]# ps aux | grep nginx 
root      63466  0.0  0.0  24892   764 ?        Ss   17:18   0:00 nginx: master process ./nginx
nobody    63467  0.0  0.0  25320  1452 ?        S    17:18   0:00 nginx: worker process
root      64584  0.0  0.0 112824   988 pts/0    S+   17:19   0:00 grep --color=auto nginx

访问 http://192.168.146.132

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yHSiFsWv-1657029143652)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612172413419.png)]

关闭 nginx

./nginx -s  stop

重新加载nginx

./nginx -s reload

充当静态资源服务器

访问 http://192.168.146.132 。默认/usr/local/redis/html 为根目录,默认访问根目录中的index.html

修改根目录配置

1、进入 /usr/local/redis/conf/redis.conf 中修改根目录配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3grbB5lK-1657029143654)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612210637482.png)]

2、进入 /usr/local/nginx/sbin 重新启动nginx

 ./nginx -s reload

3、再访问http://192.168.146.132即可,默认的是访问的自己设置的根目录下的 index.html

正向代理

所谓的正向代理指是客户端代理

正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NwCjcqfF-1657029143656)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612213130137.png)]

反向代理

所谓的反向代理指是服务器端代理

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nY9xp3Wu-1657029143656)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612213041911.png)]

负载均衡

1、先配置再/usr/local/中配置jdk

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZxPwsCxB-1657029143657)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612223413789.png)]

2、利用不同的端口来演示负载均衡

配置tomcat,将Tomcat复制然后分别修改server.xml中的端口等信息。

再将tomcat中webapp/ROOT/index.html中略微修改,达到页面不一样的效果即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nmpyfSiE-1657029143658)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612223609027.png)]

tomcat1中server.xm信息修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tnBz6Oun-1657029143659)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612223821018.png)]

tomcat2中server.xml信息修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lGFpaw2Y-1657029143660)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612223920714.png)]

3、修改/usr/local/nginx/conf/nginx.conf中的配置文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-95wDH3Sm-1657029143660)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612224709156.png)]

4、启动tomcat1和tomcat2,然后在重启nginx服务器

  //再tomcat/bin下启动 tomcat
./startup.sh 
  // 在nginx/sbin下重启 nginx
./nginx -s reload

5、重新访问 http://192.168.146.132 发现负载均衡已经实现

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pGAiBs66-1657029143661)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612225222197.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c34hivuq-1657029143662)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612225243650.png)]

通过tomcat和nginx实现动静分离

1、分别在tomcat中的webapp/ROOT/ 目录下 添加示例jsp页面,jsp页面中图片来自静态资源

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nIT7SgOp-1657029143662)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612230917803.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5qQemwQP-1657029143663)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612230930993.png)]

2、在创建静态资源根目录,把静态资源放进去

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iBtRxuqj-1657029143664)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612230716839.png)]

3、配置nginx.conf ,实现动静分离

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iQkhUqpg-1657029143665)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612231714964.png)]

4、访问http://192.168.146.132/aaa.jsp 连续访问,即可看到效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UueDlvA2-1657029143665)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612232320649.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rgSmfxUy-1657029143666)(E:\Java资料\笔记整理\JavaUp\笔记整理\nginx.assets\image-20220612232331362.png)]

猜你喜欢

转载自blog.csdn.net/PIKapikaaaa/article/details/125628892
今日推荐