问题描述

站长在搭建个人网站时,为了节省经费往往只会购买一台服务器,但却有部署多套网站的需求。

另外为了提高安全性或其他限制会使用 https 访问,一般也只会购买单域名证书或免费的证书,考虑使用单域名会是不错的选择。

简单举例

以 Typecho 为例,我们在一台服务器上需要搭建一个博客主站,以及通过二级子目录访问的导航站,另外还需要一套部署在 tomcat 下的 API 服务。

解决方法

不多说,直接上 nginx 配置文件。

server {
    listen               80;
    server_name          lervor.com;
    root                 /usr/local/www/html;
    index                index.html index.htm index.php;

    # API 接口服务
    location /api/ {
        proxy_pass       http://127.0.0.1:8080/api/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # 支持 pathinfo 伪静态
    location ~ .*\.php(\/.*)*$ {
        include fastcgi.conf;
        fastcgi_pass  127.0.0.1:9000;
    }

    # 导航(二级目录),nav 文件夹放在 root 根路径下,如 /usr/local/www/html/nav
    location /nav {
        if (!-e $request_filename) {
            rewrite ^(.*)$ /nav/index.php$1 last;
        }
    }

    # 博客主站点
    location / {
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php$1 last;
        }
    }
}

注意把以上配置中的 lervor.com 换成你自己的实际域名和实际目录存放地址

参考文章

Typecho安装常见问题