nginx反向代理配置(nginx.conf+proxy_set_header)

本文介绍了如何在Nginx中配置反向代理,特别是proxy_set_header的用法,包括定义请求头Host、X-Real-IP、REMOTE-HOST和X-Forwarded-For,以便于后端服务器获取客户端真实IP和其他关键信息。通过实例展示了Nginx配置文件中的相关设置,帮助理解其工作原理。

公司最近有一些反向代理的需求,需要将nginx部署在互联网DMZ区。

之前只有利用nginx做过简单的web服务器,并未真正在生产环境上使用反向代理。

本公司生产环境目前配置如下:

[root@szweb01 conf]# cat nginx.conf
user  root;
worker_processes  4;
error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;
pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  120;
    #gzip  on;

    server {
        listen       7013;
        server_name  www.ssssss.net;
        access_log  logs/soochow.host.access.log  main;
        location / {
        proxy_buffering off;
        proxy_pass      http://10.0.0.1:7023;
        proxy_redirect          off;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        REMOTE-HOST $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size    60m;
        proxy_read_timeout      600s;
        proxy_connect_timeout   30s;
        }

        #error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}


其中要着重说一下几个配置,研究了好几天:

1.error_log 

其实error_log分好几个级别,notice、info等,按照日志详细程度来区分的,要想看的全,直接全部打开。

2.proxy_set_header

这个参数估计很多人比较难理解,proxy_set_header是定义请求头,不懂的可以百度 http 请求头,参数意义基本都是一样的。

是nginx向后端被代理服务器转发http请求时,自定义增加的请求头,方便后台被代理服务器了解更多的http请求信息。

一般会有如下的配置。

proxy_set_header        Host $host;        #定义请求头中host的配置,一般为$host,必要时需要加端口(大多数为内网环境是需要加特定的端口,因为内网访问的时候,会采用ip+端口的访问形式)。而互联网访问时,用户习惯性的直接输入域名,域名默认就是80端口, $host表明客户端请求的主域名值,默认是80端口。
proxy_set_header        X-Real-IP $remote_addr;  #定义请求头中真实IP地址,方便后端被代理服务器获取真实的IP。
proxy_set_header        REMOTE-HOST $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值