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 ...
随机推荐
- Java锁Synchronized对象锁和类锁区别
java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁.线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁.获得内置锁的唯一途径就是进入这个锁的保 ...
- struts框架从.jsp页面直接访问action
<%@ page language="java" pageEncoding="UTF-8"%><%String path = request. ...
- php闭包类外操作私有属性
Closure::bind() Closure::bindTo(); class person{ private $age; private $sex; public function __const ...
- 分享一个二维码图片识别控制台程序Demo
怎么用NuGet和配置log4net就不介绍了,直接上代码(QRDecodeDemo.zip). (Visual Studio 2015 下的项目,用的.NET Framework 4.5.2) 吐槽 ...
- Java IO流笔记
File 类 ps:注意file的delete失败可能是输入输出流还在用这个file Java实现简单文件管理 package fileDemo; import java.io.File; impor ...
- Minimize the error CodeForces - 960B
You are given two arrays A and B, each of size n. The error, E, between these two arrays is defined ...
- Bootstrap3 表单-输出内联表单
为 <form> 元素添加 .form-inline 类可使其内容左对齐并且表现为 inline-block 级别的控件.只适用于视口(viewport)至少在 768px 宽度时(视口宽 ...
- IP_ADD_MEMBERSHIP 失败
/*将本机加入多播组*/ err = setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP,&mreq, sizeof(mreq)); if (err &l ...
- Dynamics CRM2016 Web Api之时间字段值的处理
本篇又是一次来谈到CRM中时间字段的问题,那这次要谈的是在引用web api过程中写代码上的注意事项,常用的代码场景即JS和c#. 先来看下js,从下图中可以看到,我直接将new Date()赋值给时 ...
- Python Tkinter小试
前两天看到一篇关于Python使用Tkinter 的博文,写的很好.就拿来研究了一下,改了改.现分享如下: 参考 代码 # coding:utf8 # python2.73 winxp ''''' 天 ...