0
点赞
收藏
分享

微信扫一扫

PM2以及Nginx安装和配置(HTTPS)

花明 2021-09-27 阅读 60
日记本

一台服务器架设多个 nodejs 网站的拓扑结构

搭建 Nodejs 生产环境


  1. 下载 nodejs 二进制代码包,然后减压到 /usr/local/nodejs
  2. 配置环境变量
    • vi /etc/profile
    • 最后面添加:
      • export NODE_HOME=/usr/local/nodejs/bin
      • export PATH=PATH
  3. :wq 保存,然后运行: source /etc/profile

nodejs 进程管理器 pm2 的使用

PM2 的主要特性


  1. 内建负载均衡(使用 Node cluster 集群模块)
  2. 后台运行
  3. 0 秒停机重载,我理解大概意思是维护升级的时候不需要停机.
  4. 具有 Ubuntu 和 CentOS 的启动脚本
  5. 停止不稳定的进程(避免无限循环)
  6. 控制台检测

PM2常见命令

  1. pm2 的安装
  1. 运行 pm2 的程序并指定 name
  1. 显示所有进程状态
  1. 显示所有日志
  1. 显示一个进程的日志
  1. 关闭重启所有进程

  • pm2 stop all # 停止所有进程
  • pm2 restart all # 重启所有进程
  • pm2 reload all # 0 秒停机重载进程 (用于 NETWORKED 进程)

  1. 关闭重启指定进程

  • pm2 stop 0 # 停止指定的进程
  • pm2 restart 0 # 重启指定的进程
  • pm2 stop www_itying_com
  • pm2 restart www_itying_com

  1. 杀死进程

  • pm2 delete 0 # 杀死指定的进程
  • pm2 delete all # 杀死全部进程
  • pm2 delete www_itying_com # 杀死指定名字的进程

  1. 显示相应进程/应用的总体信息

相关防火墙配置


  • 添加:
    firewall-cmd --zone=public --add-port=80/tcp --permanent
  • 重新载入:
    firewall-cmd --reload
  • 查看
    查看所有打开的端口: firewall-cmd --zone=public --list-ports
  • 删除
    firewall-cmd --zone= public --remove-port=3306/tcp --permanent

Nginx 的安装


  1. 安装 nginx 源
  • sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  1. 查看 Nginx 源是否配置成功
  • 通过 yum search nginx 看看是否已经添加源成功。如果成功则执行下列命令安装 Nginx。
    或者 npm info nginx 也可以看看 nginx 源是否添加成功
  1. 安装 Nginx
  • sudo yum install -y nginx 3、启动 Nginx 并设置开机自动运行
  • sudo systemctl start nginx
  • sudo systemctl enable nginx

Nginx 反向代理配置

  1. 关闭 Selinux
    • vi etc/selinux/config
    • 修改 SELINUX=enforcing 为 SELINUX=disabled
    • 必须重启 linux init 6
  2. 配置 firewalld 开启 80 端口
    • firewall-cmd --zone=public --list-ports
    • firewall-cmd --zone=public --add-port=80/tcp --permanent
  3. 配置反向代理
    • 找到 /etc/nginx/conf.d 然后在里面新建对应网站的配置文件


server {
listen 80;
server_name www.bbb.com;
location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实 IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#禁用缓存
proxy_buffering off;
#反向代理的地址
proxy_pass http://127.0.0.1:3001;
}
  1. 重启 nginx

  • systemctl restart nginx
  • nginx -t 看配置是否正确
  • systemctl stop nginx
  • systemctl start nginx

域名测试


  • 192.168.1.128
  • 192.168.1.128 www.bbb.com

Nginx 负载均衡


  1. 准备工作:1、关闭 Selinux 2、开启防火墙对应端口
  2. 负载均衡的种类:
    • 一种是通过硬件来进行解决,常见的硬件有 NetScaler、F5、Radware 和 Array 等商用的
      负载均衡器,但是它们是比较昂贵的
    • 一种是通过软件来进行解决的,常见的软件有 LVS、Nginx、apache 等,它们是基于 Linux
      系统并且开源的负载均衡策略. Nginx 的特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现最好,中国大陆使用 nginx 网站用户有:新浪、网易、 腾讯等。
  3. nginx 的 upstream 目前支持 3 种方式的分配:
    • 轮询(默认)
      每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,
      能自动剔除。
    • weight 权重 ——you can you up
      指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。
    • ip_hash ip 哈希算法
      每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,
      可以解决 session 的问题。
  4. 配置负载均衡
    找到 /etc/nginx/conf.d 然后在里面新建对应网站的配置文件

upstream bakebbs {
ip_hash;
server 127.0.0.1:3001 weight=1 ;
server 127.0.0.1:3001 weight=3;
}
server {
listen 80;
server_name www.bbb.com;
location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实 IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#禁用缓存
proxy_buffering off;
#反向代理的地址
proxy_pass http://bakebbs;
}
}
  1. 重启 nginx

  • systemctl restart nginx
  • nginx -t 看配置是否正确
  • systemctl stop nginx
  • systemctl start nginx

相关防火墙配置


  • 添加:
    firewall-cmd --zone=public --add-port=80/tcp --permanent
  • 重新载入:
    firewall-cmd --reload
  • 查看
    查看所有打开的端口: firewall-cmd --zone=public --list-ports
  • 删除
    firewall-cmd --zone= public --remove-port=3306/tcp --permanent

HTTPS


  • HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP
    通道,简单讲是 HTTP 的安全版。
  • HTTPS 是在 HTTP 的基础上添加了安全层,从原来的明文传输变成密文传输,当然加密与解
    密是需要一些时间代价与开销的,不完全统计有 10 倍的差异。在当下的网络环境下可以忽
    略不计,已经成为一种必然趋势。
  • 目前微信小程序请求 Api 必须用 https、Ios 请求 api 接口必须用 https

配置 https

  1. 证书类型

  1. 域名型 https 证书(DVSSL):信任等级一般,只需验证网站的真实性便可颁发证书保护网站;
  2. 企业型 https 证书(OVSSL):信任等级强,须要验证企业的身份,审核严格,安全性更高;
  3. 增强型 https 证书(EVSSL):信任等级最高,一般用于银行证券等金融机构,审核严格,安全性最高,同时可以激活绿色网址栏

  1. 创建证书


  1. 证书验证
  1. 配置 web 服务器
server {
listen 443;
server_name www.domain.com; #填写绑定证书的域名
ssl on;
ssl_certificate 1_www.domain.com_bundle.crt;
ssl_certificate_key 2_www.domain.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录
index index.html index.htm;
}

举报

相关推荐

0 条评论