外部Nginx設置Gitlab和部署Pages服務

2020-09-10 10knet

伺服器上已經安裝好了Nginx,配置了多個網站服務,這個情況下我們怎樣安裝配置gitlab才能不影響現有的Nginx網站服務?以及如何開啟Pages用戶網站頁面服務?

以下參照阿里雲CentOS7進行介紹,Nginx的安裝請參照下面這個文章:

CentOS7下的Nginx安裝和配置

為Gitlab啟用外部Nginx服務

Gitlab安裝好之後,主要設置都在/etc/gitlab/gitlab.rb文件裡面,你可以用sftp軟體登陸伺服器找到它,然後用任何IDE或文本編輯器編輯。正常情況全部內容都被注釋了,我們添加以下三行。

external_url &39;nginx[&39;] = falseweb_server[&39;] = [&39;]

如果是apache伺服器,應改為web_server[&39;] = [&39;]

保存更新,然後重新配置Gitlab,使用下面命令:sudo gitlab-ctl reconfigure

如果遇到問題的話,更多參考內容看這裡(英文)。

設置Nginx代理Gitlab服務

Gitlab官方為我們準備好了Nginx需要的配置文件,訪問這裡GitLab recipes repository去下載。

Nginx下載 web-server/nginx/gitlab-omnibus-nginx.conf文件。

它其實就是Nginx虛擬服務的配置文件,打開後查看,修改內容類似下面這樣:

upstream gitlab-workhorse { server unix:/var/opt/gitlab/gitlab-workhorse/socket;}server { listen 80 ; server_name git.10knet.com; server_tokens off; root /opt/gitlab/embedded/service/gitlab-rails/public; access_log /var/log/nginx/gitlab_access.log; error_log /var/log/nginx/gitlab_error.log; location / { client_max_body_size 0; gzip off; proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://gitlab-workhorse; }}

其實只要修改server{}開頭的幾行。你可以把這個server的配置整合到你原來的/etc/nginx/nginx.conf文件或其他配置文件中,然後nginx -s reload使配置生效。

注意!不是直接添加到conf文件結尾,而是根據具體情況,仔細規劃一下才行。更多內容請參考Nginx官方配置說明。

開啟Gitlab的Pages功能

Gitlab的Pages服務可以把用戶的一個項目變為一個靜態網站,在gitlab.rb中要開啟設置:

pages_external_url &34;gitlab_pages[&39;] = true

完整的具體配置參照我的這個文章:

部署Gitlab Pages服務

但這個文章是不使用外部Nginx的情況。下面我們來看如何配置外部Nginx服務來實現子域名解析(泛解析)。

實際上所有的Pages靜態網頁文件都在/var/opt/gitlab/gitlab-rails/shared/pages這個目錄,我們的任務就是把zhyuzh.git.10knet.com/mysite這樣的地址解析到.../pages/zhyuzh/mysite目錄。

添加Nginx的Pages代理設置

默認情況Gitlab的Pages服務運行在本地的8090埠上,我們為Nginx添加以下設置:

upstream gitlab-pages{ server 127.0.0.1:8090;}server { listen 80; server_name *.git.10knet.com; location / { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection &34;; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header X-Forward-Proto http; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; proxy_pass http://gitlab-pages; }}

這個和前面那個gitlab-workhorse設置很像,可以對比參考。保存之後nginx -s reload重載設置,正常的話就完全OK了。

附註

10knet.com現在採用的Nginx策略是:

  • /etc/nginx/nginx.conf只提供http{}並加載10knet/nginx/*.conf配置文件。
  • 10knet/nginx/下包含多個配置文件:main.conf提供主路由10knet.com和泛解析xxx.10knet.com。gitlab.conf提供git.10knet.com和Pages的xxx.10knet.com的解析。kis.conf提供kis.10knet.com的靜態文件服務和藉口代理。更多...

相關焦點

  • 如何在kubernetes上輕鬆部署gitlab
    大多數與GitLab相關的配置都是在gitlab / gitlab-deployment.yml中設置的,必須進行更改。部署GITLAB首先,我們將創建一個單獨的命名空間並部署PostgreSQL和Redis實例。
  • 適合ingress-nginx接入外部負載均衡的部署
    作為反向代理和負載均衡器,可將外部請求轉發到K8S集群內部,以實現七層代理。在生產環境中,一般使用外部的Nginx作為公網的統一訪問入口,通過與ingress-nginx對接可以將請求轉發到K8S集群。在不使用公有雲的情況下,我們可以選擇以下兩種方式ingress-nginx部署方式。
  • gitlab的基本概念和安裝
    gitlab分布式在線代碼倉庫託管軟體,分社區免費版本與企業收費版本,都需要伺服器安裝。gitlab的優勢和應用場景開源免費差異化的版本管理,離線同步以及強大分支管理功能。gitlab主要服務構成nginx靜態web伺服器gitlab-workhorse輕量級的反向代理伺服器gitlab-shell用於處理git命令和修改authorized keys
  • Gitlab安裝及使用
    安裝配置依賴包Gitlab服務需要系統防火牆打開HTTP, HTTPS 和 SSH訪問。nginx 監聽的是80 埠,如果nginx 修改埠,external_url 裡面也必須帶埠。gitlab-ctl start #啟動全部服務gitlab-ctl restart #重啟全部服務gitlab-ctl stop #停止全部服務gitlab-ctl restart nginx #重啟單個服務gitlab-ctl status #查看全部組件的狀態gitlab-ctl show-config #驗證配置文件
  • 群暉DS218+部署GitLab
    群暉解決煩惱家裡有臺群暉DS218+,從不關機,為全家提供穩定的圖片和視頻服務,之前已在上面部署了maven私服、MySQL,運行得很穩定,今天就把GitLab也部署在上面吧,今後可以隨時想用就用,算得上懶人救星了
  • GitLab Runner部署(kubernetes環境)
    minio,pipeline腳本中的cache功能由minio來實現;配置和部署GitLab Runner;編寫和運行pipeline腳本;環境和版本信息本次實戰涉及到多個服務,下面給出它們的版本信息供您參考:GitLab:Community
  • GitLab 11.5 發布,加強安全功能,新增安全組和Pages訪問控制
    日前gitlab官方博客宣布正式發布GitLab 11.5,主要大力增強了安全功能,新增加了安全組儀錶盤、運營面板、在線版本網頁服務Pages的權限訪問更加細化和訪問控制。其他新功能有:更快管道的並行屬性;重新設計的問題面板以及初始Jaeger集成。該版本也對code Review進行了重大改進,使代碼審查更容易,更有用。
  • 小白windows 部署 Nginx 並虛擬主機配置 和 mySQL 的部署
    windows 部署 Nginx 並虛擬主機配置 和 mySQL 的部署一、Nginx 部署並虛擬主機配置indows 部署 Nginx 的注意事項:在配置完成虛擬主機後,需要到任務管理器中關閉所有 Nginx 的進程,再重新啟動 Nginx ,來確保配置文件生效。
  • Nginx 版本選擇與部署
    二、部署方法 Nginx通常有兩種部署方法,分別是通過RPM包安裝和開源包安裝,具體區別如下:1、RPM包安裝方式較為簡單,只需要配置Yum源即可快速安裝,這種方式安裝的Nginx包含大部分官方的Nginx模塊。2、開源包安裝方式較RPM包安裝來說,更為複雜,但是我們可以主動添加特定的模塊進來,其中也包括添加第三方的模塊等,更靈活些。
  • 記一次Gitlab-CI集成K8S實錄
    Gitlab也不甘人後,很好的支持和構建雲原生項目。部署環境的搭建和配置向來繁雜,雲原生之前的年代,搭建和配置部署環境還存在大量人工而且重複地勞動,浪費了大量時間和精力在環境部署上,而且環境難以移植,微服務的興起更是加劇了環境搭建和配置的難度,對運維也是一大挑戰。容器及其編排技術因此而孕育而生,宿主環境的無感知,極易地擴縮容,容器技術存在巨大優勢。
  • Gitlab-ci: 從零開始的前端自動化部署
    && 自動化部署工具的運行機制 1.2 自動化部署給我們帶來的好處二.知識預備 2.1 gitlab-ci涉及的抽象概念(Runner/PipeLine/Executor/Job ) 2.2 YML文件的基本語法規則 2.3 .gitlab-ci.yml配置的特定關鍵字三.CI實戰 3.1 編寫一個gitlab-ci的「hello world」四.坑點總結五.gitlab-ci進階 5.1
  • 基於docker 的 jenkins-ansible-gitlab 實現自動化部署
    ansible 是基於模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible 所運行的模塊,ansible 只是提供一種框架GitLab:GitLab 是一個用於倉庫管理系統的開源項目,使用 Git 作為代碼管理工具,並在此基礎上搭建起來的web服務。GitLab是由 GitLabInc.
  • GitLab 13.7,增加MR審閱者,部署失敗時自動回滾等功能
    通過現在可以看到部署狀態和警報,「環境」頁面將指示可以根據部署狀態(成功,失敗或進行中)採取何種操作。例如,可能想停止當前正在進行的部署,或回滾完成的部署。通過UI設置部署流量權重(PREMIUM及以上)在GitLab 13.7中,可以直接從用戶界面中的部署板更改canary權重。
  • Gitlab+Jenkins+Docker+k8s+Helm自動化部署實踐(硬核乾貨!)
    通過前面兩篇文章,我們已經有了一個「嗷嗷待哺」的K8s集群環境,也對相關的概念與組件有了一個基本了解(前期對概念有個印象即可,因為只有實踐了才能對其有深入理解,所謂「紙上得來終覺淺,絕知此事要躬行」),本文從實踐角度介紹如何結合我們常用的Gitlab與Jenkins,通過K8s來實現項目的自動化部署,示例將包括基於SpringBoot的服務端項目與基於Vue.js的Web項目。
  • 用Kubernetes部署Springboot或Nginx,也就一個文件的事
    nbsp; type: NodePortKind:類型,有Deployment、Service、Pod、Ingress等,非常豐富;metadata:用於定義一些組件信息,如名字、標籤等;labels:標籤功能,非常有用,用於選擇關聯;但label不提供唯一性,可以使用組合來選擇;nodePort:對於需要給外部暴露的服務
  • Nginx安裝與調優部署文檔(WinServer)
    -1.19.1.zip安裝包到伺服器;2、解壓nginx-1.19.1.zip到E盤,並重命名為nginx(名稱可根據實際場景使用來區分)3、將winsw-2.9.0-bin.exe重命名為nginx-service.exe並且複製到E:\nginx目錄下4、在E:\nginx目錄下新建nginx-service.xml文件,內容如下(路徑根據實際部署路徑填寫)
  • 用Docker、Nginx和Jenkins實現前端自動化部署
    基於Vue-CLI的項目部署在GitLab之上。部署目標搭建docker+Nginx+Jenkins環境,用於實現前端自動化部署的流程。具體的實現效果為開發人員在本地開發,push提交代碼到指定分支,自動觸發Jenkins進行持續集成和自動化部署。可以設置在部署完成後通過郵件通知,部署的成功與否,成功後會將打包後的文件上傳到伺服器,通過nginx反向代理展現頁面,失敗則會列印相關的錯誤日誌。
  • Gitlab-CI初識
    我們也總是希望在任何時候都能發布穩定版本的軟體,自動推送功能變更到演示環境,甚至是生產環境,完成持續地交付(Continuous Delivery)和部署(Continuous Deployment),以減少部署帶來的風險和及時得到客戶的反饋。通過Gitlab CI減少了人為錯誤的機會和跨團隊溝通成本,提高整個團隊的效率。
  • nginx安裝與調優部署文檔(Linux)
    1、添加nginx系統服務啟動腳本vi /etc/init.d/nginx#!系統服務及自啟動chmod +x /etc/init.d/nginxchkconfig --add nginx && chkconfig nginx onchkconfig --list nginx
  • 筆記:一個Nginx Web服務部署多個Vue項目實踐
    Web服務,查詢百度百科我們可以很容易看到對它的簡單定義:Nginx (engine x) 是一個高性能的HTTP和反向代理web伺服器,同時也提供了IMAP/POP3/SMTP服務。其特點是佔有內存少,並發能力強,事實上nginx的並發能力在同類型的網頁伺服器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。在Web服務領域其實還有一款比較著名的Web服務中間件,它就是Apache基金下的httpd服務。其實在這兩款Web服務中間件的選用過程中,兩者不分高下。