从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

栏目: Node.js · 发布时间: 7年前

内容简介:首先购买一台学生服务器,选择这个套餐,挺实惠的,顺便买个xin域名。懒人点击这个链接购买购买链接,默认购买linux系统centos7.3对域名进行dns解析。购买域名后,点击进入控制台,然后点击进入域名和网站栏目 点击域名解析,点击新手引导,进行快捷解析即可。服务器的ip在控制台,ecs服务器实例里面查看,为公网ip。3.远程登录由于我是用window的,所以肯定用到了xshell神器进行ssh远程连接,因为这个东西确实好用。

1.购买服务器跟域名

从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云 <a href='https://www.codercto.com/topics/18170.html'>linux</a> 服务器为例)

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

2.域名解析

从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

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

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

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

从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

接下来就是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
复制代码
从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

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

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</pre>

执行命令 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端口的配置

从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)
从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)
从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

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

7.https的证书配置

从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

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

从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

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

然后在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
复制代码
从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

重启数据库

restart mysqld.service
复制代码

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

mysqladmin -u root password '密码'
复制代码

使用命令进入数据库:

mysql -u root -p密码
复制代码
从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

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

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
复制代码

然后再输入

flush privileges;
复制代码
从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

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

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

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
复制代码
从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

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

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

从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

命令行界面远程登录

mysql -h 服务器ip地址 -P 3306 -u root -p密码
复制代码
从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

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

从零搭建nodejs服务器,配置域名解析+https证书 (以阿里云linux服务器为例)

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

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

机器学习

机器学习

周志华 / 清华大学出版社 / 2016-1-1 / 88.00元

机器学习是计算机科学与人工智能的重要分支领域. 本书作为该领域的入门教材,在内容上尽可能涵盖机器学习基础知识的各方面。 为了使尽可能多的读者通过本书对机器学习有所了解, 作者试图尽可能少地使用数学知识. 然而, 少量的概率、统计、代数、优化、逻辑知识似乎不可避免. 因此, 本书更适合大学三年级以上的理工科本科生和研究生, 以及具有类似背景的对机器学 习感兴趣的人士. 为方便读者, 本书附录给出了一......一起来看看 《机器学习》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具