本人只有一个阿里云的ip和一个已经解析过的域名,然后想用80端口部署多个项目,比如输入:

www.a.com和www.b.com与www.c.com就能访问不同项目,而不用输入不同端口号区分。

1.这里就只部署单体springboot项目,比较简单,打包成jar包,端口号改成没有被占用的就行

(我这里用了8080端口,然后访问没问题,要放到nginx里也可以,本人这里没有放)

2.微信小程序的话好像只能用80、443端口来部署,不然报错,如下:

3.vue项目属于手机端,nuxt项目属于pc端,和微信小程序项目都要用到80端口,这里就要用到nginx。

(nginx还提供区别pc端和手机端,下面会讲)

我这里的nuxt项目是用pm2管理(也可以用docker),所以要先安装好nodejs与pm2,

不过最新版的nodejs好像不支持centos7以下的,make时会报错。

(试过centos7以下的安装9.0版本以下的nodejs就可以,9.0版本的话没试过)

node安装:

https://blog.csdn.net/weixin_40861707/article/details/109455582

https://www.cnblogs.com/sirdong/p/11447739.html

pm2安装与部署nuxt项目:

https://segmentfault.com/a/1190000020452519?utm_source=tag-newest

docker部署nuxt项目:

https://www.sunofbeach.net/a/1218817449269407744

https://www.bilibili.com/video/BV1QC4y1b7gL?p=49

4.nginx部署这里就不说了,下面提供几2个(centos7以上与7以下好像有点差异):

https://blog.csdn.net/t8116189520/article/details/81909574

https://blog.csdn.net/jdk_wangtaida/article/details/88571920

如果安装nginx出现问题,可以看下这个:

https://blog.csdn.net/copenhageng/article/details/109500483

5.我这里的微信小程序项目使用tomcat部署的,tomcat之前用了80端口,所以要改下配置文件,

在tomcat的安装目录里的conf包找到server.xml文件,修改如下:

<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8443" />

这里的端口号要和下面的配置文件一样,修改后记得重启下

6.安装好nginx后,在安装目录下找到nginx包里的conf里nginx.conf文件,并修改下

server {
  listen 8089;//如果默认不是80端口的话就不要改,是的话最好改下,以防其它项目调用产生问题

  server_name  www.baidu.com;//这里最好改下,改成自己的域名,没用到这端口的话就用随便填吧

}

并在http{}里的最下面添加:

include /home/nginxConf/*.conf;//可改成改成自己的路径

这里的站点可以随便创建一个包存放,我的放在nginxConf文件包里统一管理。

设置好端口后,注意要开放端口,如果不想关闭防火墙,可以开放,命令如下:

firewall-cmd --zone=public --add-port=端口号/tcp --permanent

然后重启防火墙:

firewall-cmd --reload

注意:上面时centos7以上的命令,centos7以上和centos7以下命令会不同,详情可看:

https://blog.csdn.net/Lang_Perry/article/details/93194639

7.在/home/nginxConf里新建三个conf文件分别对应vue项目、nuxt项目、微信小程序项目,文件名随便取。

我这里分别是mobile.conf、pc.conf、wx.conf文件,添加或修改后记得重启nginx:

https://blog.csdn.net/erdfty/article/details/89919513

7.1(vue项目)mobile.conf文件添加:

server {
listen 80;
server_name 自己的域名;
index index.php index.html index.htm default.php default.htm default.html;
root /usr/local/nginx/html/vue;//修改成自己的路径

#判断是pc端就跳转到pc端项目(判断是pc端的话就在 ~ 加上 ! ,否则就去掉)
if ( $http_user_agent !~* "(midp|ipad|Android|iPhone|windows mobile|Windows Phone|windows ce|UC|Kindle)" )
{
rewrite ^(.*)$ http://自己的域名$uri redirect;(要加上 http://,不然跳转会报错)
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

7.2(nuxt项目)pc.conf文件添加:

server {
listen 80;
server_name 自己的域名;
index index.php index.html index.htm default.php default.htm default.html;
root /usr/local/nginx/html;//修改成自己的路径

#判断是手机端就跳转到手机端项目
if ( $http_user_agent ~* "(midp|ipad|Android|iPhone|windows mobile|Windows Phone|windows ce|UC|Kindle)" )
{
rewrite ^(.*)$ http://自己的域名d$uri redirect;(要加上 http://,不然跳转会报错)
}
location / {
proxy_pass http://127.0.0.1:3000;//改成自己要映射的路径和端口
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

7.3(小程序项目) wx.conf文件添加:

server {
listen 80 default_server;
server_name 自己的域名;
index index.php index.html index.htm default.php default.htm default.html;
root /usr/local/apache-tomcat-8.5.23/webapps;//修改成自己的路径
location / {
proxy_pass http://127.0.0.1:8081;//改成自己要映射的路径和端口
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

}

8.我这里只有一个ip和一个已解析的域名,但是有三个文件要配置不同域名,怎么办。

8.1

第一个办法就是通过使用宝塔面板之类的来进行添加站点,部署项目,这个又快又简单。

8.2

第二个办法就是在阿里云域名解析里多添加几个记录就行,主机记录随便填,记录值就是ip。

然后就在相对应文件里修改。比如我的外网ip是:123.123.123.123,对应解析的域名是:www.a.com

那我在mobile.conf文件设置的域名是:mobile.a.com

pc.conf文件设置的域名是:www.a.com

wx.conf文件设置的域名是:123.123.123.123(这里项目是小程序,所以本人用ip)

就这样,在浏览器里分别输入相对应域名就可以看到效果(亲测有效)。

(如果哪位大神还有更好解决的办法,请留言交流,转载请注明出处,十分感谢)

【干货】linux使用nginx一个80端口部署多个项目(spring boot、vue、nuxt、微信小程序)的更多相关文章

  1. 分享一个自搭的框架,使用Spring boot+Vue+Element UI

    废弃,新的:https://www.cnblogs.com/hackyo/p/10453243.html 特点:前后端分离,可遵循restful 框架:后端使用Spring boot,整合了aop.a ...

  2. 微信小程序Nginx环境配置

    环境配置概述 主要内容: SSL免费证书申请步骤 Nginx HTTPS 配置 TLS 1.2 升级过程 微信小程序要求使用 https 发送请求,那么Web服务器就要配置成支持 https,需要先申 ...

  3. 微信小程序 springboot nginx 做图片存储 上传 浏览

    微信小程序前端-springboot后端-nginx图片存储 前言 本人小白一名,这是第一次学习微信小程序,特此做个记录. 首先准备nginx做图片存储 选择一个地址存放图片 #我的地址 [root@ ...

  4. nginx 80 端口 部署多个Web

    1.修改默认nginx.conf 文件 加入 include /usr/www/ngconfs/*.conf; 读取ngconfs文件下所有 *.conf文件 2.ngconfs 下多个文件创建 第二 ...

  5. 解决启动nginx时报80端口被占用的问题

    如何解决启动nginx时报80端口被占用 最近公司的的一个服务器上需要部署多个项目,但80端口只有一个,所有只有使用Nginx来代理,当访问域名时就可以自动 转到IP:端口号,而不需要在域名后面加端口 ...

  6. Win7下nginx默认80端口被System占用,造成nginx启动报错的解决方案

    Win7下nginx默认80端口被System占用,造成nginx启动报错的解决方案   在win7 32位旗舰版下,启动1.0.8版本nginx,显示如下错误:  [plain] 2012/04/0 ...

  7. 在windows和linux下如何查看80端口占用情况?是被哪个进程占用?如何终止等

    一.在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入&quo ...

  8. linux 用tcpdump查看80端口访问有哪些IP

    linux 用tcpdump查看80端口访问有哪些IP: tcpdump -i eth0 -tnn dst port 80 -c 1000|awk -F"." '{print $1 ...

  9. 从0开始,手把手教你开发并部署上线一个知识测验微信小程序

    上线项目演示 微信搜索[放马来答]或扫以下二维码体验: 项目源码 项目源码 其他版本 Vue答题App实战教程 Hello小程序 1.注册微信小程序 点击立即注册,选择微信小程序,按照要求填写信息 2 ...

随机推荐

  1. nginx负载均衡常见问题配置信息

    nginx为后端web服务器(apache,nginx,tomcat,weblogic)等做反向代理 几台后端web服务器需要考虑文件共享,数据库共享,session共享问题.文件共享可以使用nfs, ...

  2. D. Kilani and the Game 解析(裸BFS、實作)

    Codeforce 1105 D. Kilani and the Game 解析(裸BFS.實作) 今天我們來看看CF1105D 題目連結 題目 給一個\(n\times m\)的地圖,地圖上有幾種格 ...

  3. 使用 Dockerfile 文件但是不使用缓存生成镜像

    前一段时候使用 Dockerfile 重新部署 NetCore3.1 项目的时候很顺利,由来由于一些原因,我把以前的镜像删除,如果我们大家继续使用 docker  build 命令去生成镜像的话就会报 ...

  4. 一篇搞定Java集合类原理

    Java集合类实现原理 1.Iterable接口 定义了迭代集合的迭代方法 iterator() forEach() 对1.8的Lambda表达式提供了支持 2. Collection接口 定义了集合 ...

  5. 使用 scrapy-redis实现分布式爬虫

    Scrapy 和 scrapy-redis的区别 Scrapy 是一个通用的爬虫框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础 ...

  6. .NET Core如何进行请求转发?

    前言 冒个泡,近日,有关注我公众号的小伙伴私信我,遇到一个问题搞了很久没解决,此问题具有参考意义,这里跟大家分享下,希望对后续可能有需要的你能有所参考和帮助. 请求转发问题 内网环境跟外网隔离,现在外 ...

  7. CF1303G Sum of Prefix Sums

    点分治+李超树 因为题目要求的是树上所有路径,所以用点分治维护 因为在点分治的过程中相当于将树上经过当前$root$的一条路径分成了两段 那么先考虑如何计算两个数组合并后的答案 记数组$a$,$b$, ...

  8. ajax传值出现乱码问题

    第一种:前台传值到后台,浏览器控制台打印正常,controller接收后成了乱码. 后台controller层加上两行转换代码 name=URLDecoder.decode(name,"ut ...

  9. Flink的sink实战之三:cassandra3

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  10. JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果

    HTML代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <l ...