NGINX 反向代理

忘是亡心i 2022-09-30 13:48 350阅读 0赞

大致流程

  1. 在http模块中配置upstream
  2. 在server模块中将服务器与upstream绑定

配置本机多端口服务器(模拟多台服务器)

  1. server {
  2. listen 82;
  3. server_name 127.0.0.1;
  4. root "C:\phpStudy\WWW\test2";
  5. location / {
  6. index index.html index.htm index.php;
  7. #autoindex on;
  8. }
  9. location ~ \.php(.*)$ {
  10. fastcgi_pass 127.0.0.1:9000;
  11. fastcgi_index index.php;
  12. fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
  13. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  14. fastcgi_param PATH_INFO $fastcgi_path_info;
  15. fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
  16. include fastcgi_params;
  17. }
  18. }
  19. server {
  20. listen 81;
  21. server_name 127.0.0.1 phpStudy.net;
  22. root "C:\phpStudy\WWW\test1";
  23. location / {
  24. index index.html index.htm index.php;
  25. #autoindex on;
  26. }
  27. location ~ \.php(.*)$ {
  28. fastcgi_pass 127.0.0.1:9000;
  29. fastcgi_index index.php;
  30. fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
  31. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  32. fastcgi_param PATH_INFO $fastcgi_path_info;
  33. fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
  34. include fastcgi_params;
  35. }
  36. }

配置 upstream

upstream 参数

server 192.168.0.100:80 : 负载均衡后端RealServer的IP或者域名,端口不写的话默认为80。高并发场景用域名,再通过DNS进行负载均衡

  1. server : 反向代理后端RealServer的IP或者域名,端口不写的话默认为80。高并发场景用域名,再通过DNS进行负载均衡
  2. weight : 权重,默认为1,权重越大接收的请求越多
  3. max_fails : 最大尝试的失败次数,默认为1,0表示禁止失败尝试
  4. fail_timeout : 失败超时时间,默认是10秒,通常3s左右比较合适
  5. backup : 热备配置,前段RealServer出现问题后会自动上线backup服务器
  6. down : 标志服务器不可用,这个参数通常配合IP_HASH使用

upstream 设置

  1. http {
  2. include mime.types;
  3. default_type application/octet-stream;
  4. #access_log logs/access.log main;
  5. upstream backend {
  6. server 127.0.0.1:81 weight=1;(之前配置的两个本机端口)
  7. server 127.0.0.1:82 weight=3;
  8. }
  9. }

Server 绑定

  1. server {
  2. listen 80;
  3. server_name fronthome.com;
  4. #charset koi8-r;
  5. #access_log logs/host.access.log main;
  6. root "C:\phpStudy\WWW\advanced\frontend\web";
  7. location / {
  8. index index.html index.htm index.php l.php;
  9. autoindex on;
  10. proxy_pass http://backend;//通过这里来绑定我们之前配置的upsteam
  11. }
  12. }

这里只是简单的实现了反向代理,还有很多相关配置,留给以后探索吧

发表评论

表情:
评论列表 (有 0 条评论,350人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Nginx反向代理

    什么是反向代理? 通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服

    相关 Nginx反向代理

    Nginx 反向代理 反向代理概述 反向代理是指以代理服务器来接受Internet上的连接请求,然后将请求转发至内部网络上的服务器,并将从服务器上得到的结果返回给I

    相关 nginx 反向代理

    1、反向代理     nginx反向代理的指令不需要新增额外的模块,默认自带proxy\_pass指令,只需要修改配置文件就可以实现反向代理。     配置前的准备工作