推广 热搜:   中国  公司  企业  服务  未来  设备  政策  行业  基金 

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

   日期:2024-11-19     作者:shyqysj    caijiyuan   评论:0    移动:http://lanlanwork.gawce.com/mobile/news/9811.html
核心提示:1. 正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客

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

 

本文地址:http://lanlanwork.gawce.com/news/9811.html    阁恬下 http://lanlanwork.gawce.com/ , 查看更多
 
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2023001713号