使用nginx反向代理docker中的git和redmine
最近因為工作需要,需要在伺服器上安裝配置docker,並且在docker上安裝配置gitlab和redmine,並且使用nginx對他們進行反向代理,使得在公司區域網內客戶端瀏覽器上輸入http://serverip/gitlab和http://serverip/redmine就能很好的訪問gitlab和redmine。
對於ubuntu上安裝docker和docker上安裝gitlab和redmine,我這裡就不描述了,我這裡主要講的是我在使用nginx反向代理gitlab和redmine時遇到的問題以及我的解決方案。
我在docker上安裝gitlab和redmine時,分別publish 出來的對映埠就是10180和10083,起初在區域網內客戶端的瀏覽器上輸入http://serverip:10180和http://serverip:10083是能很好訪問他們的。我在使用nginx反向代理的時候,竊以為可以直接簡單粗暴的跳轉代理過去,於是,我剛開始的nginx的配置是這樣的:
http{
……
server {
listen 80;
server_name localhost;
location /gitlab {
……
proxy_pass http://serverip:10180;
}
location /redmine {
……
proxy_pass http://serverip:10083;
}
……
}
}
在我對nginx的理解中和我工作的經驗中判斷,這是可行的。但是我每次在客戶端訪問時,他總是會出錯,總是報出404的網頁錯誤,在我檢視nginx的錯誤日誌時發現,他每次都會跑到nginx的預設html目錄下去尋找gitlab目錄和redmine目錄,然而這兩個目錄是不存在的,所以網頁會報出404的錯誤。對於這個錯誤我使用了很多方法都無法很好的解決,使用的這些方法有:
(1)將proxy_pass變數改為proxy_pass http://127.0.0.1:10180,proxy_pass http://127.0.0.1:10083,但是我發現這是很不穩定的,他每次只是去伺服器的快取中訪問相應頁面,如果快取中沒有相應的頁面的時候,他也一樣會報出404的錯誤.
(2) 將proxy_set_header Host $host設定為proxy_set_header Host $host:$server_port發現也還是無法很好的跳轉代理。
最後,在一篇小文章中看到了一個虛擬ip的解決方案,於是就抱著嘗試的心態試了試,結果真的可以很好的訪問,檢視access日誌時發現訪問是正確的,這種配置是:
先將eth0虛擬一個ip地址,使用ifconfig eth0:1 yourip命令虛擬,我在更改nginx.conf時將server的配置如下:
server {
listen yourip:80;
server_name yourip;
location /gitlab {
……
proxy_pass http://serverip:10180;
}
location /redmine {
……
proxy_pass http://serverip:10083;
}
……
}
在客戶端的瀏覽器中輸入http://yourip/gitlab和http://yourip/redmine就能很好的訪問gitlab和redmine了!
相關文章
- Docker安裝Redmine並使用Nginx反向代理為httpsDockerNginxHTTP
- docker下nginx反向代理和負載均衡配置DockerNginx負載
- Nginx proxy manager反向代理docker hubNginxDocker
- nginx 反向代理 swoole 使用Nginx
- Nginx正向代理和反向代理配置Nginx
- docker 安裝 nginx 並配置反向代理DockerNginx
- 為Docker建立自動化nginx反向代理DockerNginx
- 利用nginx反向代理加速docker映象拉取NginxDocker
- Nginx反向代理Nginx
- nginx 反向代理Nginx
- nginx正向代理、反向代理Nginx
- 【Nginx】Nginx反向代理和負載均衡部署Nginx負載
- Nginx和RedmineNginx
- Nginx 配置:反向代理Nginx
- Nginx 配置反向代理Nginx
- [Nginx] TCP 反向代理NginxTCP
- Nginx 反向代理 websocketNginxWeb
- Docker Compose例項之nginx反向代理GitLabDockerNginxGitlab
- nginx的https和http共存反向代理配置NginxHTTP
- 如何使用 Weave 以及 Docker 搭建 Nginx 反向代理/負載均衡伺服器DockerNginx負載伺服器
- Nginx之路--配置正向代理、反向代理Nginx
- nginx 反向代理設定Nginx
- Nginx四層反向代理Nginx
- 簡單介紹nginx反向代理及使用Nginx
- 使用 Nginx Proxy Manager反向代理開啟SSLNginx
- yapi 的 nginx 反向代理配置文字APINginx
- PgSql on Docker with HaProxy 反向代理SQLDocker
- Nginx之location中反向代理proxy_pass配置Nginx
- nginx 反向代理 介面請求Nginx
- 淺談Nginx之反向代理Nginx
- nginx反向代理配置去除字首Nginx
- tomcat 配置nginx 反向代理TomcatNginx
- nginx反向代理快取教程。Nginx快取
- Nginx實戰(五) 反向代理Nginx
- Nginx、haproxy反向代理設定Nginx
- nginx 反向代理到目錄Nginx
- 配置Nginx反向代理TomcatNginxTomcat
- 通過docker-compose搭建 Nginx 反向代理伺服器DockerNginx伺服器