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 ...
随机推荐
- Kinect SDK2.0 + OpenCV 3.0 抠人,换背景
使用Kinect2.0的MultiSourceFrameReader,同时获取DepthFrameSource, ColorFrameSource, BodyIndexFrameSource,然后获取 ...
- admin的配置
当我们访问http://127.0.0.1:8080/admin/时,会出现: 执行命令: 生成同步数据库的脚本:python manage.py makemigrations ...
- Java语言程序设计课程学期总结
2016-2017 第2学期 课程介绍 编程类课程,76学时(44理论+32实验),学期末还有1周的课程设计. 问题与现状 4个班共120人,教师无法逐一检查每个学生的编程实验. 纸质作业质量不高. ...
- Android简易实战教程--第四十八话《Android - Timer、TimerTask和Handler实现倒计时》
之前本专栏文章中的小案例有写到:第三十九话<Chronometer实现倒计时> 以及使用异步实现倒计时:第三十三话< AsyncTask异步倒计时> 本篇文章 结合Timer. ...
- Android存储之SQLite数据库
Android存储之SQLite数据库数据库 创建数据库 package --; import android.content.Context; import android.database.sql ...
- Android Multimedia框架总结(二十)MediaCodec状态周期及Codec与输入/输出Buffer过程(附实例)
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/53183718 前言:前面几节都是 ...
- Android Multimedia框架总结(十五)Camera框架之Camera2补充
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52751055 前言:监于5.0之 ...
- ROS机器人程序设计(原书第2版)补充资料 (伍) 第五章 计算机视觉
ROS机器人程序设计(原书第2版)补充资料 (伍) 第五章 计算机视觉 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. 计算机视觉这章分为两 ...
- iOS网络基础
转载请标明出处: http://blog.csdn.net/xmxkf/article/details/51376048 本文出自:[openXu的博客] 常用类 get请求 post请求 NSURL ...
- Java学习之参数传递详解
Java中的参数传递问题: 基本类型:形式参数的改变对实际参数没有影响.在参数传递过程中,形参和实参占用了两个完全不同的内存空间. 引用类型:形式参数的改变直接影响实际参数.在参数传递的过程中,形参和 ...