由于实验需求,要在同一台服务器的几个端口搭建网页服务,托万能的Google和CSDN的福,便有了这篇文章

添加泛解析

首先,去域名服务提供商添加一个泛解析条目,以GoDaddy为例:A类型,名称为*,值与你一级域名对应IP相同即可。

查找nginx配置文件

➜  ~ sudo nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

找到配置文件位于/usr/local/nginx/conf
进入目录,首先做个备份再进行修改:

sudo cp nginx.conf nginx.conf.bak
sudo vim nginx.conf

做非80端口转发

本部分特别感谢hoohack的日志要做转发,可以使用Nginx的proxy_pass配置项。Nginx监听80端口,接收到请求之后就会转发到要转发的URL。具体的配置如下:

server {
    server_name www.test.com
    listen 80;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

将这段配置直接添加进http{}条目下就可以了。
对于需要获取真实IP的业务,可以手动添加以下配置:

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host:80;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

直接替换上一条目中的location / {}的内容即可。
其中proxy_set_header这句配置是改变http的请求头。而Host是请求的主机名,X-Real-IP是请求的真实IP,X-Forwarded-For表示请求是由谁发起的。

重载配置文件

保存修改之后重载配置文件即可:

sudo nginx -s reload

参考链接

查看nginx配置文件路径的方法
【nginx配置】nginx做非80端口转发
nginx.conf配置文件解析(http、server、location)

1 Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注