资讯专栏INFORMATION COLUMN

【猿眼电影售票系统】Nginx配置文件详解

miqt / 2182人阅读

摘要:猿眼售票系统项目地址以下是我们项目的部署图可以从上图看到,其中后台有台静态文件服务器,台服务器,服务器储存电影和用户相关信息和服务器储存和短信验证码。本人负责服务器的反向代理配置,将请求分发至对应的服务器,并实现多台服务器的负载均衡。

</>复制代码

  1. MonkeyEye(猿眼售票系统)项目地址:
    https://github.com/SYSUMonkeyEye/MonkeyEye-FE

以下是我们项目的部署图:

可以从上图看到,其中后台有4台静态文件(Web APP)服务器,2台API服务器,MySQL服务器(储存电影和用户相关信息)和Redis服务器(储存Session和短信验证码)。

本人负责Nginx服务器的反向代理配置,将请求分发至对应的服务器,并实现多台服务器的负载均衡。以下为Nginx的基本配置信息(详细解释请看对应注释):

</>复制代码

  1. user root;
  2. # 工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。
  3. worker_processes 4;
  4. pid /run/nginx.pid;
  5. events {
  6. # 每个工作进程的最大连接数量。根据硬件调整,和前面工作进程配合起来用。
  7. # 每个进程允许的最多连接数,理论上每台Nginx服务器的最大连接数为worker_processes * worker_connections。
  8. worker_connections 768;
  9. }
  10. http {
  11. ##
  12. # Basic Settings
  13. ##
  14. # 通过IP哈希的方式将请求分配至相应的服务器
  15. upstream static {
  16. ip_hash;
  17. server 118.89.35.155:8080 max_fails=3 fail_timeout=1000;
  18. server 127.0.0.1:5001 max_fails=3 fail_timeout=1000;
  19. }
  20. # 通过指定权重的方式将请求分配至相应的服务器
  21. upstream backend {
  22. server 127.0.0.1:5000 weight=2 max_fails=3 fail_timeout=1000;
  23. server 123.207.233.226:1234 weight=1 max_fails=3 fail_timeout=1000;
  24. server 119.29.238.202:5000 weight=1 max_fails=3 fail_timeout=1000;
  25. server 118.89.44.14:5000 weight=1 max_fails=3 fail_timeout=1000;
  26. }
  27. server {
  28. # 配置监听端口。
  29. listen 8080;
  30. # 配置访问域名。
  31. server_name localhost;
  32. # 查看Nginx服务器状态。
  33. location /nginx_status {
  34. stub_status on;
  35. access_log off;
  36. # 加入访问限制。
  37. allow 120.236.174.171;
  38. deny all;
  39. }
  40. # 配置静态文件(用户头像和电影海报)代理
  41. location ^~ /static/images {
  42. root /root/Desktop/MonkeyEye-Server/Flask-Server/app;
  43. expires max;
  44. }
  45. location ^~ /api/users {
  46. proxy_pass http://127.0.0.1:5000/api/users;
  47. proxy_set_header Host $host;
  48. proxy_set_header X-Real_IP $remote_addr;
  49. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  50. # 传递HTTP头部Set-Cookie字段。
  51. proxy_pass_header Set-Cookie;
  52. # 禁止缓存。
  53. proxy_buffering off;
  54. }
  55. location ^~ /api/ {
  56. # 请求转向backend定义的服务器列表,即反向代理,对应upstream负载均衡器,也可以proxy_pass http://ip:port。
  57. proxy_pass http://backend/api/;
  58. proxy_set_header Host $host;
  59. proxy_set_header X-Real_IP $remote_addr;
  60. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  61. proxy_pass_header Set-Cookie;
  62. proxy_buffering off;
  63. }
  64. location / {
  65. proxy_pass http://static;
  66. proxy_set_header Host $host;
  67. proxy_set_header X-Real_IP $remote_addr;
  68. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  69. proxy_redirect off;
  70. # 缓冲区代理缓冲用户端请求的最大字节数。
  71. client_body_buffer_size 128k;
  72. # 设置代理服务器(Nginx)从后端服务器读取并保存用户头信息的缓冲区大小,默认与proxy_buffers大小相同,其实可以将这个指令值设的小一点。
  73. proxy_buffer_size 4k;
  74. # proxy_buffers缓冲区,Nginx针对单个连接缓存来自后端服务器的响应。
  75. proxy_buffers 4 128k;
  76. # 当 proxy_buffers 放不下后端服务器的响应内容时,会将一部分保存到硬盘的临时文件中,这个值用来设置最大临时文件大小,默认1024M,它与 proxy_cache 没有关系。大于这个值,将从upstream服务器传回。
  77. proxy_temp_file_write_size 256m;
  78. }
  79. }
  80. # 开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,减少用户空间到内核空间的上下文切换。
  81. sendfile on;
  82. tcp_nopush on;
  83. tcp_nodelay on;
  84. # 长连接超时时间,单位是秒。
  85. keepalive_timeout 65;
  86. types_hash_max_size 2048;
  87. include /etc/nginx/mime.types;
  88. default_type application/octet-stream;
  89. ##
  90. # Logging Settings
  91. ##
  92. # 日志存放路径。
  93. access_log /var/log/nginx/access.log;
  94. error_log /var/log/nginx/error.log;
  95. ##
  96. # Gzip Settings
  97. ##
  98. # 开启gzip压缩输出,减少网络传输。
  99. gzip on;
  100. gzip_disable "msie6";
  101. # gzip压缩比,1压缩比最小处理速度最快,9压缩比最大但处理速度最慢(传输快但比较消耗cpu)。
  102. gzip_comp_level 6;
  103. # 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。
  104. gzip_buffers 16 8k;
  105. gzip_http_version 1.1;
  106. # 匹配mime类型进行压缩。
  107. 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;
  108. }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39555.html

相关文章

  • 猿眼电影售票系统Nginx反向代理配置

    摘要:常用的状态有,表示当前的暂时不参与负载均衡。当负载调度算法为时,后端服务器在负载均衡调度中的状态不能是和。 MonkeyEye(猿眼售票系统)项目地址:https://github.com/SYSUMonkeyEye/MonkeyEye-FE 反向代理概念 反向代理(Reverse Proxy)方式是指以代理服务器来接受客户端连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上...

    Soarkey 评论0 收藏0
  • 重庆市POI数据

    摘要:重庆市数据写在前面的话重庆市分类写在前面的话是的缩写,中文意思为兴趣点,广义的可以指任何你想要研究的一系列对象。 重庆市POI数据​​写在前面的话​​​​重庆市POI分类​​写在前面的话POI是Point of Interest的缩写,中文意思为兴趣点,广义的POI可以指任何你想要...

    Flands 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<