nginx-基于域名的虚拟主机

nginx-基于域名的虚拟主机

1. 问题

情景:

  有一台云主机和一个域名xxx.cn(多个解析记录),在服务器上部署了一个blog项目,要实现通过blog.xxx.cn才能访问到这个项目。

解析记录有:

  

nginx配置文件(关键代码):

...

server {
        listen       80;
        server_name  blog.xxx.cn;
        location / {
            proxy_pass http://0.0.0.0:8001; # blog项目使用端口
        }
}

server {
        listen       80;
        server_name  xxx.cn;
        location / {
            root   html;
            index  index.html index.htm;
        }
}

...

效果为:

  除了xxx.cn外,blog.xxx.cn、test.xxx.cn、www.xxx.cn都能访问到blog项目。

2. 解决方法

  将上述nginx配置文件(关键代码)中的两个server交换位置

3. 总结

  nginx基于域名的虚拟主机,当域名不在配置的server中时,会使用第一个server。

欢迎交流

  如有错误,欢迎大佬指出。如有其它看法,期待一起交流。

原文地址:https://www.cnblogs.com/yijue-lu/p/11372491.html