key设置先查看本地是否已经有key,如果有,最后不要再生成,直接用之前的cd~/.ssh如果有文件会进入文件夹,打开id_rsa.pub文件,复制内容,如果没有,按照以下步骤生成密钥:在本地生成rsa密钥,一路回车ssh-keygen-trsa获取本地公钥bashcat~/.ssh/id_rsa.pub复制上面获取的公钥,然后在阿里云控制台打开阿里云远程控制,在服务器上执行以下操作cd~/.ssh/ls如果没有authorized_keys文件,那么在~/.ssh/文件夹下创建文件(在我的服务器里,先看看)touch~/.ssh/authorized_keys将复制的公钥内容添加到authorized_keys中,就可以了doneecho"这里是复制的公钥内容,双引号不能省略">>~/.ssh/authorized\_keys这里使用command+v粘贴内容后,控制台没有显示密钥内容,没关系,按正常步骤即可回到客户端输入命令sshroot@xxx.xx.xxx.xx//即公网IP地址,输入设置的实例密码即可登录。这里需要注意的是,如果购买时没有设置实例密码,下面设置实例密码后,必须重启实例才能生效。阿里云控制台->实例->实例列表->选择您的实例修改实例密码;在更多选项中,您可以修改远程连接的密码。登录成功欢迎使用阿里云弹性计算服务!注销:control+d安装连接mysql数据库。推荐链接:链接地址先阅读链接步骤,添加以下内容1、配置阿里云服务器的安全组。步骤如下:进入阿里云控制台下的实例点击列表项右侧的管理文本按钮,进入该实例的安全组栏下的配置规则,添加安全组规则。3306是mysql的默认端口,8080是网页的默认端口。打开navicat,点击左上角的连接,选择mysql测试连接,连接成功,项目上传到服务器。我的博客是前台next.js项目+后台管理页面react项目+中台(调整界面)egg.js打包除了本地yarnbuild后react工程上传到服务器yarnstart,其他两个直接打包丢到服务器,然后yanrstart运行上传/下载1.下载文件夹scp-r远程登录服务器用户名@远程服务器ip地址:/下载文件夹目录本地目录2.下载文件scp远程登录服务器用户名@远程服务器ip地址:/下载文件目录本地目录3.上传文件夹scp-r本地目录远程登录服务器用户名@远程服务器ip地址:/下载文件夹所在目录4.上传文件scp本地目录远程登录服务器用户名@远程服务器ip地址:/下载文件所在目录比如uploadnext.js项目到服务器/home/my-blog-project/目录下:scp-r/Users/mac/trivial/blog.ziproot@47.114.63.152:/home/my-blog-project使用Cyber??Duck工具上传下载安装完成后,打开软件,点击左上角连接,选择ssh协议,输入服务器的公网ip,选择本地配置的key。不需要输入密码,直接连接解压即可。用法:zip[参数][包后文件名][打包目录路径]路径可以是相对路径也可以是绝对路径如:unzipfile.conf.zip-d/data/bak``Decompressfile.conf.zip到/data/bak目录下安装并运行nginxhttps://www.cnblogs.com/paul123/p/11065720.html网上其实没有参考上面的,我试了一下,可以我副业的nginx目录在/etc/nginx/下,配置文件是/etc/nginx/nginx.conf。如果要拆分配置文件,在/etc/nginx/conf.d/文件中创建对应的域名配置文件,比如我配置了两个nginx配置文件,一个是/etc/nginx/conf.d后台管理页面的/admin.conf,一个是博客前台展示页面的/etc/nginx/conf。d/博客.conf;如果想让conf.d目录下的文件全部生效,还需要在nginx.conf文件的http下添加include/etc/nginx/conf.d/*.conf才能生效。详情请参考在线配置文件。nginx.conf参考配置如下:#有关配置的更多信息,请参见:#*官方英文文档:http://nginx.org/en/docs/#*官方俄文文档:http://nginx.org/ru/docs/userroot;worker_processesauto;error_log/var/log/nginx/error.log;pid/run/nginx.pid;#加载动态模块。参见/usr/share/doc/nginx/README.dynamic.include/usr/share/nginx/modules/*.conf;events{worker_connections1024;}http{log_formatmain'$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.logmain;发送文件;tcp_nopush上;tcp_nodelayon;keepalive_timeout65;types_hash_max_size2048;包括/etc/nginx/mime.types;default_type应用程序/八位字节流;#从/e加载模块化配置文件tc/nginx/conf.d目录。#有关详细信息,请参阅http://nginx.org/en/docs/ngx_core_module.html#include#。包括/etc/nginx/conf.d/*.conf;服务器{听8080default_server;听[::]:8080默认服务器;服务器名称_;根/usr/share/nginx/html;#加载默认服务器块的配置文件。包括/etc/nginx/default.d/*.conf;位置/{}error_page404/404.html;location=/40x.html{}error_page500502503504/50x.html;location=/50x.html{}}#启用TLS的服务器的设置。##server{#listen443sslhttp2default_server;#listen[::]:443sslhttp2default_server;#server_name_;#root/usr/share/nginx/html;##ssl_certificate"/etc/pki/nginx/server.crt";#ssl_certificate_key"/etc/pki/nginx/private/server.key";#ssl_session_cacheshared:SSL:1m;#ssl_session_timeout10m;#ssl_ciphersPROFILE=SYSTEM;#ssl_prefer_server_cipherson;###加载默认服务器块的配置文件。#include/etc/nginx/default.d/*.conf;##location/{#}##error_page404/404.html;#location=/40x.html{#}##error_page500502503504/50x.html;#location=/50x.html{#}#}}/etc/nginx/conf.d/blog.conf参考配置如下:server{#监听默认80端口,即访问本机,相对client是访问公网服务器的网络ip,默认访问博客主页listen80default_server;listen[::]:80default_server;server_name_;#root/home/my-blog-project/blog/;#加载配置文件默认服务器块#include/etc/nginx/default.d/*.conf;location/{#http://127.0.0.1:3000是yarnstart启动项目后的服务地址proxy_passhttp://127.0.0.1:3000;proxy_http_version1.1;proxy_set_header升级$http_upgrade;proxy_set_header连接“升级”;proxy_set_header主机$host;proxy_cache_bypass$http_upgrade;}#location/api{#proxy_passhttp://127.0.0.1:7001/;#}error_page404/40html;location=/40x.html{}error_page500502503504/50x.html;location=/50x.html{}}/etc/nginx/conf.d/admin.conf参考配置如下:server{listen3002default_server;//监听3002端口listen[::]:3002default_server;服务器名称_;#/home/my-blog-project/admin/为build打包的index.html路径,访问服务器公网ip:3002端口打开本资源root/home/my-blog-project/admin/;#根/usr/share/nginx/html;#加载默认服务器块的配置文件。#包含/etc/nginx/default.d/*.conf;位置/{try_files$ur我/index.html=404;}#位置/{#proxy_passhttp://127.0.0.1:3000;##proxy_http_version1.1;#proxy_set_header升级$http_upgrade;#proxy_set_header连接“升级”;#proxy_set_header主机$host;#proxy_cache_bypass$http_upgrade;#}#location/api{#proxy_passhttp://127.0.0.1:7001/;#}error_page404/404.html;location=/40x.html{}error_page500502503504/50x.html;location=/50x.html{}}上线前准备在开发环境中,请求后端的url一般为本机ip,localhost或127.0.0.1,其中域名一定要改成服务器域名server(公网ip)下面是开发环境的apiUrl配置文件:blog/config/apiUrl:下面是线上的apiUrl配置文件:blog/config/apiUrl(admin项目也是如此):egg.js配置服务器mysql/service/config/config.default.js:config.mysql={//数据库配置client:{//主机host:'localhost',//端口port:'3306',//用户名user:'root',//密码通过sword:'root',//databasedatabase:'react_blog',},//加载到app,默认打开app:true,//加载到agent,默认关闭agent:false,};egg.js配置跨域:config.security={csrf:{enable:false,},domainWhiteList:['http://47.114.63.152:3002','http://47.114.63.152'],//allow跨域白名单,第一个是后台管理页面的域名(暂时是ip地址,域名还没购买),第二个是前台的域名博客};config.cors={//origin:'*',//记住:如果要传递cookie,origin不能设置为通配符*credentials:true,//允许库克跨域allowMethods:'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS,UPDATE',};服务器在/etc/nginx/conf.d/下新建配置文件images.conf配置静态资源目录:配置如下:server{listen8080;#server_name可以同时配置多个server_name47.114.63.152ghostwang.top;location/images{#alias是映射images到/home/images/目录下,也就是到这个目录下找#alias和root的区别;如果是根;location中的地址会拼接在root后面;alias将直接替换后面的东西alias/home/images/;#expires是用户信息的缓存时间1d是一天#expires1d;#autoindexon打开浏览功能autoindexon;}}阿里云控制台不要忘记添加安全组,开放8080端口修改用户访问权限chmod777-R/home/images/restartnginxservicecd/etc/nginx/nginx-sreload访问:http://47.114.63.152:8080/images/myself.jpeg测试成功!pm2进程管理参考文章上诉部署后其实有个坑。每次断开ssh,服务器上启动的服务就会停止。比如博客项目,在yarnstart后断开连接或者直接关闭本地终端都会断开你与服务器的连接。上述服务导致打开博客页面直接进入nginx欢迎页面。解决这个问题,使用pm2启动daemon进程,修改/blog/pakage.json文件中的启动脚本:"scripts":{"dev":"next","start":"nextstart-p$PORT","build":"nextbuild&&PORT=3000npmstart"}-连接远程服务器,进入项目路径,执行以下命令:pm2startnpm--name"blog"--runbuild在这way,没关系,注意,蛋。js自带守护进程,不用pm2测试在线http://47.114.63.152:3002/服务器公网ip:nginx配置监听端口访问博客后台管理页面,登录调用接口测试http://47.114.63.152/服务器公网ip或服务器公网ip:默认监听端口(80)访问博客首页,测试接口调用正常域名DNS解析参考文章配置从此以后,即使博客上线,添加完整域名ghostwang.top,解决终端SSH连接服务器一段时间不运行后卡住的问题打开本地配置文件(不建议在服务器端设置)sudovim/etc/ssh/ssh_config添加如下参数,如果有直接修改ServerAliveInterval50#每50秒向服务器发送一次请求ServerAliveCountMax3#允许的超时次数,一般修改后响应,重启ssh服务sudo/etc/init.d/sshrestart
