1. 程式人生 > >Nginx配置二級目錄反向代理本機不同埠

Nginx配置二級目錄反向代理本機不同埠

前序

最近在家裡的伺服器上裝了一大堆的伺服器軟體,大多數都需要Web網站訪問的,比如:GitlabApacheJenkins等等。然而又因為是不同的應用,需要佔用不同的埠,每次訪問起來都需要在IP地址後面再加上埠號,應用太多了就老是記不住埠了。。這才突然發現遺漏Nginx這個神器。

簡介

Nginx 主要的作用就是反向代理負載均衡了,一般在網際網路公司內,作為負載均衡比較多。但是別忘了,它的一個主要用途還有反向代理。在這裡,我們就通過反向代理來使得隱藏埠,二級目錄的形式訪問這些伺服器應用吧。

安裝Nginx

如果想要安裝最新版本,建議從官網下載原始碼,然後編譯安裝。不過我這裡偷懶直接使用倉庫源安裝的,這樣一個比較快,二個安裝目錄和systemd指令碼都弄得好好的,堪稱開箱即用啊。
Ubuntu/Debian

$ sudo apt-get update
$ sudo apt-get install nginx

反向代理配置

直接編輯nginx配置檔案即可,檔案所在位置/etc/nginx/config.d/default.conf

$ sudo vim /etc/nginx/config.d/default.conf

upstream gitlab {
    # 這裡我們需要先手動修改Gitlab的預設訪問埠,預設為80
    server 192.168.1.2:8098;
}

upstream apache {
    server 192.168.1.2:8090;
}

upstream rabbit {
    server 192.168
.1.2:15672; } server { listen 80; server_name localhost; charset utf-8; # http://192.168.1.2/file 即可訪問apache檔案伺服器 location /file { proxy_pass http://apache/; } location /rabbit { proxy_pass http://rabbit/; port_in
_redirect on; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /jenkins { proxy_pass http://192.168.1.2:8088/jenkins/; # Fix the "It appears that your reverse proxy set up is broken" error. # 修復點選系統管理,出現的反向代理設定有誤提示 port_in_redirect on; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 直接IP訪問就是Gitlab location / { proxy_pass http://gitlab/; } }

總結

Nginx是一個非常強大的工具,這裡只是使用到了其實很小的一部分功能。當然也有其他的途徑可以做到,但是很少有Nginx這樣簡單方便的。
配置的過程中,需要注意的是Jenkins的配置,只配置一個proxy_pass的話,它會提示代理配置有誤,所以需要多加一些配置。還有就是通過反向代理配置的Jenkins好像不能登入,會出現跳轉到j_acegi_security_check報404錯誤,因為是自己家裡用,所以我就直接去掉登入功能了,在Configure Global Security選項中,將啟用安全鉤去掉就好了。
如果有懂這個反向代理怎麼登入的,還望不惜賜教。