Nginx&Web负载均衡集群搭建

单个服务器不能满足用户访问量的要求,就出现分布式部署;

也就就是用户访问URL时,nginx通过一定的规则把用户的请求分发到不同的服务器上,实现负载均衡。

实际运行方式是指以代理服务器来接受internet上的连接请求,

然后将请求转发给内部网络上的服务器,

并将从服务器上得到的结果返回给internet上请求连接的客户端,

此时代理服务器对外就表现为一个服务器

<>1.nginx安装部署

==============================================================================

通过https://nginx.org/en/download.html 下载

<>2.常用命令

=========================================================================

查看nginx的版本

G:\nginx-1.18.0>nginx -v

在命令行中启动nginx服务

.\nginx.exe(或者nginx即可)

start nginx --启动命令

强制停止nginx服务器,如果有未处理的数据,丢弃

nginx -s stop

如果有未处理的数据,等待处理完成之后停止

nginx -s quit

重新加载

nginx -s reload

<>3.配置文件

=========================================================================

在conf文件夹中找到nginx.conf配置文件,主要由6个部分组成:

main:用于进行nginx全局信息的配置

events:用于nginx工作模式的配置

http:用于进行http协议信息的一些配置

server:用于进行服务器访问信息的配置

location:用于进行访问路由的配置

upstream:用于进行负载均衡的配置

<>4. nginx支持的负载均衡调度算法

=======================================================================================

<>4.1、轮询(默认)


每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,

能自动剔除。

upstream backserver {

server 192.168.0.14;

server 192.168.0.15;

}

<>4.2、指定权重


指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

upstream backserver {

server 192.168.0.14 weight=10;

server 192.168.0.15 weight=10;

}

<>4.3 IP绑定 ip_hash


每个请求按访问ip的hash结果分配,

这样每个访客固定访问一个后端服务器,

可以解决集群部署环境下session共享的问题。

upstream backserver {

ip_hash;

server 192.168.0.14:88;

server 192.168.0.15:80;

}

<>5.修改Tomcat端口配置文件

===================================================================================

G:\apache-tomcat-8.5.32\conf\server.xml

##注:修改4个配置文件即可

<Connector port="8081" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8444" />

<>6. nginx.conf配置文件

=====================================================================================

#user nobody;

worker_processes 1;

#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 - r e m o t e u s e r \[ remote_user \[ remoteuser\[time_local\] "request" '

'$status b o d y b y t e s s e n t " body_bytes_sent " bodybytessent"http_referer" '

'" h t t p u s e r a g e n t " " http_user_agent" " httpuseragent""http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;

#tcp_nopush on;

#keepalive_timeout 0;

keepalive_timeout 65;

#gzip on;

upstream backserver {

server 127.0.0.1:8080;

server 127.0.0.1:8081;

}

server {

listen 80;

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

root html;

index index.html index.htm;

proxy_pass http://backserver;

}

#error_page 404 /404.html;

redirect server error pages to the static page /50x.html

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

proxy the PHP scripts to Apache listening on 127.0.0.1:80

#location ~ .php$ {

proxy_pass http://127.0.0.1;

#}

pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#location ~ .php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

include fastcgi_params;

#}

deny access to .htaccess files, if Apache's document root

concurs with nginx's one

#location ~ /.ht {

deny all;

#}

}

another virtual host using mix of IP-, name-, and port-based configuration

#server {

listen 8000;

listen somename:8080;

server_name somename alias another.alias;

location / {

root html;

index index.html index.htm;

}

#}

HTTPS server

相关推荐
Filotimo_13 小时前
2.CSS3.(3).html
前端·css3
whyfail13 小时前
React v19.2版本
前端·javascript·react.js
慧慧吖@13 小时前
react基础
前端·javascript·react.js
浪裡遊13 小时前
MUI组件库与主题系统全面指南
开发语言·前端·javascript·vue.js·react.js·前端框架·node.js
DiXinWang14 小时前
关闭谷歌浏览器提示“若要接收后续 Google Chrome 更新,您需使用 Windows 10 或更高版本”的方法
前端·chrome
CoderYanger14 小时前
前端基础——HTML练习项目:填写简历信息
前端·css·职场和发展·html
muyouking1114 小时前
深入理解 HTML `<label>` 的 `for` 属性:提升表单可访问性与用户体验
前端·html·ux
IT_陈寒14 小时前
Java性能调优:从GC日志分析到实战优化的5个关键技巧,让你的应用快如闪电!
前端·人工智能·后端
Mintopia14 小时前
🚀 Next.js API 压力测试:一场前端与后端的“极限拉扯”
前端·后端·全栈
Mintopia14 小时前
🛡️ 对抗性攻击与防御:WebAI模型的安全加固技术
前端·javascript·aigc