gitlab6 nginx配置和启动脚本
gitlab6 nginx配置和启动脚本
cheungmine
2013-10
最近把gitlab安装到了ubuntu12.04.3的虚拟机上了。参考:
https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md
www.nickyeoman.com/blog/system-administration/180-install-gitlab-on-ubuntu
我用了2个虚拟机,vm-gitlab6安装gitlab6和相关的东西:nginx, postfix, redis,ruby,另一个vm-mysqldb4git安装了mysql db。用这2台虚拟机构成了整个内网下的 gitlab服务。由于使用了NAT,还需要在主机上安装nginx,指向vm-gitlab6上的nginx服务。
虚拟机的用户car设置了sudo免密码,参考:
http://blog.csdn.net/cheungmine/article/details/12341005
这样连同主机在内有3台机器:
--------------------------------------------------
host: 192.168.90.122
nginx A
/etc/hosts 中加入:
192.168.90.122 vm-gitlab
--------------------------------------------------
vm-gitlab6: 192.168.122.24
nginx B
gitlab6.1
git
ruby2.0x
postfix
redis
-------------------------------------------------
vm-mysqldb4git: 192.168.122.139
mysqldb for git
nginx A需要指向nginx B,nginx A配置文件(/etc/nginx/sites-available/gitlab)如下:
# GITLAB
# Maintainer: @randx
# App Version: 5.0
upstream gitlab {
server unix:/home/git/gitlab/tmp/sockets/gitlab.socket;
}
server {
listen 80; # e.g., listen 192.168.1.1:80; In most cases *:80 is a good idea
##server_name 192.168.90.122; # e.g., server_name source.example.com;
server_name 192.168.90.122 vm-gitlab; # e.g., server_name source.example.com;
server_tokens off; # don't show the version number, a security best practice
root /home/git/gitlab/public;
# individual nginx logs for this gitlab vhost
access_log /var/log/nginx/gitlab_access.log;
error_log /var/log/nginx/gitlab_error.log;
location / {
# serve static files from defined root folder;.
# @gitlab is a named location for the upstream fallback, see below
try_files $uri $uri/index.html $uri.html @gitlab;
}
# if a file, which is not found in the root folder is requested,
# then the proxy pass the request to the upsteam (gitlab unicorn)
location @gitlab {
proxy_read_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
proxy_connect_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://192.168.122.24;
}
}
nginx B 配置文件(/etc/nginx/sites-available/gitlab)如下:
# GITLAB
# Maintainer: @randx
# App Version: 5.0
upstream gitlab {
server unix:/home/git/gitlab/tmp/sockets/gitlab.socket;
}
server {
listen *:80 default_server; # e.g., listen 192.168.1.1:80; In most cases *:80 is a good idea
#server_name vm-gitlab; # e.g., server_name source.example.com;
server_tokens off; # don't show the version number, a security best practice
root /home/git/gitlab/public;
# individual nginx logs for this gitlab vhost
access_log /var/log/nginx/gitlab_access.log;
error_log /var/log/nginx/gitlab_error.log;
location / {
# serve static files from defined root folder;.
# @gitlab is a named location for the upstream fallback, see below
try_files $uri $uri/index.html $uri.html @gitlab;
}
# if a file, which is not found in the root folder is requested,
# then the proxy pass the request to the upsteam (gitlab unicorn)
location @gitlab {
proxy_read_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
proxy_connect_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://gitlab;
}
}
由于gitlab都在虚拟机上,每次启动和关闭都很繁琐,特写了启动和关闭的脚本,使操作一键完成,可以重复启动和关闭,这样也方便更改配置。启动脚本如下:
#!/bin/bash
# start-gitlab.sh
# cheungmine@gmail.com
################################################################################
# vm-gitlab6
vm_gitlab6_name='vm-gitlab6'
vm_gitlab6_ip='192.168.122.24'
vm_gitlab6_login='car'
vm_gitlab6_passwd='abc1234'
# vm-mysqldb4git
vm_mysqldb4git_name='vm-mysqldb4git'
vm_mysqldb4git_ip='192.168.122.139'
vm_mysqldb4git_login='car'
vm_mysqldb4git_passwd='abc1234'
echo "================================================================="
echo "start gitlab, mysqldb4git virtual machines and services..."
# check if vm-gitlab6 is running
if (! ping -c 1 $vm_gitlab6_ip); then
echo -e $vm_gitlab6_name "(" $vm_gitlab6_ip ") is not running!\r\n"
sudo virsh start $vm_gitlab6_name
fi
# check if vm-mysqldb4git is running
if (! ping -c 1 $vm_mysqldb4git_ip); then
echo -e $vm_mysqldb4git_name "(" $vm_mysqldb4git_ip ") is not running!\r\n"
sudo virsh start $vm_mysqldb4git_name
fi
# waiting for vm-gitlab6 is ready
while (! ping -c 1 $vm_gitlab6_ip); do sleep 1; done
sudo virsh list --all
# start services in vm-gitlab6
sshpass -p $vm_gitlab6_passwd ssh $vm_gitlab6_login@$vm_gitlab6_ip "sudo /etc/init.d/gitlab restart"
sshpass -p $vm_gitlab6_passwd ssh $vm_gitlab6_login@$vm_gitlab6_ip "sudo /etc/init.d/nginx restart"
# start local nginx service
echo "start nginx at localhost:" `hostname`
sudo /etc/init.d/nginx restart
echo "gitlab, mysqldb4git virtual machines and services are now ready !"
echo "================================================================="
关闭脚本如下:
#!/bin/bash
# stop-gitlab.sh
# cheungmine@gmail.com
################################################################################
# vm-gitlab6
vm_gitlab6_name='vm-gitlab6'
vm_gitlab6_ip='192.168.122.24'
vm_gitlab6_login='car'
vm_gitlab6_passwd='abc1234'
# vm-mysqldb4git
vm_mysqldb4git_name='vm-mysqldb4git'
vm_mysqldb4git_ip='192.168.122.139'
vm_mysqldb4git_login='car'
vm_mysqldb4git_passwd='abc1234'
echo "================================================================="
echo "stop gitlab, mysqldb4git virtual machines and services..."
# stop services on vm-gitlab6
if (! ping -c 1 $vm_gitlab6_ip); then
echo -e $vm_gitlab6_name "(" $vm_gitlab6_ip ") is not running!\r\n"
else
sshpass -p $vm_gitlab6_passwd ssh $vm_gitlab6_login@$vm_gitlab6_ip "sudo /etc/init.d/gitlab stop"
sshpass -p $vm_gitlab6_passwd ssh $vm_gitlab6_login@$vm_gitlab6_ip "sudo /etc/init.d/nginx stop"
sleep 10
sudo virsh shutdown $vm_gitlab6_name
fi
# stop services on vm-mysqldb4git
if (! ping -c 1 $vm_mysqldb4git_ip); then
echo -e $vm_mysqldb4git_name "(" $vm_mysqldb4git_ip ") is not running!\r\n"
else
# close mysqldb
# sleep 5
sudo virsh shutdown $vm_mysqldb4git_name
sleep 5
fi
sudo virsh list --all
# stop local nginx service
echo "stop nginx at localhost:" `hostname`
sudo /etc/init.d/nginx stop
echo "gitlab, mysqldb4git virtual machines are shutdown !"
echo "================================================================="
gitlab6 nginx配置和启动脚本的更多相关文章
- Centos 配置开机启动脚本启动 docker 容器
Centos 配置开机启动脚本启动 docker 容器 Intro 我们的 Centos 服务器上部署了好多个 docker 容器,因故重启的时候就会导致还得手动去手动重启这些 docker 容器,为 ...
- ubuntu系统自动配置开机启动脚本
以前一直搞的centos配置开机启动脚本,但是相同方法用在ubuntu系统上就不管用了,非常伤脑筋. 非常感谢 https://www.linuxidc.com/Linux/2017-09/1471 ...
- 【Web】Nginx配置开机启动
在添加nginx服务之后,大家会希望开机伴随启动nginx,避免手动路径输入启动: nginx官方提供了启动脚本:https://www.nginx.com/resources/wiki/start/ ...
- nginx配置开机启动及配置sudo授权启动
1.https://www.cnblogs.com/whatmiss/p/7091220.html 配置开机启动nginx 2.sudo授权其它用户启动 (1)root用户编辑 visu ...
- yum 安装nginx(配置开机启动)
yum install -y nginx 通过yum安装的时候提示下面的错误 [root@localhost yum.repos.d]# yum install nginx 已加载插件:fastest ...
- nginx、php-fpm启动脚本
Nginx官方启动脚本 //service nginx stop|start|restart|reloadtouch /etc/init.d/nginx chmod nginxvi /etc/init ...
- nginx二进制编译-启动脚本编写
首先先把这个文件上传到root目录下,并解压 #tar zxf nginx-1.11.2.tar.gz 写脚本 # vi nginx-running.sh 内容如下 #!/bin/bash #chkc ...
- 配置和启动脚本(bash shell学习01)
bash是 Bourne Again Shell简称 ,从unix系统的sh发展而来 查看当前shellecho $SHELL查看系统支持的shellcat /etc/shells cd /binls ...
- nginx init 官方启动脚本
#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # descrip ...
随机推荐
- 开发网页时,127.0.0.1或者localhost能访问,而本机地址不能访问的解决
第一 ping试试 127.0.0.1 和 本机地址 若127.0.0.1可以 说明可以自己ping自己 若本机地址可以 说明host正常 第二 检查服务器部署 再部署一个新的 若新的正常 说明你项目 ...
- c++ 深入理解虚函数
为什么使用虚函数?什么是虚函数?虚函数是为了解决什么问题? 面向对象的三大特征: 封装 多态 继承 普通虚函数 虚析构函数 纯虚函数 抽象类 接口类 隐藏 vs 覆盖 隐藏与覆盖之间的关系 早绑定和晚 ...
- ubuntu 下查看caj文件
知网的学位论文只有CAJ版,而我又偏偏使用Ubuntu,所以就有了这篇文章. 前端时间发现第一种方法在ubuntu 16 上不行, 请使用第二种方法. 第一种方法: 环境:Ubuntu 14.04 6 ...
- js强大的日期格式化函数,不仅可以格式化日期,还可以查询星期,一年中第几天等
js强大的日期格式化,timestamp支持10位或13位的时间戳,或是时间字符串,同时支持android ios的处理,不只是日期的格式化还有其它方法,比如获 获取某月有多少天 .获取某个日期在这一 ...
- Django中过期@cache_page中缓存的views数据
django的缓存系统中,cache_page 这个装饰器非常好用,只要添加一个装饰器就可以缓存views的响应内容,但是django没有提供过期这个views缓存数据的功能. @cache_page ...
- Android 动态加载(防止逆向编译) jar混淆加密
最近工作中接到了一个研究防止逆向编译的任务.研究了几天资料,最后基本实现了防破解技术,在这个工程中,也略有一些心得体会,现整理下来分享,供大家探讨参考研究.文中如有纰漏.失实之处,请大家及时给与指正. ...
- SQL批处理与事务控制
今天我想要分享的是关于数据库的批处理与事务的控制.批处理对于项目的实际应用有非常大的具体意义. 一.批处理部分 首先我们新建一个表: create table t3( id int primary k ...
- Python 描述符 data 和 non-data 两种类型
仅包含__get__的,是non-data descriptor, 如果实例__dict__包含同名变量, 则实例优先; 如果还包含__set__, 则是data descriptor, 优先于实例_ ...
- EBS多组织结构
1. 业务组: 它代表组织结构的最高层次, 它分离了人力资源的信息. 例如, 当你查询人员时, 它会列出所有分配给相应业务组的成员, 而你自己所属于的组织只不过是业务组的一份子. 这样说可能造成一种误 ...
- x264源代码简单分析:宏块编码(Encode)部分
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...