Administrator
发布于 2024-10-08 / 8 阅读
0

nginx 设置反向代理

server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
  1. listen 80;:这一行指示Nginx监听80端口,这是HTTP协议的默认端口。

  2. server_name your_domain.com;:这里指定了虚拟主机的域名,即your_domain.com。当请求到达服务器时,Nginx会检查请求的域名是否与server_name匹配,如果匹配,则使用该server块中的配置。

  3. location / {:这一行开始定义一个location块,它决定了对于何种URI请求应用以下配置。这里的/表示匹配所有URI。

  4. proxy_pass http://localhost:8080;:这一行设置了一个反向代理,将所有匹配的请求转发到http://localhost:8080。这意味着所有传入的HTTP请求都会被发送到本地机器的8080端口,通常是另一个服务(如Web应用服务器)正在监听的端口。

  5. proxy_set_header Host $host;:这一行设置了转发请求时的Host头部。$host是Nginx的内置变量,它包含请求中的原始Host头部的值。这确保了后端服务器收到请求时,Host头部是客户端请求的原始域名。

  6. proxy_set_header X-Real-IP $remote_addr;:这一行添加或修改了X-Real-IP头部,将其设置为客户端的IP地址($remote_addr变量的值)。这允许后端服务器知道原始请求的IP地址,因为经过代理后,请求的源IP地址可能会变成代理服务器的IP地址。

  7. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;:这一行设置或追加了X-Forwarded-For头部,用于添加客户端的IP地址。如果已经存在X-Forwarded-For头部,Nginx会追加客户端的IP地址到现有值的前面。这有助于后端服务器理解请求经过的路径。