美文网首页
Cent OS 安装Nodejs和Nginx

Cent OS 安装Nodejs和Nginx

作者: shier | 来源:发表于2021-05-12 01:09 被阅读0次

    一:安装 nginx

    1.安装各种依赖

    #gcc安装,nginx源码编译需要
    yum install -y gcc-c++
    
    #PCRE pcre-devel 安装,nginx 的 http 模块使用 pcre 来解析正则表达式
    yum install -y pcre pcre-devel
    
    #zlib安装,nginx 使用zlib对http包的内容进行gzip
    yum install -y zlib zlib-devel
    
    #OpenSSL 安装,强大的安全套接字层密码库,nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http)
    yum install -y openssl openssl-devel
    
    

    2.下载
    使用 wget 命令下载:
    官网地址

    wget -c https://nginx.org/download/nginx-1.20.0.tar.gz
    

    3.安装

    #根目录使用ls命令可以看到下载的nginx压缩包,然后解压
    tar -zxvf nginx-1.20.0.tar.gz
    
    #解压后进入目录
    cd nginx-1.20.0
    
    #使用默认配置
    ./configure
    
    #编译安装
    make
    make install
    
    #查找安装路径,默认都是这个路径
    [root@VM_0_12_centos ~]# whereis nginx
    nginx: /usr/local/nginx
    
    #启动、停止nginx
    cd /usr/local/nginx/sbin/
    ./nginx     #启动
    ./nginx -s stop  #停止,直接查找nginx进程id再使用kill命令强制杀掉进程
    ./nginx -s quit  #退出停止,等待nginx进程处理完任务再进行停止
    ./nginx -s reload  #重新加载配置文件,修改nginx.conf后使用该命令,新配置即可生效
    
    #重启nginx,建议先停止,再启动
    ./nginx -s stop
    ./nginx
    
    #查看nginx进程,如下返回,即为成功
    [root@VM_0_12_centos ~]# ps aux|grep nginx
    root      5984  0.0  0.0 112708   976 pts/1    R+   14:41   0:00 grep --color=auto nginx
    root     18198  0.0  0.0  20552   612 ?        Ss   11:28   0:00 nginx: master process ./nginx
    nobody   18199  0.0  0.0  23088  1632 ?        S    11:28   0:00 nginx: worker process
    
    
    

    4.开机自启动

    #在rc.local增加启动代码即可
    vi /etc/rc.local
    #增加一行 /usr/local/nginx/sbin/nginx,增加后保存
    #设置执行权限
    cd /etc
    chmod 755 rc.local
    

    5.配置域名映射

    #进入nginx配置文件目录,找到nginx的配置文件nginx.conf
    cd /usr/local/nginx/conf/
    
    #直接修改
    vi nginx.conf
    

    下面是我的配置,有普通 web 和 nodejs

    
    #user  nobody;
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        server_names_hash_bucket_size 64;#这个需要配置,否则启动不起来
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
            listen       80;
            server_name  index.xxxxx.com;
    
            charset utf8;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    
        server {
            listen       80;
            server_name  chat.xxxxxx.com;
    
            charset utf8;
            location / {
                proxy_pass http://127.0.0.1:3000;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    
    
        }
    
    
        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    
        # HTTPS server
        #
        #server {
        #    listen       443 ssl;
        #    server_name  localhost;
    
        #    ssl_certificate      cert.pem;
        #    ssl_certificate_key  cert.key;
    
        #    ssl_session_cache    shared:SSL:1m;
        #    ssl_session_timeout  5m;
    
        #    ssl_ciphers  HIGH:!aNULL:!MD5;
        #    ssl_prefer_server_ciphers  on;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    }
    
    
    #修改完成后,重新加载配置文件
    cd /usr/local/nginx/sbin/
    ./nginx -s reload
    

    二:安装 nodejs

    1.安装必要的编译软件包

    sudo yum install gcc gcc-c++
    

    2.从源码下载 Nodejs(安装 12.X,确保 forever 可以运行)

    cd /usr/local/src
    wget https://npm.taobao.org/mirrors/node/latest-v12.x/node-v12.8.0-linux-x64.tar.gz
    

    3.解压

    tar xvf node-v12.8.0-linux-x64.tar.gz
    

    4.移动并改名文件夹(规范点)

    cd /usr/local/
    mv /var/ftp/pub/node-v10.16.0-linux-64 . //后面的.表示移动到当前目录
    mv node-v10.16.0.0-linux-64/ nodejs
    

    5.让 npm 和 node 命令全局生效
    环境变量方式
    1)加入环境变量,在 /etc/profile 文件末尾增加配置

    vi /etc/profile
    export PATH=$PATH:/usr/local/nodejs/bin
    

    2)执行命令使配置文件生效

    source /etc/profile
    

    6.查看 nodejs 是否安装成功

    node -v
    npm -v
    

    三:安装 forever,守护 nodejs 进程

    1.修改 npm 源(我遇到下载很慢,所以修改了源,如果你们快,可以忽略这一步)

    更换成淘宝的源
    npm config set registry https://registry.npm.taobao.org
    – 配置后可通过下面方式来验证是否成功
    npm config get registry
    – 或npm info express
    

    2.forever 使用方法(如果遇到端口被占用,最简单的办法重启下)

    forever start app.js
    
    forever start --minUptime 1000 --spinSleepTime 1000 app.js
    
    # 作为前台任务启动
    $ forever server.js
    
    # 作为服务进程启动
    $ forever start app.js
    
    # 停止服务进程
    $ forever stop Id
    
    # 重启服务进程
    $ forever restart Id
    
    # 监视当前目录的文件变动,一有变动就重启
    $ forever -w server.js
    
    # -m 参数指定最多重启次数
    $ forever -m 5 server.js
    
    # 列出所有进程
    $ forever list
    

    相关文章

      网友评论

          本文标题:Cent OS 安装Nodejs和Nginx

          本文链接:https://www.haomeiwen.com/subject/pneodltx.html