Nginx-第三篇:在实践中通过域名进行转发

在nginx实践中,大多数在内网环境中访问时,一般会采用ip+端口的访问形式。而互联网访问时,用户习惯性提供的是域名,默认端口为80。

其中nginx.conf配置文件不能直接配置域名,在启动nginx时,会出现域名无法解析的错误。

域名解析本人遇到两种方式:

1.在安装nginx软件的linux系统中的hosts文件中对域名进行解析。(编辑hosts文件,vi /etc/hosts)

#配置例子如下
102.54.94.97   www.xxxxx.com

2.通过dns进行域名解析(linux高版本配置在固定文件里  vi /etc/resolv.conf) 这个我没有配置过,具体在配置时,会遇到什情况,还需要根据环境进行调整。

nameserver 8.8.8.8  #google免费DNS解析地址
nameserver 114.114.114.114 #电信DNS解析地址
nameserver 210.145.6.58 #改成公司的DNS服务器

不生效重启network服务

service network stop
service network start


验证服务器域名解析配置是否正确,是否能正常通讯。

curl -I http://www.xxxxx.com/HLXY99/lixy.htm

返回状态码为200

配置nginx.conf文件达到通过域名转发如下(我在进行域名转发时,仅添加两个proxy_set_header,其他的还需视情况而定):

#配置域名,开放的端口为80,端口配不配都可(在dns中需要对域名进行解析,不然启动的时候会报错)
upstream www_server_my{
            server www.xxxxx.com;
}

server {
            listen 7029;
            server_name localhost;

#访问my
location /HLXY99 {
             ···
             proxy_pass https:// www_server_my;#代理服务器地址
             # 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
             proxy_set_header Host www.xxxxx.com;#为了实现通过域名转发,$host改成域名
             proxy_set_header X-Forwarded-For $remote_addr;
             ···
}
}

curl -I http://127.0.0.1:7029/HLXY99/lixy.htm测试nginx.conf的配置是否正确。(其中7029为调用时监听的端口)


介绍一下proxy_set_header其他功能

#可以设置请求头信息
proxy_set_header Host $host:$server_port;#通过ip+端口请求
#proxy_set_header Host www.xxxx.com;#通过域名请求
proxy_set_header X-Real-IP $remote_addr;#获取客户端ip地址
proxy_set_header X-Real-PORT $remote_port;#获取客户端端口
proxy_set_header X-Forwarded-For $http_x_forwarded_for;#请求端真实ip

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值