• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Nginx负载均衡服务器入门案例

php 搞代码 3年前 (2022-01-22) 24次浏览 已收录 0个评论

最近有空,学习了一下nginx,做了个简单的入门案例。

简介:

Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

普通的客户端访问服务器的模式就是直接访问,有nginx服务器,我们可以把相同的应用部署到不同的服务器,访问模式如下:这样极大地提高并发能力,减轻了服务器的压力,提高了性能。

普通的访问模式:

Nginx访问模式:

优势:

作为 Web 服务器:相比 ApacheNginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型.

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

作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。

安装:

Linuxwindows版本,根基自己需要安装相应的。我自己以windows为例:

下载安装包http://nginx.org/en/download.html

解压,点击nginx.exe运行就可以启动服务,在浏览器输入localhost(默认监听127.0.0.1:80)进入以下页面则说明nginx服务器启动成功。

Demo

我自己搭了一个springboot的简单项目,部署到了不同的端口下(可以部署到不同的服务器)。为了方便测试,输出的内容我做了简单的区分:


配置详解:

注:conf / nginx.conf nginx 的默认配置文件。你也可以使用 nginx -c 指定你的配置文件

#运行用户#user  nobody;#启动进程,通常设置成和cpu的数量相等worker_processes  1;#全局错误日志#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#PID文件,记录当前启动的nginx的进程ID#pid        logs/nginx.pid;#工作模式及连接数上限events {    worker_connections  1024;}#设定http服务器,利用它的反向代理功能提供负载均衡支持http {    #设定mime类型(邮件支持类型),类型由mime.types文件定义    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 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,    #必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.    sendfile        on;    #tcp_nopush     on;    #连接超时时间    keepalive_timeout  65;    #gzip压缩开关    #gzip  on;	    #设定负载均衡的服务器列表(或者一个反向代理服务器,一个的话不需要分配权重)    upstream hello_server {        #weigth参数表示权值,权值越高被分配到的几率越大        server 127.0.0.1:8888   weight=1;        server 127.0.0.1:8899   weight=3;    }    server {        #监听80端口,80端口是知名端口号,用于HTTP协议	listen       80;	#定义使用localhost访问        server_name  localhost;        #编码格式	charset utf-8;        #access_log  logs/host.access.log  main;			#反向代理的路径,location 后面设置映射的路径	#对所有请求进行负载均衡请求(和upstream绑定)        location / {            root        /root;                 #定义服务器的默认网站根目录位置            index       index.html index.htm;  #定义首页索引文件的名称            proxy_pass  http://hello_server;   #请求转向hello_server 定义的服务器列表            #以下是一些反向代理的配置(可选择性配置)            #proxy_redirect off;            proxy_set_header Host $host;            proxy_set_header X-R<div>)本文来源gaodai.ma#com搞#代!码网_</div><strong>搞代gaodaima码</strong>eal-IP $remote_addr;            #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP            proxy_set_header X-Forwarded-For $remote_addr;            proxy_connect_timeout 90;          #nginx跟后端服务器连接超时时间(代理连接超时)            proxy_send_timeout 90;             #后端服务器数据回传时间(代理发送超时)            proxy_read_timeout 90;             #连接成功后,后端服务器响应时间(代理接收超时)            proxy_buffer_size 4k;              #设置代理服务器(nginx)保存用户头信息的缓冲区大小            proxy_buffers 4 32k;               #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置            proxy_busy_buffers_size 64k;       #高负荷下缓冲大小(proxy_buffers*2)            proxy_temp_file_write_size 64k;    #设定缓存文件夹大小,大于这个值,将从upstream服务器传                        client_max_body_size 10m;          #允许客户端请求的最大单文件字节数            client_body_buffer_size 128k;      #缓冲区代理缓冲用户端请求的最大字节数        }}

配置好之后重启nginx服务器,访问localhost

重启命令: nginx -s reload

访问的还是nginx(localhost)服务器,但实际上访问的是部署的springboot项目(localhost:8899)。再刷新几次就可以看到下图,说明两个端口上部署的服务都被访问到了。

注:两个服务分配的权重值不一样,所以出现hello world b!!!(实际访问localhost:8899)的可能性大些,出现hello world a!!!(实际访问localhost:8888)的可能性小一点。你可以自己修改权限值,再多测试几次!

总结:

Nginx常用命令:


相关推荐:

使用Nginx避免ajax的跨域请求

nginx反向代理机制解决前端跨域问题

以上就是Nginx负载均衡服务器入门案例 的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Nginx负载均衡服务器入门案例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址