资讯专栏INFORMATION COLUMN

从零开始搭建自己的nodejs服务器以及配置域名解析+https证书配置 (以阿里云linux服务器

seal_de / 1645人阅读

摘要:懒人点击这个链接购买购买链接,默认购买系统域名解析对域名进行解析。的证书配置在阿里云控制台,证书那里,购买私人免费证书,填写自己的域名,,选择系统自动生成,选择域名解析验证证书。

每次都得啰嗦这么几句,真的是这阵子走来,一步一个脚印,一步一个坑。

1.购买服务器跟域名

首先购买一台学生服务器,选择这个套餐,挺实惠的,顺便买个xin域名。懒人点击这个链接购买购买链接  ,默认购买linux系统centos7.3

2.域名解析

对域名进行dns解析。购买域名后,点击进入控制台,然后点击进入域名和网站栏目 点击域名解析,点击新手引导,进行快捷解析即可。服务器的ip在控制台,ecs服务器实例里面查看,为公网ip。

3.远程登录
由于我是用window的,所以肯定用到了xshell神器进行ssh远程连接,因为这个东西确实好用。

如何使用xshell请自行百度哦。远程连接登录后后,出现这样一个界面证明你成功了

接下来就是linux命令行的基本操作了,按照配置各种文件。linux基本命令跟lrsz的按照参照这篇文章linux基础命令跟lrsz安装

4.安装nodejs的快乐时刻到了~

[root@localhost ~]# cd /         #进入根目录
[root@localhost /]# mkdir soft && cd soft  #用来放置安装包
[root@localhost soft]# wget https://nodejs.org/dist/v8.9.4/node-v8.9.4.tar.gz #下载nodejs压缩包
[root@localhost soft]# tar -zxvf node-v8.9.4.tar.gz  #解压缩
[root@localhost soft]# cd node-v8.9.4.tar && ./configure #进行配置,使用默认配置
[root@localhost node-v8.9.4]# make && make install #进行编译

安装之后就已经自带npm了,但是国外的镜像太慢,我们要换个国内的,参考这篇文章nrm的使用,npm镜像源切换

漫长的等待之后,一个可以使用的node环境就安装好了,可以通过执行node -v或者npm -v来检测当前的node/npm安装是否成功。如果有出现版本号,那么就是安装成功了。

如果编译过程中出现g++: Command not found以及C Compiler可以升级来解决,执行下列指令

[root@localhost ~]# yum -y install gcc make gcc-c++ openssl-devel wget

5.安装nginx 进行多端口文件映射啦~

[root@localhost ~]# cd /soft         #进入安装目录
[root@localhost soft]# wget -c https://nginx.org/download/nginx-1.11.6.tar.gz #下载nginx安装压缩包
[root@localhost soft]# tar -zxvf nginx-1.11.6.tar.gz
[root@localhost soft]# cd nginx-1.11.6
[root@localhost nginx-1.11.6]# yum install -y pcre pcre-devel #安装PCRE依赖库
[root@localhost nginx-1.11.6]# yum install -y zlib zlib-devel #安装zlib 依赖库
[root@localhost nginx-1.11.6]# yum install -y openssl openssl-devel #安装OpenSSL安全套接字层密码库
[root@localhost nginx-1.11.6]# ./configure

如果报找不到openSSL,那么可以指定一下路径:

[root@localhost nginx-1.11.6]# ./configure --prefix=/usr/local/nginx  --with-openssl=/usr/bin/openssl
[root@localhost nginx-1.11.6]# ./configure  #使用默认配置指令
[root@localhost nginx-1.11.6]# make && make install #重新进行编译安装

又是经过漫长的时间等待,终于安装好了。

[root@localhost ~]# cd /usr/local/nginx/sbin/
[root@localhost sbin]# ./nginx 
[root@localhost sbin]# ./nginx -s stop
[root@localhost sbin]# ./nginx -s quit
[root@localhost sbin]# ./nginx -s reload

如果显示端口占用 执行命令

netstat -anp|grep 80 

查看占用端口的进程,找到这个这个进程的id,一般是aliyundun这个进程占用了80端口
执行 kill -9 进程id,结束进程。
然后执行 ./nginx -s reload 命令重启下nginx

如果重启的时候出现了 nginx: [error] open() /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)错误
执行下面命令,使用nginx -c的参数指定nginx.conf文件的位置

[root@localhost sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

如果上述处理后还有端口占用报错,nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
执行下命令ps -ef | grep nginx 看下主目录 是哪里 是不是装了两个可恶的 Nginx

执行ps aux|grep nginx 查看到nginx正在运行,OK。

最后再来设置nginx的开机自启动

执行vi /etc/rc.local

在rc.local增加启动代码 /usr/local/nginx/sbin/nginx 就可以了    

执行chmod 755 /etc/rc.local
执行命令 curl localhost 出现nginx的欢迎页面

如果出现curl 访问内网ip 可以的话,但是用浏览器访问公网ip不行,可能是防火墙的配置问题

执行下面的指令

iptables -F
iptables -F -t nat
iptables -X
iptables -X -t nat

如果还是浏览器访问不了,那么请接着看下去。
6.进行安全组的配置

你发现可以ping得通你的公网ip跟内网ip,甚至也是可以curl 内网ip的,可是你就是无法通过浏览器访问你的服务器ip,这里有两个坑,关于服务器的安全组对于80端口跟443端口的配置

按照这个规则配置80跟443端口的安全组(后面https会用到),然后重启下服务器,OK,可以通过公网ip跟域名访问到你的主页了。

7.https的证书配置

在阿里云控制台,CA证书那里,购买私人免费证书,填写自己的域名,,选择系统自动生成,选择域名解析验证证书。购买链接
等待审核通过之后,进行证书的下载。

下载压缩包解压缩后会有公钥跟私钥两份文件。

然后在xshell软件

执行

cd /usr/local/nginx/conf
mkdir cert 
cd cert
rz #回车,选择下载解压后的.rem跟.key文件,放置于创建的cert文件夹中
cd ..
cp nginx.conf nginx.back
vi nginx.conf  #编辑nginx的映射配置



# HTTPS server
# #server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
#
#
#}
#}

改为

server {
    listen 443;
    server_name localhost;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   cert/214570829410835.pem;
    ssl_certificate_key  cert/214570829410835.key;
    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 / {
        root html;
        index index.html index.htm;
    }
}

后缀为.rem跟.key的文件根据你放置在cert的文件名进行修改。

修改完之后保存

执行

/usr/local/nginx/sbin/nginx -s reload 

重启nginx

打开浏览器访问https://公网ip跟https://域名,显示nginx首页,OK。

后面如果要更改你映射的文件夹,只需要修改

location / {
    root html;
    index index.html index.htm;
}

root 后面带的文件夹路径就可以了。这里的html是相对路径,根据目前的nginx.conf为路径基础的相对路径,相当于/usr/lcoal/nginx/conf/html

8.mysql服务的配置

cd /soft #进入soft目录
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm #下载安装需要用到的源
rpm -ivh mysql-community-release-el7-5.noarch.rpm   #安装下载的源
yum install mysql-server #安装mysql
service mysqld start #启动mysql服务

如果遇到错误ERROR 2002 (HY000): Can"t connect to local MySQL server through socket /var/lib/mysql/mysql.sock"。

在tmp目录下创建一个软链接,执行命令为:

ln -s /tmp/mysql.sock /var/lib/mysql

打开my.cnf并修改配置

vi /etc/my.cnf

重启数据库

restart mysqld.service

使用命令修改当前用户的密码(默认root是没有密码的):

mysqladmin -u root password "密码"

使用命令进入数据库:

mysql -u root -p密码

在数据库命令行界面下执行:

GRANT ALL PRIVILEGES ON *.* TO "root"@"%" IDENTIFIED BY "password" WITH GRANT OPTION;

然后再输入

flush privileges;

让命令生效。需要注意的是每行命令的最后要加;,不然是不会执行的。
第一个*是数据库,可以改成允许访问的数据库名称
第二个 是数据库的表名称,代表允许访问任意的表
root代表远程登录使用的用户名,可以自定义
%代表允许任意ip登录,如果你想指定特定的IP,可以把%替换掉就可以了
password代表远程登录时使用的密码,可以自定义

输入查询命令来看看最终的结果。

SELECT DISTINCT CONCAT("User: """,user,"""@""",host,""";") AS query FROM mysql.user;

到此MySQL数据库就完成安装了,这个时候可以使用某个客户端连接上数据库看了(推荐navicat for mysql),也可以直接进入服务器的命令行模式查看数据库。

不过在此之前,我们要先到阿里云安全组里面增加安全规则,否则还是无法远程访问的,就跟前面的http跟https访问一样。这里给下配置

命令行界面远程登录

mysql -h 服务器ip地址 -P 3306 -u root -p密码

客户端登录(使用navicat)在工作开发中也是使用图形界面,方便操作

这里是这个软件的下载地址跟破解补丁 navicate下载

配置到此就结束了,如果在阅读中遇到什么配置的问题,欢迎评论以及留言。同时欢迎关注我的博客 陈建光的博客

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39880.html

相关文章

  • 从零部署一个https网站

    摘要:然后在服务器上拉取上的代码个人觉得这种方法不是很好,可以考虑自己在服务器上搭建一个的中央仓库,可以看看我之前的这篇文章如何在上搭建一个中央仓库站点部署将站点升级为协议,其实就是修改下的一些配置。 相信很多同学都对部署网站很感兴趣,今天给大家介绍一个楼主看过的很棒的视频,一共有八集,从零开始使用nginx部署一个https网站,非常良心的一款视频,视频地址:https://www.lar...

    马龙驹 评论0 收藏0
  • 程序员如何搭建自己个人博客

    摘要:使用自己的服务器部署博客使用搭建个人博客简单快捷方便,但是在国外啊,网络极其不稳定,访问速度慢,让人抓狂,这时可以将自己的博客部署在阿里云的上。 原文发布于https://www.fangzhipeng.com/life/2018/10/14/how-to-build-blog/ 我从2016年开始写博客,陆陆续续写了大概两百篇博客。写博客有很多好处,其一是它能够迫使你总结你学习的知...

    luzhuqun 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<