在docker中使用nginx部署前端项目
前言
部署了三个nginx
用于前端项目, 并使用keepalived
部署好热备, 所以总共有5
个nginx
创建好nginx
的文件和配置
根据上面的指令创建好目录
mkdir /home/web/nginx01
mkdir /home/web/nginx02
mkdir /home/web/nginx03
nginx.conf
配置文件
这里我配置了三个nginx
节点
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$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.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 5s;
proxy_send_timeout 5s;
proxy_read_timeout 5s;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
server {
listen 6501;
server_name 192.168.0.200;
location / {
root /home/web/nginx/renren-vue;
index index.html index.htm;
}
}
}
前面的差别不大, 就后面这一点不太一样
server {
listen 6501;
server_name 192.168.0.200;
location / {
root /home/web/nginx/renren-vue;
index index.html index.htm;
}
}
server {
listen 6502;
server_name 192.168.0.200;
location / {
root /home/web/nginx/renren-vue;
index index.html index.htm;
}
}
server {
listen 6503;
server_name 192.168.0.200;
location / {
root /home/web/nginx/renren-vue;
index index.html index.htm;
}
}
docker
配置指令
docker run -it -d --name=web01 --net=host \
-v /home/web/nginx01/nginx.conf:/etc/nginx/nginx.conf \
-v /home/web/nginx01:/home/web/nginx/renren-vue \
--user=root --privileged=true nginx
docker run -it -d --name=web02 --net=host \
-v /home/web/nginx02/nginx.conf:/etc/nginx/nginx.conf \
-v /home/web/nginx02:/home/web/nginx/renren-vue \
--user=root --privileged=true nginx
docker run -it -d --name=web03 --net=host \
-v /home/web/nginx03/nginx.conf:/etc/nginx/nginx.conf \
-v /home/web/nginx03:/home/web/nginx/renren-vue \
--user=root --privileged=true nginx
利用keepalived
配置热备方案
配置主机keepalived
- 进入容器
docker exec -it bn01 bash
- 更新
apt update
- 安装
vim
apt install vim
- 安装
keepalived
apt install keepalived
- 修改配置文件
vi /etc/keepalived/keepalived.conf
- 写入配置文件
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.0.160
}
}
virtual_server 192.168.0.160 6701 {
delay_loop 3
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.0.200 6601 {
weight 1
}
}
- 启动
service keepalived start
- 验证
docker top bn01
看下keepalived
进程是否运行, 如果运行再访问
http://192.168.0.160:6701/#/home
看下是否能够访问
配置备机
- 进入容器
docker exec -it bn02 bash
- 更新
apt update
- 安装
vim
apt install vim
- 安装
keepalived
apt install keepalived
- 修改配置文件
vi /etc/keepalived/keepalived.conf
- 写入配置文件
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 52
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.0.160
}
}
virtual_server 192.168.0.160 6701 {
delay_loop 3
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.0.200 6602 {
weight 1
}
}
- 启动
service keepalived start
- 验证
docker top bn02
看下keepalived
进程是否存在, 如果存在则
http://192.168.0.160:6701/#/home
看下是否能够访问
现在停止掉主机, 然后稍等一会儿再看看是否能够运行
exit
退出docker
容器
执行docker stop bn01
停止掉主机
可能需要判断下,
docker logs bn01
和docker logs bn02
看下最近一次访问是否, 我这里发现是备机在运行, 所以实际上我执行的是docker stop bn02
发现访问http://192.168.0.160:6701/#/home
网址还是没问题
这里需要等待几分钟, 可改等待时间
成功部署热备
在docker中使用nginx部署前端项目的更多相关文章
- nginx部署前端项目
1.在阿里云服务器上安装nginx,推荐使用yum安装 yum install -y nginx // 命令安装 nginx 服务器 2.配置nginx 安装完成后,进入 nginx 配置文件目录 一 ...
- 简单的利用nginx部署前端项目
网上有很多教程写的一大堆东西,新手可能会有点看不懂,现在我写这篇文章是为了更好的帮助新手,如何将自己的前端项目部署到自己的服务器上. 首先我们必须要有一台自己的ubuntu服务器,如果没有可以去阿里云 ...
- nginx 部署前端项目(vue)
前提:安装好nginx 打开nginx目录,一般是(/usr/local/nginx) npm run build 打好vue包 一般放到(/usr/local/nginx/html/)目录下 配置: ...
- docker自动化部署前端项目实战一
docker自动化部署前端项目实战一 本文适用于个人项目,如博客.静态文档,不涉及后台数据交互,以部署文档为例. 思路 利用服务器node脚本,监听github仓库webhook push事件触发po ...
- 基于云原生DevOps服务自动化部署前端项目学习总结
本文主要以部署前端Vue项目为例,讲述了如何基于云原生DevOps服务自动化部署前端项目~从开发完成到线上环境,我们只需提交代码即可~ 一.引言 作为一名开发人员,日常工作中我们除了需要负责代码的开发 ...
- nginx部署vue项目
nginx是一个高性能的HTTP和反向代理服务器.因此常用来做静态资源服务器和后端的反向代理服务器.本文主要记录使用nginx去部署使用vue搭建的前端项目,项目基于vue官方的脚手架vue-cli构 ...
- 使用uWSGI+nginx部署Django项目
最近使用django写了一些项目,不过部署到服务器上碰到一些问题,还有静态文件什么的一堆问题,这里总结一下碰到的问题和解决方案,总体思路是按照官方文档走的. 原文地址:http://uwsgi-doc ...
- nginx部署h5项目
1. nginx部署h5项目 此为windows部署,liunx也类似的 1.1. 前言 部署h5项目还是很简单的,不过对小白来讲一开始可能也是一脸懵逼,这个简单教程针对的是从未部署过前后端分离前端项 ...
- 通过Nginx部署flask项目
用Flask开发之后,很多人,喜欢用nohup python manage.py & 这样的形式,放到后台运行,其实这样只是个发开模式,很简陋,无法支持并发,进程监控等功能.所以采用nginx ...
随机推荐
- 基于Centos 7.4 搭建ELK整合SpringBoot日志收集
基于Centos 7.4搭建es7.12.0+logstash-7.12.0+kibana-7.12.0(ELK)整合SpringBoot日志收集 注:Skywalking和logstash可共用一个 ...
- shell基础之变量及表达式
本节内容 1. shell变量简介 2. 定义变量 3. 使用变量 4. 修改变量的值 5. 单引号和双引号的区别 6. 将命令的结果赋值给变量 7. 删除变量 8. 变量类型 9. 特殊变量列表 1 ...
- Linux进阶之日志管理
一.何为日志 1.在程序执行时,可以通过标准输出以及错误输出,让我们知道程序的执行情况,而系统不可能将所有程序的输出信息一起显示,要知道后台执行的程序非常之多,如果一起显示,那我们不用操作了,整天只看 ...
- Java和JDK版本的关系-(转载)
JAVA的版本最开始是1995年的JDK Alpha and Beta版本,第二年发布JDK1.0版本之后就是JDK1.1,JDK1.2.到1998年,不再叫JDK了,而是叫J2SE,但是版本号还是继 ...
- JavaEE 前后端分离以及优缺点
前端概念 前端是一切直接与用户交互的页面或软件(用户看得见.摸得着)的统称,比如各种网站网页.andorid 手机各种 App.苹果手机各种 app.微信小程序.网络游戏客户端等.所以,普通人使用计算 ...
- Centos下删除文件后空间并未释放
[root@DeviceSP /]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda3 90G 82G 3.8G 96% / tmp ...
- PID基础
经常有人会问到PID的用法,今天小编在这里例举温度控制中的PID部分,希望能够把PID的具体应用说明白. 先说几个名词: 1.直接计算法和增量算法:这里的所谓增量算法就是相对于标准算法的相邻两次运算之 ...
- rocketmq常见问题及使用 新手篇
一 部署阶段 1.启动命令 nameServer启动:nohup sh bin/mqnamesrv -n ip地址:9876 & broker启动:nohup sh bin/mqbroker ...
- conda 按照指定源下载python包
conda 按照指定源下载python包 换成了国内的pip源就可以正常安装了,我使用的是:pip install xlrd -i http://pypi.douban.com/simple --tr ...
- GO语言常用标准库01---strings包
package main import ( "fmt" "strings" ) func main031() { fmt.Printf("字符形式:% ...