nginx 反向代理

秒速五厘米 2022-05-10 11:26 431阅读 0赞

1、反向代理

  1. nginx反向代理的指令不需要新增额外的模块,默认自带proxy\_pass指令,只需要修改配置文件就可以实现反向代理。
  2. 配置前的准备工作,后端跑项目的ip和端口,也就是说可以通过http://ip:port能访问到你的网站。

2、nginx配置

  1. upstream test {
  2. server ip:port; #部署项目的服&务器ip和端口
  3. }
  4. server {
  5. listen 80;
  6. server_name www.quancha.cn;
  7. access_log logs/quancha.access.log main;
  8. error_log logs/quancha.error.log;
  9. root html;
  10. index index.html index.htm index.php;
  11. location / {
  12. proxy_pass http://test;
  13. #Proxy Settings
  14. proxy_redirect off;
  15. proxy_set_header Host $host;
  16. proxy_set_header X-Real-IP $remote_addr;
  17. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  18. proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
  19. proxy_max_temp_file_size 0;
  20. proxy_connect_timeout 90;
  21. proxy_send_timeout 90;
  22. proxy_read_timeout 90;
  23. proxy_buffer_size 4k;
  24. proxy_buffers 4 32k;
  25. proxy_busy_buffers_size 64k;
  26. proxy_temp_file_write_size 64k;
  27. }
  28. }

3、部署两个项目配置

  1. upstream test1 {
  2. server ip1:port;#部署项目的服&务器ip和端口
  3. }
  4. upstream test2 {
  5. server ip2:port;#部署项目的服&务器ip和端口
  6. }
  7. server {
  8. listen 80;
  9. #access_log logs/host.access.log main;
  10. location /test1 {
  11. proxy_pass http://test1;
  12. index index.html index.htm;
  13. }
  14. }
  15. server {
  16. listen 80;
  17. #access_log logs/host.access.log main;
  18. location /test2 {
  19. proxy_pass http://test2;
  20. index index.html index.htm;
  21. }
  22. }

4、nginx 之 proxy_pass详解

  1. nginx中配置proxy\_pass代理转发时,如果在proxy\_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。
  2. 假设下面四种情况分别用 http://192.168.1.1/proxy/test.html 进行访问。

4.1 去掉前缀

  1. location /proxy/ {
  2. proxy_pass http://192.168.1.1/;
  3. }

访问URL:http://192.168.1.1/test.html

4.2 保留前缀

  1. location /proxy/ {
  2. proxy_pass http://192.168.1.1;
  3. }

访问URL:http://192.168.1.1/proxy/test.html

4.3 替换为test前缀

  1. location /proxy/ {
  2. proxy_pass http://192.168.1.1/test/;
  3. }

代理到URL:http://192.168.1.1/teset/test.html

4.4 加入test字符串

  1. location /proxy/ {
  2. proxy_pass http://192.168.1.1/test;
  3. }

代理到URL:http://192.168.1.1/testtest.html

5、负载均衡

  1. #后端服务
  2. upstream back {
  3. server 127.0.0.1:8090;
  4. server 192.168.1.10:8090;
  5. }
  6. server {
  7. listen 80;
  8. server_name localhost;
  9. # 后端服务
  10. location /back/ {
  11. proxy_pass http://back/;
  12. }
  13. }

发表评论

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

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

相关阅读

    相关 Nginx反向代理

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

    相关 Nginx反向代理

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

    相关 nginx 反向代理

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