搭建linux CentOs7.2的nodejs + mysql + nginx + git环境

加入QQ群:864680898,一起学习进步!点击群名可查看本人网站,有最新文章!

搭建linux CentOs7.2的nodejs + mysql + nginx + git环境

  • 使用集成环境如 lnmp 来安装的话,不适合个人用户,因为我们的服务器配置不高,安装了过多的依赖会影响性能,所以还是只安一些自己需要的

一、 git的安装配置和ssh配置(为了安全,设置git用户不能登录)

  • (1)安装git
yum install git  使用yum安装,现在centos系统会自带yum

git --version	  查看下git版本号
  • (2)配置git的全局用户名,密码,邮箱
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config --global user.password "your password"

// 查看用户信息
git config user.name
git config user.password
  • (3)配置ssh公钥(以后git pull之类的就不用再输入用户名密码)参考文章

1、在centos服务器上生成公钥

ssh-keygen -t rsa -C "[email protected]"  然后敲三次回车

出现下面这两句,可以看到生成在哪里
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

2、复制生成的公钥

cat ~/.ssh/id_rsa.pub

// 也可以手动复制
vim  ~/.ssh/id_rsa.pub  查看公钥文件

3、在githup上创建公钥,将其添加进去设置中创建ssh

4、在服务器上连接

ssh -T [email protected]

第一次连接输入 yes

5、git clone 这里使用git上的ssh地址了,别用https那个,然后就不用每次输入用户名、密码

二、安装nodejs与npm

  • (1)安装nodejs,会附带上npm
yum install nodejs

node -v  查看版本号
  • (2)nodejs版本升级,因为yum安装的是v6.14.3,早就落伍了相关文章
// 安装n,nodejs还礼工具
npm install -g n

// 使用n来升级nodejs
n latest

// 切换nodejs版本
n
  • (3)这个切换版本一般都不会成功的,所以要执行以下操作
// 1、修改环境配置
vim ~/.bash_profile

// 2、将下面两行代码插入到文件末尾
exportN_PREFIX=/usr/local#node
exportPATH=$N_PREFIX/bin:$PATH

// 3、按下esc,:wq保存退出

// 4、执行source使修改生效
source ~/.bash_profile

  • (4)node -v 版本就是最新的了

三、安装nginx及其简单配置

  • 安装nginx
yum install nginx

安装完成后访问服务器的公网ip就有一个nginx的默认页面了

nginx常用命令

nginx -t    测试nginx能否正常启动
nginx -c /etc/nginx/nginx.conf  启动nginx

nginx -s signal
signal的值有下面几种:
stop:快速关闭
quit:安全关闭
reload:重载配置文件
reopen:重新打开一个log文件,用于日志切割

systemcel enable nginx.service  nginx开机自启动

nginx配置

  • 配置一个代理服务
server{
  listen 80;    #代理到80端口上,一般http服务都是在80端口
  server_name www.22family.com;   #服务域名,不用带上http://
  rewrite ^(.*)$ https://www.22family.com;  #重定向到另一个网址
  root /www/;   #代理/www目录,意味着你直接在/www目录下放个index.html,打开http://www.22family.com就可以直接打开index.html了

  location / {
    proxy_pass http://127.0.0.1:3000;  #代理服务器上启动的项目,比如express启动的3000端口的项目
  }
}
# https配置
server {
    listen 443 ssl;   #https只能代理在443接口,并且需要ssl证书
    server_name www.22family.com default_server;    #服务的域名

    ssl_certificate /project/nginx/www/Nginx/1_22family.com_bundle.crt;   #证书
    ssl_certificate_key /project/nginx/www/Nginx/2_22family.com.key;      #证书
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass  http://127.0.0.1:8360;    #代理
    }
}
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    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  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  www.22family.com;
        #rewrite ^(.*)$ https://www.22family.com;
        root /project/demo/;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
  

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
    # https配置
    server {
        listen 443 ssl;
        server_name www.22family.com default_server;

        ssl_certificate /project/nginx/www/Nginx/1_22family.com_bundle.crt; 
        ssl_certificate_key /project/nginx/www/Nginx/2_22family.com.key; 
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

        location / {
            proxy_pass  http://127.0.0.1:8888;
        }
    }

    # 博客后台接口
    server {
        listen 80;
        server_name api.blog.22family.com;

        location / {
            proxy_pass  http://127.0.0.1:8888;
        }
    }
}

四、mysql-5.7的安装及其配置

yum直接安装mysql是找不到资源的,centos自带的repo是不会自动更新每个软件的最新版本,所以无法通过yum方式安装MySQL的高级版本。

1. 下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

2. 安装mysql源
yum localinstall mysql57-community-release-el7-11.noarch.rpm

3. 检查mysql源是否安装成功
yum repolist enabled | grep “mysql.-community.”

4. 安装mysql
yum install mysql-community-server

5. 启动mysql服务
systemctl start mysqld

6.设置开机自启
systemctl enable mysqld
systemctl daemon-reload
  • 参考文章

安装mysql5.7

mysql更改root密码

1. vim /etc/my.cnf
后面任意一行添加 skip-grant-tables 用来跳过密码验证的过程

2. systemctl restart mysqld.service  重启mysql

3. 进入mysql修改密码
mysql -u root -p 直接回车
use mysql     选择数据库
update mysql.user set authentication_string=password('123456') where user='root' ;  更新密码
flush privileges;   刷新
quit	        退出mysql

4. vim /etc/my.cnf   
删除 skip-grant-tables 一行

5.systemctl restart mysqld.service  重启mysql
  • 参考文章

安装mysql5.7
修改root密码参考文章 但是这个重启mysql的命令有问题,更新也有问题,因为mysql5.7没有password字段了,所以用下面的

update mysql.user set authentication_string=password('123456') where user='root' ;  更新密码

systemctl restart mysqld.service  重启mysql
systemctl start mysqld.service    启动
systemctl stop mysqld.service	    停止

mysql开启远程连接

1. 安全组中开启3306端口

2. 授权root用户远程登录mysql
grant all privileges on *.* to 'root'@'%' identified by '123456'; 授权
flush privileges;   刷新权限

3. alter user user() identified by "123456";

4. 调整安全性
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=3;
set global validate_password_special_char_count=0;
set global validate_password_length=3;

5. systemctl restart mysqld.service  重启mysql

6. 使用navicat通过ssh连接mysql试试

猜你喜欢

转载自blog.csdn.net/qq_42036203/article/details/88120066