一、在實際應用中,我們個人搭建gitlab環境的時候,都是在公司內網的情況下,只爲單獨的某個企業/公司使用,所以此時會出現某些特殊的訪問需求,比如我只允許公司某個網段中的IP地址訪問,或者只允許某幾臺主機訪問gitlab服務器,而拒絕某些主機訪問。
二、在外網情況下,也會有惡意IP攻擊gitlab服務,進行不友好的訪問,此時我們可以找出這些IP地址,將其加入黑名單
三、檢查環境,確定你所在的網段中用於測試的主機之間能夠互相ping同,正常情況下啓動gitlab,同網段的其他主機能夠正常訪問gitlab頁面服務。
四、gitlab本身集成的就有Nginx功能,在無需設置外部Nginx情況下,我們一樣可以做訪問網段限制。
五、編輯 vim /etc/gitlab/gitlab.rb文件,增加下面的幾行代碼:
nginx['custom_gitlab_server_config'] = "location ~* (.*) {
deny 192.168.2.109;
allow 192.168.2.0/24;
deny all;
proxy_cache off;
proxy_pass http://gitlab-workhorse;
root html;
index index.html index.htm;}\n"
1. 此處修改不可以設置location /
規則,因爲gitlab自己的gitlab-http.conf
中已經有對應的配置;
2. proxy_cache off;\n proxy_pass http://gitlab-workhorse;\n
這兩行一定要加,不然全部報404錯誤
3. root html;\n index index.html index.htm;
這兩行也要加,因爲我們使用location ~* (.*)
重置了所有的請求匹配
4. allow 192.168.2.0/24
是指192.168.2.0
- 192.168.2.254
的ip區段都可以訪問, 如果想匹配192.168.*.*
可以使用192.168.0.0/16
5.deny 192.168.2.109是指拒絕該主機的訪問,如果有更多的主機,可以在下一行繼續添加拒絕IP地址: deny 192.168.x.x 實現gitlab的IP黑名單設置
6.deny all除了上面的規則外,拒絕所有其他主機訪問。
配置完成後,重新配置gitlab,執行 gitlab-ctl reconfigure命令
即可發現被拒絕的主機在訪問gitlab頁面服務時報403錯誤,不能進行訪問。
參考地址:https://github.com/idododu/FE/blob/gh-pages/install-gitlab.md