nginx需要配置二级域名以达到不同域名达到不同程序的效果时,就需要设置反向代理,

否则就需要使用ip/域名:端口的形式,既不利于记忆,也不美观

解析二级域名

首先要将你想要使用的域名解析到同一ip地址,比如www.halloworlds.cn,wiki.halloworlds.cn

修改Nginx配置文件

首先找到你正在使用的Nginx配置文件,一般他会在/etc/nginx/conf.d,如果你是用lnmp之类的包安装的,那么创建虚拟主机后域名的vhost配置文件一般会在/usr/local/nginx/conf

然后在里面添加一个server块,如:

server {
listen 80;
server_name www.halloworlds.cn;//修改域名
location / {
proxy_pass http://127.0.0.1:8080;修改端口
index index.html index.htm;
}
}
server {
listen 80;
server_name wiki.halloworlds.cn;//修改域名
location / {
proxy_pass http://127.0.0.1:8888;//修改端口
index index.html index.htm;
}
}
//另一种模板
server
{
        listen 80;
        server_name api.halloworlds.cn; 
        location / {
                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;
                proxy_pass http://localhost:9090;
        }
}

保存完后,输入nginx -s reload -t检查配置文件并重启。这样,就能使你在访问www.和wiki.是访问到的实际是8080,8888端口上的程序,请注意按自己需求替换YOU_DOMAIN&PORT

一些问题

还需要注意的是,如果你需要使用https加密通信,记得把监听端口改为443,否则转发不出去的
另外,请找到你正使用的配置文件,有些人使用的是一键部署或者是虚拟主机部署,按照一般的教程去改默认的nginx.conf发现根本没有效果,那是因为你的nginx使用的不是你修改的那个配置文件,如果你需要指定使用某一配置文件启动,请使用nginx -s reload -c /xxx/xxxx/nginx.conf,-c后接你指定的文件的路径