【干货】linux使用nginx一个80端口部署多个项目(spring boot、vue、nuxt、微信小程序)
本人只有一个阿里云的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、微信小程序)的更多相关文章
- 分享一个自搭的框架,使用Spring boot+Vue+Element UI
废弃,新的:https://www.cnblogs.com/hackyo/p/10453243.html 特点:前后端分离,可遵循restful 框架:后端使用Spring boot,整合了aop.a ...
- 微信小程序Nginx环境配置
环境配置概述 主要内容: SSL免费证书申请步骤 Nginx HTTPS 配置 TLS 1.2 升级过程 微信小程序要求使用 https 发送请求,那么Web服务器就要配置成支持 https,需要先申 ...
- 微信小程序 springboot nginx 做图片存储 上传 浏览
微信小程序前端-springboot后端-nginx图片存储 前言 本人小白一名,这是第一次学习微信小程序,特此做个记录. 首先准备nginx做图片存储 选择一个地址存放图片 #我的地址 [root@ ...
- nginx 80 端口 部署多个Web
1.修改默认nginx.conf 文件 加入 include /usr/www/ngconfs/*.conf; 读取ngconfs文件下所有 *.conf文件 2.ngconfs 下多个文件创建 第二 ...
- 解决启动nginx时报80端口被占用的问题
如何解决启动nginx时报80端口被占用 最近公司的的一个服务器上需要部署多个项目,但80端口只有一个,所有只有使用Nginx来代理,当访问域名时就可以自动 转到IP:端口号,而不需要在域名后面加端口 ...
- Win7下nginx默认80端口被System占用,造成nginx启动报错的解决方案
Win7下nginx默认80端口被System占用,造成nginx启动报错的解决方案 在win7 32位旗舰版下,启动1.0.8版本nginx,显示如下错误: [plain] 2012/04/0 ...
- 在windows和linux下如何查看80端口占用情况?是被哪个进程占用?如何终止等
一.在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入&quo ...
- linux 用tcpdump查看80端口访问有哪些IP
linux 用tcpdump查看80端口访问有哪些IP: tcpdump -i eth0 -tnn dst port 80 -c 1000|awk -F"." '{print $1 ...
- 从0开始,手把手教你开发并部署上线一个知识测验微信小程序
上线项目演示 微信搜索[放马来答]或扫以下二维码体验: 项目源码 项目源码 其他版本 Vue答题App实战教程 Hello小程序 1.注册微信小程序 点击立即注册,选择微信小程序,按照要求填写信息 2 ...
随机推荐
- 枚举 switch case 标签必须为枚举常量的非限定名称
枚举 switch case 标签必须为枚举常量的非限定名称 错误描述: Error:(63, 24) 错误: 枚举 switch case 标签必须为枚举常量的非限定名称. 解决思路: switch ...
- Java动态代理——框架中的应用场景和基本原理
前言 之前已经用了5篇文章完整解释了java动态代理的原理,本文将会为这个系列补上最后一块拼图,展示java动态代理的使用方式和应用场景 主要分为以下4个部分 1.为什么要使用java动态代理 2.如 ...
- 关于Java引用,你必须知道这些
引用 Java 虚拟机接管了所有的内存分配与回收工作,极大地减少了程序员的工作量和错误率.GC 在回收内存时,通常采用被称为可达性分析的算法判断一个对象是否可以回收.而在可达性分析中,对象的引用有着决 ...
- Java学习的第四十四天
1.例5.4将二维数组的行列互换 public class cjava { public static void main(String []args) { int [][]a=new int [][ ...
- python时间Time模块
时间和日期模块 关注公众号"轻松学编程"了解更多. python程序能用很多方式处理日期和时间,转换日期格式是一种常见的功能. python提供了一个time和calendar模块 ...
- 洛谷P6623——[省选联考 2020 A 卷] 树
传送门:QAQQAQ 题意:自己看 思路:正解应该是线段树/trie树合并? 但是本蒟蒻啥也不会,就用了树上二次差分 (思路来源于https://www.luogu.com.cn/blog/dengy ...
- 【Kata Daily 190912】Alphabetical Addition(字母相加)
题目: Your task is to add up letters to one letter. The function will be given a variable amount of ar ...
- 为什么重写 equals() 方法,一定要重写 hashCode() 呢?| HashMap
微信搜索「码农田小齐」,关注这个在纽约的程序媛,回复「01-05」可以获取计算机精选书籍.个人刷题笔记.大厂面经.面试资料等资源,么么哒- 首先我们有一个假设:任何两个 object 的 hashCo ...
- 利用sklearn实现knn
基于上面一篇博客k-近邻利用sklearns实现knn #!/usr/bin/env python # coding: utf-8 # In[1]: import numpy as np import ...
- ERP的主数据的操作与设计--开源软件诞生25
赤龙ERP主数据管理讲解--第25篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redr ...