白羽
2018-07-19
来源 :网络
阅读 1566
评论 0
摘要:本文将带你了解WEBAPP开发之Vapor 部署 webApp,希望本文对大家学WebApp有所帮助。
Vapor部署webApp
这里是使用Ubuntu进行部署的。
这里和Vapor没有太大关系、主要是Linux的使用。
Nginx
这里只是基础配置
安装Nginx
sudoapt-getupdate
sudoapt-getinstallnginx
测试是否安装成功
//server_domain_name_or_IP
Nginx基础命令
sudoservicenginxstop
sudoservicenginxstart
sudoservicenginxrestart
ConfigureProxy配置代理、Swift不是脚本语言这里不能直接读取文件。所以这里需要配置代理来进行通信。
Theconfigurationfilesforenabledsitescanbefoundin/etc/nginx/sites-enabled/.
这个配置文件在/etc/nginx/sites-enabled/
Createanewfileorcopytheexampletemplatefrom/etc/nginx/sites-available/togetstarted.
复制这个例子文件来开始这个服务。
创建一个Hello文件。
这个很重要,不然无法代理。这个和官方文档有点差别。
server{
server_namehello.com;
listen80;
root/home/vapor/Hello/Public/;
location@proxy{
proxy_pass//127.0.0.1:8080;
proxy_pass_headerServer;
proxy_set_headerHost$host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
proxy_pass_headerServer;
proxy_connect_timeout3s;
proxy_read_timeout10s;
}
location/{
#Firstattempttoserverequestasfile,then
#asdirectory,thenfallbacktodisplayinga404.
#try_files$uri$uri/=404;
try_files$uri@proxy;//这里是页面重定向、让80端口可以重定向到我们的服务器。
#try_files$uri$uri//index.php?$query_string;#添加url重定向,>这在laravel文档中有写
}
}
支持HTTPS
server{
...
listen443ssl;
ssl_certificate/etc/letsencrypt/live/hello.com/fullchain.pem;
ssl_certificate_key/etc/letsencrypt/live/hello.com/privkey.pem;
ssl_protocolsTLSv1TLSv1.1TLSv1.2;
ssl_prefer_server_cipherson;
ssl_dhparam/etc/ssl/certs/dhparam.pem;
ssl_ciphers'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_session_timeout1d;
ssl_session_cacheshared:SSL:50m;
ssl_staplingon;
ssl_stapling_verifyon;
add_headerStrict-Transport-Securitymax-age=15768000;
...
location@proxy{
...
}
}
这些配置之后我们使用命令vaporbuild,vaporrunserve现在就可以访问我们的网站了。
Supervisor
上面我们使用命令可以运行网站、但是我们关闭终端之后就无法访问了。
这里我们使用Linux命令nohupvaporrunserve&
任意键退出,输入exit退出终端
nohup后台挂起&自动运行。
上面那些可以进行运行,但是服务器要求很稳定。如果这个进程被干掉了服务器就挂了。这样非常不好、所以这里需要守护进行。这里使用Supervisor进行管理、当我们的vapor进程被干掉之后可以重新启动。
安装
sudoapt-getupdate
sudoapt-getinstallsupervisor
配置
创建文件/etc/supervisor/conf.d/hello.conf
[program:hello]
command=/home/vapor/hello/.build/release/Runserve--env=production
directory=/home/vapor/hello/
user=www-data
stdout_logfile=/var/log/supervisor/%(program_name)-stdout.log
stderr_logfile=/var/log/supervisor/%(program_name)-stderr.log
基础命令
supervisorctlreread
supervisorctladdhello
supervisorctlstarthello
这里需要注意的是Linux文件的管理权限的问题。
如果我们没有给用户分配权限、程序就不能读取文件、在我们使用命令的时候表现出来就是。
supervisor:childprocesswasnotspawned
我们的config文件里我们配置的用户是user=www-data用户所以我们分配读权限。
sudochown-R:www-data/home/vapor/myvapor
当然这里你直接配置你当前的用户也是可以的。
还有可能错误是
Hello:ERROR(spawnerror)
这里我们需要先停止supervisor
sudosupervisorctlstopall
sudosupervisorctlreread
sudosupervisorctlreload
sudosuperviorctlrestartall
如果还不行、这里看有没有程序占用配置的vapor端口。比如8080端口终止掉这个程序再运行。
Linux基础命令
$sudoaddusergit//创建用户
$sugit//切换用户
$cd//进入用户主目录
$mkdir.ssh&&chmod700.ssh//创建文件夹、配置权限
$touch.ssh/authorized_keys&&chmod600.ssh/authorized_keys//创建文件夹、配置权限
$ls-a//查看文件
$userdel-rgit//删除用户帐号及相关档案
groups查看当前登录用户的组内成员
groupswww查看www用户所在的组,以及组内成员
groupdelwww删除用户组
sudousermod-a-Gsudowww//添加www用户到sudo用户组
su-www//切换到www用户
第一次可能有提示
Torunacommandasadministrator(user"root"),use"sudo".See"mansudo_root"fordetails.
这个在我们运行sudo命令之后就会消失。
压缩文件zip-rTest.zipTest
复制文件scproot@127.0.0.0:/home/vaporTest/
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之WebApp频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号