nginx 代理ip 和域名

本文详细解析了在Linux服务器上使用Nginx进行代理配置的方法,对比了代理IP与代理域名的不同设置,特别是proxy_set_header Host参数的使用。通过具体实例展示了如何正确配置Nginx,以实现对后台服务的有效代理,包括转发真实IP和处理不同类型的请求头。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中碰到linux 服务器部署项目 访问后台的拦截代理

使用nginx来做 代理ip和代理域名是不同的

主要在  proxy_set_header Host 

在代理ip时 对应的值为

proxy_set_header Host $host;

代理域名的时候值为你的域名

proxy_set_header Host "www.natappfree.cc";

host详解

1、 proxy_set_header Host $http_host;
不改变请求头 。
2、proxy_set_header Host host;如果客户端请求头中没有携带这个头部,那么传递到后端服务器的请求也不含这个头部。这种情况下,使用host;如果客户端请求头中没有携带这个头部,那么传递到后端服务器的请求也不含这个头部。 这种情况下,使用host;如果客户端请求头中没有携带这个头部,那么传递到后端服务器的请求也不含这个头部。这种情况下,使用host变量它 的值在请求包含“Host”请求头时为“Host”字段的值,在请求未携带“Host”请求头时为虚拟主机的主域名;
3、proxy_set_header Host host:host:host:proxy_port;
服务器名可以和后端服务器的端口一起传送:
4、如果某个请求头的值为空,那么这个请求头将不会传送给后端服务器:
proxy_set_header Accept-Encoding “”;
5、用户真实的ip地址转发给后端服务器
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;

具体的值得详解参考https://blog.youkuaiyun.com/tianyekpp/article/details/71209720?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

还有就是  proxy_pass http://www.natappfree.cc/;注意无论是ip还是域名  后面都要加斜杠  /  重点

下面直接上代码

域名的

server {
  listen 8008;
  server_name localhost;
  access_log  logs/www_access.log  main;
  index admin.html index.htm index.jsp;
  root /data/ptg_avue/;
  
  #error_page 404 /404.html;
  #error_page 502 /502.html;
  location / {
	}

location ^~/api {
           proxy_set_header Host "www.www.com";
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_buffering off;
           rewrite ^/api/(.*)$ /$1 break;
           proxy_pass http://www.www.com/;
      }
}

ip的

server {
  listen 8090;
  server_name localhost;
  access_log  logs/www_access.log  main;
  index admin.html index.htm index.jsp;
  root /data/ptg_avue/;
  
  #error_page 404 /404.html;
  #error_page 502 /502.html;
  location / {
	}

location ^~/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_buffering off;
           rewrite ^/api/(.*)$ /$1 break;
           proxy_pass http://localhost:8001;
      }
}

 

同一ip(都是80端口)可以绑定无数个域名 配置简单 里面包含一个配置文档:配置文档.doc 看一遍 大部分人都会设置了。 内容如下: NGNIX配置文档 1.解压文件到相应文件夹下(我解压到D:/下) (这里是图片) 目录结构如上 2.在D:\nginx\目录下用记事本新建一个文本文档改名为 proxy.conf。 proxy.conf里面的内容格式如下: server { listen 80; server_name www.*****.com; location / { proxy_pass http://192.168.45.1:8045; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } (完整拷贝上面的内容server_name www.*****.com; 这里面的域名即是来访域名 proxy_pass http://192.168.45.1:8045; 这里面的域名(http://192.168.45.1:8045)即是内部跳转的地址,将该内容拷贝多份实现不同来访域名的跳转) 如下: 3.找到D:\nginx\conf下nginx.conf文件用记事本打开 在文段末尾大括号前加上 include proxy.conf;(就是加载刚刚新建的那个文件(注意路径)) 4.进入cmd 进入D盘: d: 进到nginx文件夹下:cd nginx 启动nginx.exe:start nginx Cmd窗口会闪一下 进程里面会多了个 浏览器里面输入:http://127.0.0.1 将出现: Nginx的欢迎界面。 注: nginx -s stop // 停止nginx nginx -s reload // 重新加载配置文件 nginx -s quit // 退出nginx nginx-1.3.9.zip(这个版本) (1分钟搞定只是夸张说法啦,给你增加信心的啦,真正的操作起来,因人而异,没搞定的耐心再试试,自己xp系统亲测成功,不喜欢的无拍砖哦,实在搞不定的加我qq852208555 一起研究下 谢谢!)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值