摘要:猿眼售票系统项目地址以下是我们项目的部署图可以从上图看到,其中后台有台静态文件服务器,台服务器,服务器储存电影和用户相关信息和服务器储存和短信验证码。本人负责服务器的反向代理配置,将请求分发至对应的服务器,并实现多台服务器的负载均衡。
MonkeyEye(猿眼售票系统)项目地址:
https://github.com/SYSUMonkeyEye/MonkeyEye-FE
以下是我们项目的部署图:
可以从上图看到,其中后台有4台静态文件(Web APP)服务器,2台API服务器,MySQL服务器(储存电影和用户相关信息)和Redis服务器(储存Session和短信验证码)。
本人负责Nginx服务器的反向代理配置,将请求分发至对应的服务器,并实现多台服务器的负载均衡。以下为Nginx的基本配置信息(详细解释请看对应注释):
user root; # 工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。 worker_processes 4; pid /run/nginx.pid; events { # 每个工作进程的最大连接数量。根据硬件调整,和前面工作进程配合起来用。 # 每个进程允许的最多连接数,理论上每台Nginx服务器的最大连接数为worker_processes * worker_connections。 worker_connections 768; } http { ## # Basic Settings ## # 通过IP哈希的方式将请求分配至相应的服务器 upstream static { ip_hash; server 118.89.35.155:8080 max_fails=3 fail_timeout=1000; server 127.0.0.1:5001 max_fails=3 fail_timeout=1000; } # 通过指定权重的方式将请求分配至相应的服务器 upstream backend { server 127.0.0.1:5000 weight=2 max_fails=3 fail_timeout=1000; server 123.207.233.226:1234 weight=1 max_fails=3 fail_timeout=1000; server 119.29.238.202:5000 weight=1 max_fails=3 fail_timeout=1000; server 118.89.44.14:5000 weight=1 max_fails=3 fail_timeout=1000; } server { # 配置监听端口。 listen 8080; # 配置访问域名。 server_name localhost; # 查看Nginx服务器状态。 location /nginx_status { stub_status on; access_log off; # 加入访问限制。 allow 120.236.174.171; deny all; } # 配置静态文件(用户头像和电影海报)代理 location ^~ /static/images { root /root/Desktop/MonkeyEye-Server/Flask-Server/app; expires max; } location ^~ /api/users { proxy_pass http://127.0.0.1:5000/api/users; proxy_set_header Host $host; proxy_set_header X-Real_IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 传递HTTP头部Set-Cookie字段。 proxy_pass_header Set-Cookie; # 禁止缓存。 proxy_buffering off; } location ^~ /api/ { # 请求转向backend定义的服务器列表,即反向代理,对应upstream负载均衡器,也可以proxy_pass http://ip:port。 proxy_pass http://backend/api/; proxy_set_header Host $host; proxy_set_header X-Real_IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass_header Set-Cookie; proxy_buffering off; } location / { proxy_pass http://static; proxy_set_header Host $host; proxy_set_header X-Real_IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; # 缓冲区代理缓冲用户端请求的最大字节数。 client_body_buffer_size 128k; # 设置代理服务器(Nginx)从后端服务器读取并保存用户头信息的缓冲区大小,默认与proxy_buffers大小相同,其实可以将这个指令值设的小一点。 proxy_buffer_size 4k; # proxy_buffers缓冲区,Nginx针对单个连接缓存来自后端服务器的响应。 proxy_buffers 4 128k; # 当 proxy_buffers 放不下后端服务器的响应内容时,会将一部分保存到硬盘的临时文件中,这个值用来设置最大临时文件大小,默认1024M,它与 proxy_cache 没有关系。大于这个值,将从upstream服务器传回。 proxy_temp_file_write_size 256m; } } # 开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,减少用户空间到内核空间的上下文切换。 sendfile on; tcp_nopush on; tcp_nodelay on; # 长连接超时时间,单位是秒。 keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## # 日志存放路径。 access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## # 开启gzip压缩输出,减少网络传输。 gzip on; gzip_disable "msie6"; # gzip压缩比,1压缩比最小处理速度最快,9压缩比最大但处理速度最慢(传输快但比较消耗cpu)。 gzip_comp_level 6; # 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。 gzip_buffers 16 8k; gzip_http_version 1.1; # 匹配mime类型进行压缩。 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript image/jpeg image/gif image/png image/jpg; }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/39555.html
摘要:常用的状态有,表示当前的暂时不参与负载均衡。当负载调度算法为时,后端服务器在负载均衡调度中的状态不能是和。 MonkeyEye(猿眼售票系统)项目地址:https://github.com/SYSUMonkeyEye/MonkeyEye-FE 反向代理概念 反向代理(Reverse Proxy)方式是指以代理服务器来接受客户端连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上...
阅读 2427·2021-11-23 09:51
阅读 2456·2021-11-11 17:21
阅读 3096·2021-09-04 16:45
阅读 2378·2021-08-09 13:42
阅读 2216·2019-08-29 18:39
阅读 2878·2019-08-29 14:12
阅读 1279·2019-08-29 13:49
阅读 3361·2019-08-29 11:17