Nginx server之Nginx作为反向代理服务器

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一:Nginx介绍

1.Nginx简介:nginx [engine x]是一个俄罗斯人编写的HTTP和反向代理服务器,另外它也可以作为邮件代理服务器。 它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括Yandex、Mail.Ru、VKontakte,以及Rambler。据Netcraft统计,在2012年8月份,世界上最繁忙的网站中有11.48%使用Nginx作为其服务器或者代理服务器。部分成功案例请见: Netflix, Wordpress.com, FastMail.FM。

2.整体采用模块化设计是nginx的一个重大特点,甚至http服务器核心功能也是一个模块。要注意的是:nginx的模块是静态的,添加和删除模块都要对nginx进行重新编译,这一点与Apache的动态模块完全不同。

3.Nginx作为负载均衡服务器: Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理 服务器对外进行服务. Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多. 。Nginx可作为7层负载均衡服务器来使用。

4.Nginx与PHP集成:自PHP-5.3.3起,PHP-FPM加入到了PHP核心,编译时加上--enable-fpm即可提供支持。 PHP-FPM以守护进程在后台运行,Nginx响应请求后,自行处理静态请求,PHP请求则经过fastcgi_pass交由PHP-FPM处理,处理完毕后返回。 Nginx和PHP-FPM的组合,是一种稳定、高效的PHP运行方式,效率要比传统的Apache和mod_php高出不少。

基本的HTTP服务器特性

处理静态文件,索引文件以及自动索引;打开文件描述符缓存;

使用缓存加速反向代理;简单负载均衡以及容错;

远程FastCGI,uwsgi,SCGI,和memcached服务的缓存加速支持;简单的负载均衡以及容错;

模块化的架构。过滤器包括gzip压缩、ranges支持、chunked响应、XSLT,SSI以及图像缩放。在SSI 过滤器中,一个包含多个SSI的页面,如果经由FastCGI或反向代理处理,可被并行处理;

支持SSL,TLS SNI。

其他的HTTP服务器特性

基于名字和IP的虚拟主机;

Keep-alive和pipelined连接支持;

灵活的配置;

重新加载配置以及在线升级时,不需要中断正在处理的请求;

自定义访问日志格式,带缓存的日志写操作以及快速日志轮转;

3xx-5xx错误代码重定向;

重写(rewrite)模块:使用正则表达式改变URI;

根据客户端地址执行不同的功能;

基于客户端IP地址和HTTP基本认证机制的访问控制;

支持验证HTTP referer;

支持PUT、DELETE、MKCOL、COPY以及MOVE方法;

支持FLV流和MP4流;

速度限制;

来自同一地址的同时连接数或请求数限制;

嵌入Perl语言。

邮件代理服务器特性

使用外部HTTP认证服务器重定向用户到IMAP/POP3后端;

使用外部HTTP认证服务器认证用户后重定向连接到内部SMTP后端;

支持的认证方式:

POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;

IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;

SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;

SSL支持;

STARTTLS和STLS支持。

二:具体配置步骤

//环境说明

1.系统为centos6.4 

2.nginx编译安装在IP:10.10.54.157上,并配合其它几台web服务器实现负载均衡

3.nginx服务器即当作一台反向代理服务器,又当作一台web服务器和其它几台web服务器配合实现负载均衡

4.web服务器可以是apache,要实现负载均衡,先得保证每台web服务器可以独立被访问

5.环境中有不止一台web服务器,nginx服务器的功能就是把用户的连接请求均衡负载到每台web服务器上

//nginx编译安装

shell> ./configure --prefix=/usr/local/nginx --user=apache --group=apache --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module && make && make install
#参数解释
--prefix=PATH                     set installation prefix
--user=USER                       set non-privileged user for
--group=GROUP                     set non-privileged group for
--with-http_ssl_module            enable ngx_http_ssl_module
--with-http_stub_status_module    enable ngx_http_stub_status_module   #支持监控
--with-http_gzip_static_module    enable ngx_http_gzip_static_module   #支持压缩#启动nginx
shell> /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
#测试nginx配置文件格式是否正确
shell> /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
#关闭nginx
shell> cat /usr/local/nginx/logs/nginx.pid | xargs kill -TERM
#重启nginx
shell> cat /usr/local/nginx/logs/nginx.pid | xargs kill -HUP
HUP      重启
TERM,INT 快速停止
USR1    重新打开日志文件,用于日志切割
USR2    平滑升级可执行程序
QUIT     从容关闭
WINCH    从容关闭工作进程

//nginx服务器配置

#编辑nginx主配置文件
shell> vim /usr/local/nginx/conf/nginx.conf
user  apache apache;
worker_processes  2;
error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
pid        logs/nginx.pid;
events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  logs/access.log  main;sendfile        on;tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;gzip  on;include virtual/www_zijian_com_conf;    #包含虚拟主机文件目录
}#编辑虚拟配置文件
shell> mkdir /usr/local/nginx/conf/virtual
shell> cd /usr/local/nginx/conf/virtual
shell> vim www_zijian_com_conf
--------------------------------------------
upstream www_zijian_com {server 10.10.54.157:8080 max_fails=3 weight=2 fail_timeout=60s;    #本机也充当一台web服务器server 10.10.54.159:10081 max_fails=3 weight=1 fail_timeout=60s;    #10.10.54.159这个web服务器上的10081端口正在监听状态server 10.10.54.152:10080 max_fails=3 weight=3 fail_timeout=60s;server 10.10.54.150:1500 max_fails=3 weight=4 fail_timeout=60s;
}#nginx服务器在www.zijian.com:80(下面的配置中)端口监听来自客户端的连接,然后通过反向代理,由upstream部分决定吧用户的请求负载到哪台web服务器上,weight=number参数可以指定某台web服务器的权重
server {listen  80;server_name www.zijian.com;    #nginx服务器访问地址,浏览器中输入的是这个网址charset uft-8;access_log logs/www.access.log main;index index.html;location / {proxy_pass http://www_zijian_com;proxy_set_header HOST $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}#nginx服务器本身也充当web服务器,所以这里也要配置
server {listen  8080;server_name www.zijian.com;charset uft-8;access_log logs/www.access.log main;root /var/www/html;index index.html;
}
--------------------------------------------#浏览器中输入www.zijian.com 测试nginx负载均衡
#注意:浏览器的缓存会干扰测试结果,所以你要确保www.ziji被正确解析为nginx服务器的IP,这个例子中是10.10.54.15#虚拟配置文件另一中形式
-----------------------------------------------------------------------
upstream www_zijian_com {server 10.10.54.159:10081 max_fails=3 weight=1 fail_timeout=60s; #仅有三台web server负载server 10.10.54.157:8080 max_fails=3 weight=2 fail_timeout=60s;    #本机web服务器server 10.10.54.152:10080 max_fails=3 weight=3 fail_timeout=60s;    
}
server   {listen  80;server_name www.zijian.com;charset uft-8;access_log logs/www.access_nginx.log main;index index.html;location / {proxy_pass http://www_zijian_com;proxy_set_header HOST $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
#不同与上一个配置文件,当upstream把用户请求负载到10.10.54.157:8080上时,再一次启动代理,代理到10.10.54.150:1500端口
server   {listen  8080;    #监听8080端口access_log logs/www.access_nginx.log main;location / {proxy_pass http://10.10.54.150:1500;}
}
----------------------------------------------------------------------------------










转载于:https://my.oschina.net/zijian1315/blog/207294

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300055.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

增加FiroFox3对迅雷的支持

当然,这对于Firefox来说是最好的了,以前的Thunder 扩展”Thunder Extension1.1“在firefox 2.0.0.4之后就不能用了,现在该扩展用的用的版本是”Thunder Extension3.5“。不用大家满世界找了,迅雷已经内置了。 注意:鉴于…

***一般如何***服务器

***方式,前期准备工作,漏洞收集,扫描,路由及网关分析,然后有网络编程以达到***的作用以至被***的机器瘫换.这种是具备专业知识的.一般的就是用工具了***.比如用工具发大量数据包,造成拒绝服务器***,SYN同步***.总的来说…

为什么现在老师这么难,值得大家深思

致各位老师不知不觉,顶级教师圈已经陪伴大家走过3个月的时光。我们每天为教师们推送教育资讯,得到了许多关心和支持。为了感谢各位教师们的支持和鼓励,顶级教师圈今日特举办限时资源福利活动。我们精心整理了100G海量教学资源,包含…

学计算机要买什么样的电脑,大学开学要买电脑吗?又要买什么样的电脑?看准这些再买也不迟!...

电脑是我们生活中重要的通讯工具,方便了我们学习办公、工作设计、娱乐游戏,我们也越来越依赖电脑处理不同的事情,尤其是现在的开学季,很多准大学生都准备给自己购置一台电脑,但是由于自己不懂,买了怕被坑&a…

C#中的解构

解构是将一个对象分割成若干部分并将其存储到新的变量中。在 C# 中,解构可以方便地一次性将一个对象的多个成员的值存储到多个变量中。1解构元组元组为方法返回多个值提供了便捷,无需创建额外的类型来承载返回的值。例如,下面这个方法使用元组…

javascript一些常用的代码

1&#xff1a;Response.Write("<script>alert(登录名和密码不能为空&#xff01;);locationjavascript:history.go(-1);</script>");返回上一页&#xff1b; 2&#xff1a;增加到收藏夹&#xff1a;javascript:window.external.addfavorite&#xff08;“…

转:人生成功必读的经典语录200条

1 热忱是推销成功的最大要素&#xff0c;也是唯一要素。 2 身为一名推销员&#xff0c;没有比完成一笔好交易更快乐的事。 3 无论推销什么东西&#xff0c;先推销自己。 4 充分了解客户对一位推销员而言&#xff0c;是一件非常重要的事。 5 我们每个人在世界上都是独一无二的&a…

在Ubuntu上安装RealPlayer的方法

初用Ubuntu感觉还不错&#xff0c;但发现没有RMVB的播放软件&#xff0c;下载个安装不上。后来才发现&#xff0c; 不是有效的可执行文件。转换之&#xff1a;chmod &#xff0b;x RealPlayer10GOLD.bin之后一路回车就OK了。./RealPlayer10GOLD.bin装完毕&#xff0c;在“应用程…

如果格局决定人生,那到底什么决定了格局

全世界只有3.14 %的人关注了青少年数学之旅真正决定人与人之间的差距的&#xff0c;其实是我们对事物的见识与内心的格局&#xff0c;见识的深浅决定人生的深浅&#xff0c;格局的大小决定了人生之路是宽是窄。今天给大家推荐几个有深度、有想法的公众号&#xff0c;希望能够给…

海尔微型计算机一键还原怎么操作,教你电脑一键还原怎么操作

当系统使用的时间久了&#xff0c;出现了不好修复的问题&#xff0c;可使用电脑的一键还原来解决。但一些用户不知电脑一键还原怎么操作呢?其实方法并不难&#xff0c;有需要的用户&#xff0c;请来看看下面的步骤吧一键还原又叫做一键恢复&#xff0c;计算机系统出现问题时就…

我从大厂面试中学到的关于 C# 的知识

我从工作面试中学到的关于 C# 的知识原文链接&#xff1a;https://michaelscodingspot.com/what-i-learned-about-c-from-job-interviews/作者&#xff1a;Michael Shpilt我最近参加了一些最大的科技公司的一系列工作面试。在没有透露姓名的情况下&#xff0c;我得到了世界排名…

C#正则表达式的特定字符或转义序列

大多数重要的正则表达式语言运算符都是非转义的单个字符。转义符 " (单个反斜杠)通知正则表达式分析器反斜杠后面的字符不是运算符。 例如&#xff0c;分析其将星号&#xff08;*&#xff09;视为重复限定符&#xff0c;而将后跟星号的反斜杠&#xff08;"*&#xff…

深入浅出自定义标签(二)生成javascript

自从写了深入浅出自定义标签(一)入门之后一直没有得出时间继续写,正好这次项目中用到"自定义标签",这次的用途是通过Session中的存储的相关功能点的List,进行迭代生成javascript脚本,在前台通过javascript生成树桩结构所有的页面元素都是Html,包括javascript所以生成…

曾凭一己之力推动物理学发展,是清华大学最年轻教授,世界却欠他一个诺贝尔奖!...

全世界只有3.14 %的人关注了青少年数学之旅说起中国最牛的科学家&#xff0c;大家可能都会想起钱学森。钱学森被美国称为“一个人抵五个师”并阻止他回国的故事&#xff0c;几乎家喻户晓。钱学森但事实上&#xff0c;在中国近代&#xff0c;也有一个科学大牛&#xff0c;曾被美…

SharpDeveloeper开发ASP.NET MVC汗流浃背

今天好不容易休息了一天&#xff0c;上网狂了一圈&#xff0c;突然想起了以前的一个轻量级的开发工具“SharpDeveloper”&#xff0c;于是就下载试着来开发一下ASP.NET&#xff0c;但是老魏没有想到的是&#xff0c;虽然官方提供了对ASP.NET MVC的支持&#xff0c;但是实际开发…

Vue 2升级 Vue 3初探小细节

【导读】嗯&#xff0c;偶尔看看学习Vue 3技能啦&#xff0c;此前用过Vue 2做过一点东西&#xff0c;Vue 3已面世一段时间&#xff0c;于是乎&#xff0c;我来看看所遇到的问题是否在Vue 3中得到解决首先&#xff0c;我们来讲讲一个例子在Vue 2中的实现&#xff0c;举个栗子吧&…

计算机竞赛游戏探险岛,冒险岛2五大全新团本综合分析

随着新版本的到来&#xff0c;这次推出了两个混沌团本&#xff0c;分别是影子军团祭坛、月光船长要塞。三个10人新团本&#xff0c;分别是迷宫集会堂、路贝里斯克、不灭神殿。混沌团本可以掉落橙装&#xff0c;新团本则可以掉落专属武器。影子军团祭坛是我们的两大混沌本之一&a…

薛定谔的猫——.NET 4.1 中的新基类,开源Preview中

前言&#xff1a; 昨天一如既往地登上forums.asp.net答帖子&#xff0c;却被上面的一条滚动新闻雷到了&#xff1a; .NET 4.1 Preview - New Base Class Library (BCL) Extension Methods - RFC 因为考虑到April 1st的关系&#xff0c;这是Scott Hanselman给大家开的玩笑&…

史上最硬核文科生,擅长解决数学难题,却视考试成为终生噩梦

全世界只有3.14 %的人关注了青少年数学之旅“数学存在的价值&#xff0c;不只是为了生活上的应用&#xff0c;它不应沦为供工程、商业应用的工具&#xff0c;数学的突破仍需要不断地去突破现有格局。”——节选自《数学之旅 闪耀人类的54个数学家》他是一位浪漫的法国人&#…

男人说谎白皮书

谎言——幸福的润滑剂 你对她说过谎吗&#xff1f;我想&#xff0c;即使你和她是最深爱的一对&#xff0c;你也不敢轻易地摇头说你没有&#xff01;但并不是说两个人在一起生活&#xff0c;彼此之间就会充满谎言&#xff0c;就像梁静茹在《花园》里唱的一样&#xff1a;“谎言&…