Nginx配置二級目錄反向代理本機不同埠
阿新 • • 發佈:2019-01-03
前序
最近在家裡的伺服器上裝了一大堆的伺服器軟體,大多數都需要Web網站訪問的,比如:Gitlab、Apache、Jenkins等等。然而又因為是不同的應用,需要佔用不同的埠,每次訪問起來都需要在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選項中,將啟用安全鉤去掉就好了。
如果有懂這個反向代理怎麼登入的,還望不惜賜教。