前后端服务器部署代码

本文介绍了Nginx的配置,包括静态文件托管和反向代理,以及Java后端部署(如Ruoyi框架)的实践。还探讨了多进程管理工具forever和PM2,以及SpringBoot项目如何配置HTTPS以支持SSL/TLS。
摘要由CSDN通过智能技术生成

前端(nginx 配置文件)

/usr/local/src/screen/dist 为静态文件的托管的路径

server {
    listen       8001;
    server_name  localhost;
    root /usr/local/src/screen/dist;

    location / {
        try_files $uri $uri/ /index.html;
    }
    location /dist {
        try_files $uri $uri/ /dist/index.html;
    }
}

Java后端部署(ruoyi 为例)

Java jar包运行

nohup java -jar ruoyi-admin.jar > ruoyilogout.log 2>&1 &

接口转发请求

# 接口转发到8080端口下
location /prod-api/ {
  proxy_set_header Host $http_host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header REMOTE-HOST $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_pass http://localhost:8080/;
}

其他部署方案

1 nohup

1.1 基本命令 nohup node server.js&

注意,运行此命令时需要在server.js 目录下方可;

1.2 用过的一些命令-多个端口启动

cd /home/node && nohup node app.js -lp 3001 >log1.log &

cd /home/node && nohup node app.js -lp 3002 >log2.log &

cd /home/ && nohup node app.js -lp 3003 >log3.log &

1.3 个人使用过程中有意外退出的情况

一般使用第二种方式forever;

2 forever,forever功能很强大,也很多,此处只列出目前用到的一些基本的

2.1 安装forever

npm install forever -g

2.2 启动服务

service forever start

此处可能会报一些错误,一般可以不用理会,主要是看它的命令是否执行;

2.3 使用forever 启动js

forever start app.js

启动完可以跟一句 forever list   查看启动情况

2.4 停止js文件

forever stop app.js

2.5 输出日志

forever start -l forever.log -o out.log -e err.log app.js

输出日志的命令,注意日志的文件名不要重复,否则会报错,其中forever.log 会在/root/.forever/目录下;

查看运行情况 使用 tail -f out.log 即可;

其实默认情况下/root/.forever/还是会生成日志文件的,只不过日志的名字是随机字符串,不好管理,只可根据时间做判断;

2.6 带参数启动

forever start app.js -tu http://127.0.0.1:8181/javaweb/ -lp 3001

forever start app.js -tu http://127.0.0.1.53003/javaweb/ -lp 3002

自然,参数的具体含义需要在代码中约定好的;

2.7 重启js文件

forever restart app.js

2.8 查看正在运行的进程

forever list

3 PM2

文档地址:http://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/

nodejs如果只是以单线程的方式运行,无法充分利用多核CPU的性能;这个时候使用PM2就可以很容易的实现多进程启动;

他可以在一个端口下启动指定数量的node进程来充分利用CPU的性能;

记录几个简单的命令;

3.1 安装

$ npm install pm2@latest -g
# or
$ yarn global add pm2
3.2 启动

$ pm2 start app.js
$ pm2 start app.js -i 2 启动2个进程
$ pm2 start app.js -i max 根据有效CPU数目启动最大进程数目
3.3 停止

$ pm2 stop all 停止所有进程
$ pm2 stop 0 停止指定的进程
3.4 重启

$ pm2 restart all 重启所有进程
$ pm2 restart 0 重启指定的进程
3.5 杀死进程

$ pm2 delete 0 杀死指定的进程
$ pm2 delete all 杀死全部进程
3.5 查看进程状态

$ pm2 list 查看启动的进程状态
$ pm2 logs 显示所有进程日志
$ pm2 monit 监视每个node进程的CPU和内存的使用情况
  1. 反向代理HTTPS

springboot 项目配置 https

@Configuration
public class HttpsConfig {

  @Bean
  public TomcatServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
      @Override
      protected void postProcessContext(Context context) {
        SecurityConstraint securityConstraint = new SecurityConstraint();
        securityConstraint.setUserConstraint("CONFIDENTIAL");
        SecurityCollection collection = new SecurityCollection();
        collection.addPattern("/*");
        securityConstraint.addCollection(collection);
        context.addConstraint(securityConstraint);
      }
    };

    tomcat.addAdditionalTomcatConnectors(createHttpConnector());
    return tomcat;
  }

  private Connector createHttpConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    connector.setPort(80);
    connector.setSecure(false);
    connector.setRedirectPort(443);
    return connector;
  }
}


springboot配置文件

server.port=443
server.ssl.key-store=/path/to/your/ssl/keystore.p12
server.ssl.key-store-password=your_store_password
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=your_key_alias


域名为your_domain.com。
Nginx已配置为使用SSL/TLS证书,在此示例中使用了一个假想的证书。
Jar包应用程序运行在本地端口8080上,并使用HTTP协议。
当Nginx配置完成后,通过以下方式测试是否能够成功访问您的Jar包应用程序:
通过浏览器访问其他页面或资源,以确保Nginx正确代理到Jar包应用程序。
nginx配置反向代理

server {
  listen 80;
  server_name your_domain.com;
  return 301 https://$host$request_uri;
}
server {
  listen 443 ssl;
  server_name your_domain.com;

  ssl_certificate /path/to/your/ssl/cert;
  ssl_certificate_key /path/to/your/ssl/key;


  location / {
      proxy_pass http://localhost:8080/;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto https;
  }
}


一、查看 nginx 安装目录
        ps -ef | grep nginx


二、查看配置文件 nginx.conf 路径 
       nginx -t

  • 这条命令也可以用于检查配置文件是否正确。
  • 当然也可以使用 find 命令进行文件查找
  • 从 / 根目录下查找文件名为 nginx.conf 的文件

        find / -name nginx.conf

  • 从 /etc 目录下查找文件名为 nginx.conf 的文件

        find /etc -name nginx.conf

  • 端口查杀

        netstat -tunlp |grep 8888

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值