当前位置: 首页 > 后端技术 > Node.js

从头搭建自己的nodejs服务器并配置域名解析+https证书配置(以阿里云linux服务器为例)

时间:2023-04-03 20:18:59 Node.js

每次都得说两句。真的好久了,一步一步,一步一个坑。1.购买服务器和域名首先,购买学生服务器。选择这个套餐,非常实惠。顺便买个xin域名。懒人点击此链接购买购买链接,默认购买的是linux系统centos7.32。域名解析对域名进行dns解析。购买域名后,点击进入控制台,再点击进入域名和网站栏目,点击域名解析,点击新手引导,进行快速解析。服务器的ip在控制台和ecs服务器实例中查看,都是公网ip。3、远程登录由于我用的是windows,ssh远程连接必须要用xshell这个神器,因为这个东西真的很好用。xshell如何使用,请自行百度。远程连接登录后,会出现这样的界面,证明你已经成功了。接下来是Linux命令行的基本操作,根据各种文件的配置。linux和lrsz的基本命令参考这篇文章。linux和lrsz的基本命令安装4.安装nodejs的快乐时刻到了~[root@localhost~]#cd/#进入根目录[root@localhost/]#mkdirsoft&&cdsoft#用来放置安装包[root@localhostsoft]#wgethttps://nodejs.org/dist/v8.9.4/node-v8.9.4.tar.gz#下载nodejs压缩包[root@localhostsoft]#tar-zxvfnode-v8.9.4.tar.gz#解压[root@localhostsoft]#cdnode-v8.9.4.tar&&./configure#配置,使用默认配置[root@localhostnode-v8.9.4]#make&&makeinstall#编译安装后,已经有了自己的npm,但是国外的镜像太慢了,需要换成国内的,nrm的使用参考这篇文章,等待npm镜像源切换很久,一个可以使用的node环境安装。可以通过执行node-v或npm-v查看当前node/npm安装是否成功。如果有版本号,则安装成功。如果有g++:Commandnotfound编译时可以升级CCompiler解决,执行如下命令[root@localhost~]#yum-yinstallgccmakegcc-c++openssl-develwget5。安装nginx进行多端口文件映射~[root@localhost~]#cd/soft#进入安装目录[root@localhostsoft]#wget-chttps://nginx.org/download/nginx-1.11.6。tar.gz#下载nginx安装压缩包[root@localhostsoft]#tar-zxvfnginx-1.11.6.tar.gz[root@localhostsoft]#cdnginx-1.11.6[root@localhostnginx-1.11.6]#yuminstall-ypcrepcre-devel#安装PCRE依赖库[root@localhostnginx-1.11.6]#yuminstall-yzlibzlib-devel#安装zlib依赖库[root@localhostnginx-1.11.6]#yuminstall-yopensslopenssl-devel#安装OpenSSL安全套接字层密码库[root@localhostnginx-1.11.6]#./configure如果找不到openSSL,可以指定路径:[root@localhostnginx-1.11.6]#./configure--prefix=/usr/local/nginx--with-openssl=/usr/bin/openssl[root@localhostnginx-1.11.6]#./configure#使用默认配置command[root@localhostnginx-1.11.6]#make&&makeinstall#重新编译安装,等了很久,终于安装好了。[root@localhost~]#cd/usr/local/nginx/sbin/[root@localhostsbin]#./nginx[root@localhostsbin]#./nginx-sstop[root@localhostsbin]#./nginx-squit[root@localhostsbin]#./nginx-sreload如果显示端口被占用,执行命令netstat-anp|grep80查看占用端口的进程,找到这个id过程。一般aliyundun进程占用80端口执行kill-9processid结束进程。然后执行./nginx-sreload命令重启nginx。如果nginx:[error]open()/usr/local/nginx/logs/nginx.pidfailed(2:Nosuchfileordirectory)重启时出现错误以下命令使用nginx-c参数指定的位置nginx.conf文件[root@localhostsbin]#/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf如果上面的处理后,出现端口占用错误,nginx:[emerg]bind()to0.0.0.0:80failed(98:Addressalreadyinuse)执行命令ps-ef|grepnginx查看主目录安装位置。一个讨厌的Nginx执行psaux|grepnginx可以看到nginx在运行,OK。最后我们设置nginx的开机自启动,在rc.local中执行vi/etc/rc.local添加启动代码/usr/local/nginx/sbin/nginx执行chmod755/etc/rc.local命令curllocalhost,出现nginx的欢迎页面。如果curl出现访问内网ip,但是用浏览器访问公网ip却不行,可能是防火墙配置问题。执行以下命令iptables-Fiptables-F-tnatiptables-Xiptables-X-tnat如果浏览器仍然无法访问,请继续阅读。6、配置好安全组后,你发现可以ping通你的公网ip和私网ip,甚至可以curl你的私网ip,但是就是不能通过浏览器访问你的服务器ip。这里有两个陷阱。,关于服务器的安全组80端口和443端口的配置,按照这个规则配置80和443端口的安全组(后面会用到https),然后重启服务器,OK,就可以访问了你通过公网ip和域名的主页。7、https证书在阿里云控制台配置,这里是CA证书,购买私人免费证书,填写自己的域名,选择系统自动生成,选择域名解析验证证书。购买链接等待审核通过后,下载证书。下载压缩包解压后会有公钥和私钥两个文件。然后在xshell软件中执行cd/usr/local/nginx/confmkdircertcdcertrz#回车,选择下载解压后的.rem和.key文件,放在创建的cert文件夹下cd..cpnginx.confnginx。backvinginx.conf#编辑nginx映射配置#HTTPSserver##server{#listen443;#server_namelocalhost;#sslon;#ssl_certificatecert.pem;#ssl_certificate_keycert.key;#ssl_session_timeout5m;#ssl_protocolsSSLv2SSLv3TLSv1;#ssl_ciphersALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;#ssl_prefer_server_cipherson;#location/{###}#}更改为服务器{listen443;服务器名称本地主机;SSL开启;根HTML;indexindex.htmlindex.htm;ssl_certificate证书/214570829410835.pem;ssl_certificate_key证书/214570829410835.key;AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocolsTLSv1TLSv1.1TLSv1.2;ssl_prefer_server_ciphers开启;位置/{根html;indexindex.htmlindex.htm;}}后缀是。rem和.key文件根据您的要求放置在证书中修改文件名后,保存执行/usr/local/nginx/sbin/nginx-sreload,重启nginx,打开浏览器访问https://公网ip和https://域名,显示nginx主页,好的。如果以后要更改映射的文件夹,只需要修改location/{roothtml;后面的文件夹路径即可。indexindex.htmlindex.htm;}root.这里的html是相对路径。按照当前的nginx.conf作为path-based相对路径,相当于配置/usr/lcoal/nginx/conf/html8.mysqlservicecd/soft#进入soft目录wgethttp://repo。mysql.com/mysql-community-release-el7-5.noarch.rpm#下载安装需要的源rpm-ivhmysql-community-release-el7-5.noarch.rpm#安装下载的源yuminstallmysql-server#安装mysqlservicemysqldstart#启动mysql服务遇到错误ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket/var/lib/mysql/mysql.sock'。在tmp目录下创建软链接,执行命令:ln-s/tmp/mysql.sock/var/lib/mysql打开my.cnf并修改配置vi/etc/my.cnf重启数据库restartmysqld.service使用命令修改当前用户的密码(root默认没有密码):mysqladmin-urootpassword'password'使用命令进入数据库:mysql-uroot-ppassword在数据库命令行界面下执行:将*.*上的所有权限授予“root”@“%”,由“密码”标识并带有授予选项;然后输入刷新权限;使命令生效。应当指出的是;必须在每行命令的末尾加上,否则不会执行。第一个*是数据库,可以改成允许访问的数据库名。第二个是数据库的表名,表示允许访问任何表。如果你想指定一个特定的IP,你可以替换%。password表示用于远程登录的密码。您可以自定义输入查询命令以查看最终结果。SELECTDISTINCTCONCAT('User:''',user,'''@''',host,''';')ASqueryFROMmysql.user;至此,MySQL数据库安装完成,可以使用某个客户端连接数据库读取(推荐navicatformysql),也可以直接进入服务器的命令行模式查看数据库.但在此之前,我们需要在阿里云的安全组中添加安全规则,否则无法远程访问,就像之前的http和https访问一样。这里是配置命令行界面远程登录mysql-h服务器ip地址-P3306-uroot-p密码客户端登录(使用navicat)工作开发中也使用了图形界面,操作方便这里是这个软件的下载地址至此破解补丁navicate下载配置结束。如果您在阅读过程中遇到任何配置问题,欢迎评论留言。同时欢迎关注我的博客陈建光的博客