个人服务器nginx配置部署多个web项目

3,127 阅读2分钟

一、前言

因为后面打算是自己要做一些感兴趣的功能项目,所以需要先配置自己服务器上不同web项目(blog、personal projects等),所以为了把这些静态资源或者后台运行的服务映射到nginx80端口,因此展开了一些尝试。

二、尝试

  1. nginx多个域名可以解析道同一个ip,配置多个server去监听80端口,每个server配置不同的server_name和root,这样可以完全区分开来。

    再说下我为什么做,因为是个人服务器,还没有备案域名,所以这种方式走不通,因此跳过。。

  2. nginx.conf下对server配置,配置不同的location再走proxy_pass到其他本地启动的服务上,这里其实是可以对一个项目做到的,监听80的端口,再配置一个单独的location映射到本地开启的 http://127.0.0.1:8888/ 项目,如下:

server {
    listen       8080;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   html;
        index  index.html index.htm;
    }

    location /blog {
        proxy_pass http://127.0.0.1:8888/;
    }

    location ~ .*\.(js|css)$ {
        proxy_pass http://127.0.0.1:8888;
    }
}
  1. 但是如果要对多个项目实现映射,就有一个我目前解决不了的问题,.html文件可以加载,但是本地开启的这些项目的js、css文件不知道如何去区分开来,如果要对每个文件进行rename来走正则匹配到应该匹配到的资源文件,也是比较麻烦的事情,且某些文件还是无法去匹配到原来的路径,会遇到如下的错误,所以此方法放弃。

  2. 不想多折腾,老实先开放一个90端口用于我新开的项目。

三、总结

nginx从我刚开始做前端的时候,项目就有需求要配置这些,但也只是对本地不同端口不同静态资源做一些调试,配置https证书、gzip这些等等,有些问题还是需要专业的运维人员去处理,如果有熟悉这块的朋友看到这篇文章,麻烦给我提一些建议吧,谢谢!