第六天

187 阅读2分钟

端口情况

8800:nginx监听

8081:tomcat监听

3306:mysqld监听

6349:redis监听

部署项目到服务器

  1. 前端资源

idea中# npm run build把前端资源打包为dist文件

进入服务器:

xftp把dist文件中各文件传入nginx下的html中

改/usr/local/nginx/conf/下的nginx.conf:监听端口改为8800,再加上画红线的一行

image.png

带着配置文件启动nginx: # /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

2.后端资源

照常 java -jar ... .jar

部署过程产生的一些问题

  1. 阿里云安全组: 限制外网访问服务器上某些端口

  2. 一个现象:

    服务器外网ip为8.130.27.140,同时nginx部署前端资源,tomcat部署后端资源,nginx存放后端资源数据。nginx监听8800,tomcat监听8081,redis bind为0.0.0.0、监听6379。

    阿里云安全组配置的是:仅外网1.2.3.4可访问服务器的6379端口。

    那么:

    如果后端资源中,配置的redis为:

image.png 那么后端资源将访问不到redis

原因分析(猜测):尽管后端资源与redis在同一个服务器,但是此时后端资源访问redis是走的外网(因为写的是服务器外网ip)(也许写内网ip会不一样,如果写内网ip可能会走内网,而刚好后端资源与redis在同一个服务器,走内网是行得通的),而外网只对ip 1.2.3.4开放了6379端口.

  1. 另一个现象:

    服务器外网ip为8.130.27.140,同时nginx部署前端资源,tomcat部署后端资源,nginx存放后端资源数据。nginx监听8800,tomcat监听8081,redis bind为0.0.0.0、监听6379。

    服务器防火墙未开放8081端口。

    阿里云安全组配置的是:仅外网1.2.3.4可访问服务器的6379端口。并且没有对任何外网开放8081端口。

    我的想法是:用户面向前端资源即可,后端资源的端口不需要暴露出来,所以8081端口对外网全关闭,防火墙也没开。

    但事实上:必须把8081端口对0.0.0.0开放(仅对8.130.27.140开放也不行),并且防火墙开8081端口,用户才能通过访问前端资源获得后端数据。

    原因分析(猜测):前端资源中配置的后端资源请求路径是后端资源所在服务器的外网ip,所以说前端资源访问后端资源是走的外网。也就是说没有利用它们在同一台服务器上内网是相通的这个特性。但不知道为什么必须把8081端口对0.0.0.0开放(为什么仅对8.130.27.140开放也不行)???