风卷残云般部署好一个Phoenix应用,在Ubuntu服务器上
为什么80%的码农都做不了架构师?>>>
注意,编译项目文件时所使用的操作系统要与服务器一致,例如需要运行在Ubuntu64上的项目,就需要在Ubuntu64的环境里编译。
服务器上先安装好
- erlang
- elixir
- phoenix
- postgreSQL
- nginx
以下操作在本地进行
- 添加exrm依赖
{:exrm, "~> 1.0"}
到mix.exs
文件 - 修改
config/prod.exs
# Configures the endpoint
config :hello_phoenix, HelloPhoenix.Endpoint,
http: [port: 8888],
url: [host: "example.com"],
root: ".",
cache_static_manifest: "priv/static/manifest.json",
server: true,
version: Mix.Project.config[:version]
- 预编译静态资源
$ MIX_ENV=prod mix phoenix.digest
==> ranch (compile)
. . .
Check your digested files at 'priv/static'.
- 生成发布包
MIX_ENV=prod mix compile
MIX_ENV=prod mix release
- 测试发布
rel/hello_phoenix/bin/hello_phoenix console
没有错误的话,我们的应用会运行在http://localhost:8888/
发布
- 将发布包发送到服务器
$ scp -i ~/.ssh/id_rsa.pub rel/hello_phoenix-0.0.1.tar.gz ubuntu@hostname.com:/home/ubuntu
hello_phoenix-0.0.1.tar.gz 100% 18MB 80.0KB/s 03:48
- 登陆服务器,并解压
$ ssh -i ~/.ssh/id_rsa.pub ubuntu@hostname.com
$ sudo mkdir -p /app
$ sudo chown ubuntu:ubuntu /app
$ cd /app
$ tar xfz /home/ubuntu/hello_phoenix-0.0.1.tar.gz
以下在服务器进行
- 让应用在系统启动时启动
sudo vi /etc/init/hello_phoenix.conf
description "hello_phoenix"## Uncomment the following two lines to run the
## application as www-data:www-data
#setuid www-data
#setgid www-datastart on runlevel [2345]
stop on runlevel [016]expect stop
respawnenv MIX_ENV=prod
export MIX_ENV## Uncomment the following two lines if we configured
## our port with an environment variable.
env PORT=8888
export PORT## Add app HOME directory.
env HOME=/app
export HOMEpre-start exec /bin/sh /app/bin/hello_phoenix startpost-stop exec /bin/sh /app/bin/hello_phoenix stop
- 启动应用
sudo start hello_phoenix
- 配置nginx
$ sudo touch /etc/nginx/sites-available/hello_phoenix
$ sudo ln -s /etc/nginx/sites-available/hello_phoenix /etc/nginx/sites-enabled
$ sudo vi /etc/nginx/sites-available/hello_phoenix
upstream hello_phoenix {server 127.0.0.1:8888;
}
# The following map statement is required
# if you plan to support channels. See https://www.nginx.com/blog/websocket-nginx/
map $http_upgrade $connection_upgrade {default upgrade;'' close;
}
server{listen 80;server_name .hostname.com;location / {try_files $uri @proxy;}location @proxy {include proxy_params;proxy_redirect off;proxy_pass http://hello_phoenix;# The following two headers need to be set in order# to keep the websocket connection open. Otherwise you'll see# HTTP 400's being returned from websocket connections.proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $connection_upgrade;}
}
- 重启nginx
sudo service nginx restart
一切顺利的话,你可以在你设置的http://hostname.com/
访问Phoenix应用了。
转载于:https://my.oschina.net/ljzn/blog/735671
风卷残云般部署好一个Phoenix应用,在Ubuntu服务器上相关推荐
- Ubuntu服务器上部署kodexplorer私有云盘
阅读目录 一.准备 二.下载安装xampp 三.下载安装可道云kodexplorer 注意:云服务器部署和普通的Ubuntu上部署有一些区别,因为云服务器上只能使用命令行,没有界面. 一.准备 首先, ...
- Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。
Nginx下网站部署实战 题目:部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站. 一. 搭建Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理we ...
- 如何在服务器上建一个共享文件夹,在云服务器上建共享文件夹
在云服务器上建共享文件夹 内容精选 换一换 要访问您的文件系统,如果是Linux云服务器,您需要在Linux云服务器上安装NFS客户端后使用挂载命令挂载文件系统:如果是Windows云服务器,您需要在 ...
- Ubuntu服务器上部署Vue项目
一.创建Vue项目 用管理员权限打开命令行窗口,用vue-cli 来新建一个项目,执行->vue create [项目名称],我这里项目名称为testapp,回车命令行之后会有这么一个弹窗让你选 ...
- docker 部署了一个网站玩
docker 部署了一个网站玩,结果网页上有很多乱码(数据库查出来的部分),也有正常显示的中文(静态页面部分). 就研究了很久服务器的编码问题.docker 镜像的编码问题,搞了很久最终发现是数据库编 ...
- 部署一个Javaweb项目到腾讯云服务器上,在腾讯云轻量应用服务器上部署javaweb项目
博主每篇博文的浪漫主义 [听说,思念是一种病?] https://www.bilibili.com/video/BV1z14y177VT?share_source=copy_web&vd_so ...
- 集合70多种推荐算法,东北大学老师用Java写了一个开源库,在GitHub上收获近1500个Star...
[AI科技大本营导读]在经过一年多的开发工作之后,LibRec 3.0 版本终于发布了.LibRec 是一个基于 Java 的开源算法工具库,覆盖了 70 余个各类型推荐算法,可以有效解决评分预测 ...
- IIS——服务器上部署网站及遇到的问题图解(二)
上篇博文写了关于IIS安装及在本地使用IIS部署网站的方法,此篇博文记录一下在服务器上用IIS部署网站的方法. 一.背景 很荣幸接手了成绩系统项目并当了组长,也正直搬家时期,同时也换了新的服务器 ...
- 教你如何在window服务器上快速部署SpringBoot web项目
小白笔录,大神请绕路.欲在服务器上部署项目,必先细细考量服务器上是否已经搭建好环境.此处以 web项目部署在 tomcat 上为例,前三个步骤以实际情况,读者自行跳过. 一.搭建 jdk 环境 在搭建 ...
最新文章
- 明星软件工程师的十种特质
- C/C++注册表【2】打开,创建,删除
- 【服务器】宝塔LNMP安装Discuz!
- java 给多人发送、抄送
- js原生继承几种方式
- Android实战开发--三种地图类型的设计
- 推荐个软件EveryThing(可以快速找到电脑里的各种东西)
- sklearn包使用Extra-Trees和GridSearchCV完成成人死亡率预测
- 第十二届蓝桥杯大赛软件赛省赛 Java 大学 B 组(2021年4月18日)
- 微信小程序剪切图片的功能
- 利用Python画一只小猪佩奇
- 被删除的pip,重新安装
- python做网站开发_如何用Python做网站开发
- 关于存储优化型实例和大型数据仓库EC2实例选型
- statsmodels.tsa.stattools.adfuller 的用法
- 爱普生几种低功耗时钟芯片
- 辐射发射的测试标准和测试方法
- 什么是webpack?webpack构建工具如何理解?webpack是干什么的?
- css3新增的属性和用法
- 正厚干货 |银行承兑汇票