业界动态
Nginx系列1: 正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡
2024-11-19 03:04

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

Nginx系列1: 正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡

访问google使用代理服务器

2. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器

代理访问自己的内部服务器

或者看下图

Nginx系列1: 正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡Nginx系列1: 正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡

总结

正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端.反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端

正向代理中,proxy和client同属一个LAN,对server透明; 反向代理中,proxy和server同属一个LAN,对client透明。 实际上proxy在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了下,所以把后出现的那种代理方式叫成了反向代理

正向代理: 买票的黄牛 反向代理: 租房的代理

Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配,而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。

Nginx的模块从结构上分为核心模块、基础模块和第三方模块: 核心模块:HTTP模块、EVENT模块和MAIL模块 基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块, 第三方模块:HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块。

Nginx的高并发得益于其采用了epoll模型,与传统的服务器程序架构不同,epoll是linux内核2.6以后才出现的。Nginx采用epoll模型,异步非阻塞,而apache采用的是select模型  Select特点:select 选择句柄的时候,是遍历所有句柄,也就是说句柄有事件响应时,select需要遍历所有句柄才能获取到哪些句柄有事件通知,因此效率是非常低。  epoll的特点:epoll对于句柄事件的选择不是遍历的,是事件响应的,就是句柄上事件来就马上选择出来,不需要遍历整个句柄链表,因此效率非常高。

  Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名

 常见的应用服务器:     Apache/Microsoft IIS/Tomcat/Lighttpd/Nginx

特点:Nginx特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好

组成:Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单

  核心模块:HTTP模块、EVENT模块和MAIL模块   基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块,   第三方模块:HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块。

1)高并发响应性能非常好,官方Nginx处理静态文件并发5w/s 2)反向代理性能非常强。(可用于负载均衡) 3)内存和cpu占用率低。(为Apache的1/5-1/10) 4)对后端服务有健康检查功能。 5)支持PHP cgi方式和fastcgi方式。 6)配置代码简洁且容易上手。

说明:处理静态文件是nginx最主要的功能

4.1、编译环境gcc g++ 开发库之类的需要提前装好

  yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

4.2、首先安装PCRE  pcre功能是让nginx有rewrite功能

        检查系统里是否安装了pcre软件

    rpm -qa pcre   如果没有显示说明没有安装  反之安装过

    rpm -e --nodeps pcre  删除pcre

  安装pcre:yum install pcre-devel pcre -y

4.3、nginx安装

#下载Nginx源码包

cd /usr/local wget http://nginx.org/download/nginx-1.9.0.tar.gz

#解压Nginx源码包

tar -zxvf nginx-1.9.0.tar.gz

#进入解压目录,开始安装,默认安装地址 /usr/local/nginx

cd nginx-1.9.0 https://blog.csdn.net/u011323949/article/details/configure --prefix=/usr/local/nginx --with-http_ssl_module &&make &&make install

#自此Nginx安装完毕 检查nginx配置文件是否正确,返回OK即正确。 /usr/local/nginx/sbin/nginx -t

#然后启动nginx, /usr/local/nginx/sbin/nginx 回车即可。 #查看进程是否已启动: ps aux |grep nginx

4.4 页面访问

4.5 卸载nginx

  删除nginx文件即可

  rm -rf /usr/local/nginx

查看nginx进程: ps -ef|grep nginx或者ps aux |grep nginx 说明:nginx的进程由主进程和工作进程组成。

启动nginx: /usr/local/nginx/sbin/nginx 说明:启动结果显示nginx的主线程和工作线程,工作线程的数量跟nginx.conf中的配置参数worker_processes有关。

平滑启动nginx: kill -HUP 'cat /var/run/nginx.pid'  或者 /usr/local/nginx/sbin/nginx -s reload 其中进程文件路径在配置文件nginx.conf中可以找到。 平滑启动的意思是在不停止nginx的情况下,重启nginx,重新加载配置文件,启动新的工作线程,完美停止旧的工作线程。

完美停止nginx: kill -QUIT 'cat /var/run/nginx.pid'

快速停止nginx : kill -TERM 'cat /var/run/nginx.pid' 或者 kill -INT `cat /var/run/nginx.pid` 完美停止工作进程(主要用于平滑升级): kill -WINCH 'cat /var/run/nginx.pid'

强制停止nginx: pkill -9 nginx

检查对nginx.conf文件的修改是否正确: nginx -t -c /etc/nginx/nginx.conf 或者 /usr/local/nginx/sbin/nginx -t

停止nginx的命令: /usr/local/nginx/sbin/nginx -s stop

查看nginx的版本信息: /usr/local/nginx/sbin/nginx -v

查看完整的nginx的配置信息: /usr/local/nginx/sbin/nginx -V

下载所需版本的Nginx: wget http://www.nginx.org/download/nginx-1.4.2.tar.gz

获取旧版本nginx的configure选项: /usr/local/nginx/sbin/nginx -V 编译新版本的nginx tar -xvf nginx-1.4.2.tar.gz cd nginx-1.4.2 https://blog.csdn.net/u011323949/article/details/configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module make

备份旧版本的nginx可执行文件,复制新版本的nginx可执行文件: mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old cp objs/nginx /usr/local/nginx/sbin/

测试新版本nginx是否正常: /usr/local/nginx/sbin/nginx -t

平滑重启升级nginx: kill –USR2 `cat /usr/local/nginx/log/nginx.pid` 旧版本Nginx的pid变为oldbin,这是旧版本和新版本的nginx同时运行,过一段时间等旧nginx处理完用户请求后,执行下面操作 从容关闭旧版本的Nginx进程 kill -WINCH `cat /usr/local/nginx/log/nginx.oldbin`

决定是否升级到新版的nginx: kill –HUP `cat /usr/local/nginx/log/nginx.oldbin` ##nginx在不重载配置文件启动工作进程 kill –QUIT `cat /usr/local/nginx/log/nginx.oldbin` ##关闭旧版nginx 验证nginx是否升级成功 /usr/local/nginx/sbin/nginx –V ###显示下图则升级成功

 

 

说明

在nginx的nginx.conf里面监听80端口,并配置后端tomcat的地址,前端访问的时候即可转发到后端的tomcat

2.1 准备两个端口不一样的Apache分别为8080,8081

 

    以上就是本篇文章【Nginx系列1: 正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡】的全部内容了,欢迎阅览 ! 文章地址:http://lanlanwork.gawce.com/news/9811.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 阁恬下移动站 http://lanlanwork.gawce.com/mobile/ , 查看更多   
最新新闻
福州百度推广价格,透明与策略的平衡
在当今数字化的商业时代,百度推广已成为众多企业在福州拓展市场的重要手段之一,对于许多企业主来说,福州百度推广价格往往是一
百度营销平台手机版 v7.6.4 安卓版
百度营销app是由百度推出的数据营销助手。使用百度营销,可以实时跟踪账户下多条产品线数据实时监控,搜索查看推广宣传内容,调
在百度推广自己的产品赚钱,知乎视角的深入分析与实践指南
在当今数字化的商业时代,百度推广已成为众多企业和个人推广产品、获取收益的重要手段之一,究竟怎样在百度推广自己的产品并赚钱
百度死了吗
(图片来源:全景视觉)陈永伟/文 1月22日晚间,自媒体人方可成在微信公众号“新闻实验室”发布了一篇题为《搜索引擎百度已死》
百度竞价推广落地页怎么设计?设计原则+技巧,看这一篇就够了
9月12日(下周二)【竞价公开课】点击免费预约!百度竞价推广落地页怎么设计,才能最大限度地促成转化呢?作为促成转化(购买)的最
百度地图商家入驻费用
2024年01月14日吴经理100地图标注 , 地图定位 , 导航地图标记网络技术服务;信息技术咨询服务;技术服务、技术开发、技术咨询、
发布需求的平台★容易收录-欢迎发文合作,发帖百度可以收录的内容
尊敬的客户,您好!我们是北京一家专注互联网技术服务公司,可以提供收录效果好,文章排名好的网站进行发文,发得多,各种关键词
百度推广要多少费用?是如何收费的?
~ 随着网络的广泛普及,用户对搜索引擎的依赖和信任度不断上升。百度作为互联网的主要入口,拥有庞大的流量,成为网民获取信息的
百度百科词条创建入口地址
很多人都想自己创建百度百科,但是不知道从哪儿创建。百度百科是大家都可以创建的,但是又不是都能创建成功的,需要有丰富的经验
百度怎么创建词条 创建流程和常见问题
在信息爆炸的时代,百度百科作为全球最大的中文网络百科全书,不仅是知识分享的重要平台,也是个人、企业品牌建立权威形象的有效