一、前言
因为后面打算是自己要做一些感兴趣的功能项目,所以需要先配置自己服务器上不同web项目(blog、personal projects等),所以为了把这些静态资源或者后台运行的服务映射到nginx80端口,因此展开了一些尝试。
二、尝试
-
nginx多个域名可以解析道同一个ip,配置多个server去监听80端口,每个server配置不同的server_name和root,这样可以完全区分开来。
再说下我为什么做,因为是个人服务器,还没有备案域名,所以这种方式走不通,因此跳过。。
-
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;
}
}
-
但是如果要对多个项目实现映射,就有一个我目前解决不了的问题,.html文件可以加载,但是本地开启的这些项目的js、css文件不知道如何去区分开来,如果要对每个文件进行rename来走正则匹配到应该匹配到的资源文件,也是比较麻烦的事情,且某些文件还是无法去匹配到原来的路径,会遇到如下的错误,所以此方法放弃。
-
不想多折腾,老实先开放一个90端口用于我新开的项目。
三、总结
nginx从我刚开始做前端的时候,项目就有需求要配置这些,但也只是对本地不同端口不同静态资源做一些调试,配置https证书、gzip这些等等,有些问题还是需要专业的运维人员去处理,如果有熟悉这块的朋友看到这篇文章,麻烦给我提一些建议吧,谢谢!