node_pm2_nginx

一.安装node

直接使用已编译好的包

Node 官网已经把 linux 下载版本更改为已编译好的版本了,我们可以直接下载解压后使用:

# wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.xz   // 下载

# tar xf  node-v10.9.0-linux-x64.tar.xz       // 解压

# cd node-v10.9.0-linux-x64/                  // 进入解压目录
# ./bin/node -v                               // 执行node命令 查看版本
v10.9.0

直接使用已编译好的包

# ln -s /root/nodejs/bin/npm   /usr/local/bin/ 

# ln -s /root/nodejs/bin/node   /usr/local/bin/


全局查看:
# node -v
# npm -v

二. 安装pm2

# npm install -g pm2     //这样是安装最新版本,建议不要安装最新,容易报错

升级版本,切换版本相关看:http://www.imooc.com/article/255114

安装指定版本,线上建议不要最新版本,追求稳定
# npm install pm2@v2.9.1 -g

如果是在原版本切换版本,还需要执行,如果第一次就不需要
更新,将会停止所有的服务进行重新启动
# pm2 update

至此,升级版本所需要的都已经ok啦,在升级为指定版本之前一定要先了解,不要盲目去做升级

**最后使用 ln 命令来设置软连接(目的是全局): **

# ln -s /root/nodejs/bin/pm2   /usr/local/bin/

//查看版本
# pm2 -v

三.安装nginx

1.下载和解压

$ wget直接下载
# cd /usr/local
# wget http://nginx.org/download/nginx-1.17.1.tar.gz

$解压:
tar -zxvf nginx-1.17.1.tar.gz

$注意解压后不要去改nginx目录!!!


2.安装前准备

$ 注意,如果要选择的话 直接输入  y  回车就好
# yum install gcc-c++
# yum install pcre
# yum install pcre-devel
# yum install zlib
# yum install zlib-devel
# yum install openssl
# yum install openssl-devel

3.进入nginx-17.1目录,并执行下面的配置命令

# cd nginx-1.17.1/
# ./configure

注意

如果有报错的话,再走一遍上面 2…的安装命令,

4.执行make 安装

# make install
# cd ..    //返回上一级目录
# ls       //查看当前目录的内容
# pwd      //查看目前所在的目录路径

# cd nginx
# # pwd      //查看目前所在的目录路径

5.配置nginx开机启动

//切换到/lib/systemd/system目录下,创建nginx.service文件vim nginx.service

# cd /lib/systemd/system

# vim nginx.service
//这里可以直接打开xftp找到/usr/lib/systemd/system这里创建nginx.service文件,用记事本打开操作
//vim 操作命令:
:q!  //退出当前
:wq   //保存并退出

nginx.service文件内容:

直接复制粘贴过去就好了

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

退出并保存文件,执行如下名使nginx开机启动
//启动nginx
# systemctl enable nginx.service

//结束nginx
# systemctl stop nginx.service

//重启nginx
# systemctl restart nginx.service

6.验证是否安装成功

打开浏览器输入ip地址  http://120.78.xxx.xx/
就可以看到Welcome to nginx!的界面
如果看到是Welcome to CentOS!,请不要慌,正常现象,是因为版本的原因导致显示不一致,没有影响,


# ps -ef | grep nginx     //查看进程
# nginx -v                //查看版本

四.基于docker容器安装nginx

参考简书:https://www.jianshu.com/p/f2c6ad35fbb0

https://www.jianshu.com/u/367746e792f6

  1. 我们还可以用 docker search nginx 命令来查看可用版本
# docker search nginx

//最新版本安装
# docker pull nginx:latest

//根据docker search nginx 查询指定
# docker pull nginx

//查看docker容器的镜像
# docker images
//或者ps查看进程
# docker ps

2.启动

//启动的时候配置端口,前面是本机端口后面的是nginx
# docker run -d -p 8080:80 --name mynginx nginx


参数说明:

    --name nginx-test:容器名称。
    -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
    -d nginx: 设置容器在在后台一直运行。


//停止容器
# docker stop 容器id或者容器名称name

//启动一个停止的镜像
# docker start 容器id

//重启容器
# docker restart 容器id或者容器名称name

//查看容器进程
# docker ps

//打开浏览器查看
http://106.52.xxx.xxx:8080/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZWBcvwg5-1604308816447)(C:\Users\吴柏青520\AppData\Roaming\Typora\typora-user-images\1591362497310.png)]

1.本机创建实例文件夹

/home文件夹下新建mutou文件夹,木头文件夹下新建nginx文件夹,nginx文件夹下新建conf.d文件夹,html文件夹,大致结构如下:

/home
    |---mutou
           |----nginx
                  |----conf.d
                  |----html

2. 在conf.d文件夹下新建default.conf文件,内容如下:
server {
    listen       80;
    server_name  localhost;
    # 原来的配置,匹配根路径
    #location / {
    #    root   /usr/share/nginx/html;
    #    index  index.html index.htm;
    #}
    # 更该配置,匹配/路径,修改index.html的名字,用于区分该配置文件替换了容器中的配置文件
    location / {
        root   /usr/share/nginx/html;
        index  index-test.html index.htm;
    }
}

3.在html中编写index-test.html,用以判断文件夹映射成功,内容如下:
<html>
  <body>
    <h2>it is html1</h2>
  </body>
</html>

4. 启动nginx(8080),映射路径

命令比较长,其实就是多加了两个参数,-v,-v的意思就是冒号前面代表本机路径,冒号后面代表容器内的路径,两个路径进行了映射,本机路径中的文件会覆盖容器内的文件。
nginx容器内的一些文件位置:
日志位置:/var/log/nginx/
配置文件位置:/etc/nginx/
项目位置:/usr/share/nginx/html

启动代码如下:

# docker run -d -p 8080:80 -v /home/mutou/nginx/conf.d:/etc/nginx/conf.d  -v /home/mutou/nginx/html:/usr/share/nginx/html nginx

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-voPDMDeg-1604308816449)(C:\Users\吴柏青520\AppData\Roaming\Typora\typora-user-images\1591363740927.png)]

五.docker找目录是这个语句

//进入容器交互  containerID:镜像ID
# docker exec -it 容器id /bin/bash     

//查看docker容器某个运行的容器目录结构
# docker exec -it cedfe913c23b ls

创建docker里面的redis:

1.获取redis镜像
# docker pull redis

//指定版本号:

# docker pull redis:4.0.9

//不加版本号默认获取最新版本,也可以使用 docker search redis 查看镜像来源
2.查看本地镜像
# docker images
3.然后启动容器,做映射
①创建配置文件目录存放redis.conf,文件从官网下载
①创建配置文件目录存放redis.conf,文件从官网下载。
http://download.redis.io/redis-stable/redis.conf

②创建文件夹,新建配置文件贴入从官网下载的配置文件并修改
②创建文件夹,新建配置文件贴入从官网下载的配置文件并修改

# mkdir /usr/local/docker

# vi /usr/local/docker/redis.conf
③修改启动默认配置(从上至下依次):
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问

protected-mode no #默认yes,开启保护模式,限制为本地访问

daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败

databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。

dir  ./ #输入本地redis数据库存放文件夹(可选)

appendonly yes #redis持久化(可选)

4.docker启动redis命令
创建docker里面的redis:
docker run -p 6379:6379 --name myredis --privileged=true -v /usr/local/docker/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

查看:docker ps -a

日志:docker logs 容器id

docker安装redis参考地址:https://blog.csdn.net/weixin_42456466/article/details/87270959

docker安装redis参考地址:https://blog.csdn.net/weixin_42456466/article/details/87270959

5.命令解释说明:
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。

--name myredis  指定该容器名称,查看和进行操作都比较方便。

-v 挂载目录,规则与端口映射相同。

为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。

-d redis 表示后台启动redis

redis-server /etc/redis/redis.conf  以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf
--appendonly yes  开启redis 持久化
6.查看是否运行成功
# docker ps 查看运行的容器

docker基本命令:

查看所有镜像 docker images

删除镜像(会提示先停止使用中的容器) docker rmi  镜像name/镜像id

查看所有容器 docker ps -a

查看容器运行日志 docker logs 容器名称/容器id

停止容器运行 docker stop 容器name/容器id

终止容器后运行 docker start 容器name/容器id

容器重启 docker restart 容器name/容器id

删除容器 docker rm 容器name/容器id

六.关于redis报错信息

笔记:解决redis连接错误:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to…

今天重启游戏服务器在连接redis数据库时突然报错:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.

究其原因是因为强制把redis快照关闭了导致不能持久化的问题,在网上查了一些相关解决方案,通过stop-writes-on-bgsave-error值设置为no即可避免这种问题。

有两种修改方法,一种是通过redis命令行修改,另一种是直接修改redis.conf配置文件

命令行修改方式示例:

127.0.0.1:6379> config set stop-writes-on-bgsave-error no

修改redis.conf文件 :

修改redis.conf文件:vi打开redis-server配置的redis.conf文件,然后使用快捷匹配模式:/stop-writes-on-bgsave-error定位到stop-writes-on-bgsave-error字符串所在位置,接着把后面的yes设置为no即可。

七.安装redis

1.获取redis资源

wget http://download.redis.io/releases/redis-4.0.8.tar.gz

2.解压

tar xzvf redis-4.0.8.tar.gz

3.安装

cd redis-4.0.8

make

cd src

make install PREFIX=/usr/local/redis

4.移动配置文件到安装目录下

cd ../

mkdir /usr/local/redis/etc

mv redis.conf /usr/local/redis/etc

5.配置redis为后台启动

vi /usr/local/redis/etc/redis.conf //将daemonize no 改成daemonize yes

6.将redis加入到开机启动

vi /etc/rc.local //在里面添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是开机调用这段开启redis的命令)

7.开启redis

/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 

8.将redis-cli,redis-server拷贝到bin下,让redis-cli指令可以在任意目录下直接使用

cp /usr/local/redis/bin/redis-server /usr/local/bin/

cp /usr/local/redis/bin/redis-cli /usr/local/bin/

9.设置redis密码

a.运行命令:redis-cli
b.查看现有的redis密码(可选操作,可以没有)

运行命令:config get requirepass 如果没有设置过密码的话运行结果会如下图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v6lwko53-1604308816450)(C:\Users\吴柏青520\AppData\Roaming\Typora\typora-user-images\1593013058852.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bXOhBMJX-1604308816452)(C:\Users\吴柏青520\AppData\Roaming\Typora\typora-user-images\1593013116886.png)]
c.设置redis密码
运行命令:config set requirepass ****(****为你要设置的密码),设置成功的话会返回‘OK’字样
d.测试连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-og5AIFs6-1604308816453)(C:\Users\吴柏青520\AppData\Roaming\Typora\typora-user-images\1593013210329.png)]

重启redis服务

//(redis-cli -h 127.0.0.1 -p 6379 -a ****(****为你设置的密码))

输入 redis-cli 进入命令模式,使用 auth '*****' (****为你设置的密码)登陆      

10.让外网能够访问redis

a.配置防火墙:  firewall-cmd --zone=public --add-port=6379/tcp --permanent(开放6379端口)

systemctl restart firewalld(重启防火墙以使配置即时生效)

查看系统所有开放的端口:firewall-cmd --zone=public --list-ports
常用命令
redis-server /usr/local/redis/etc/redis.conf //启动redis

pkill redis  //停止redis

卸载redis:

rm -rf /usr/local/redis //删除安装目录

rm -rf /usr/bin/redis-* //删除所有redis相关命令脚本

rm -rf /root/download/redis-4.0.4 //删除redis解压文件

10-启动redis:

两种方式:
redis-server &

加上`&`号使redis以后台程序方式运行

或者是

redis-server

11.检测后台进程是否存在

ps -ef |grep redis

12.检测6379端口是否在监听

netstat -lntp | grep 6379

13停止:

redis-cli shutdown 

因为Redis可以妥善处理SIGTERM信号,所以直接kill -9也是可以的
kill -9 PID



#启动redis服务端
$ src/redis-server
 
 
#启动redis客户端
$ src/redis-cli
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值