Nginx通过反向代理实现单端口访问多个服务
生活随笔
收集整理的這篇文章主要介紹了
Nginx通过反向代理实现单端口访问多个服务
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、什么是反向代理:
反向代理服務(wù)器架設(shè)在服務(wù)器端,通過緩沖經(jīng)常被請求的頁面來緩解服務(wù)器的工作量,將客戶機請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的目標服務(wù)器;并將從服務(wù)器上得到的結(jié)果返回給Internet上請求連接的客戶端,此時代理服務(wù)器與目標主機一起對外表現(xiàn)為一個服務(wù)器。
2、舉個例子
假設(shè)服務(wù)器共有兩個服務(wù),一個是網(wǎng)站服務(wù),一個是http文件分發(fā)服務(wù)器,其中這兩個服務(wù)在內(nèi)部開啟的端口是:
- 網(wǎng)站服務(wù):82
- 文件服務(wù): 81
域名是:
liumou.site
所以在不配置代理的情況下,需要訪問的方法是:
- 網(wǎng)站服務(wù):http://liumou.site:82
- 文件服務(wù): http://liumou.site:81
可以看到,如果這樣子訪問的話,有著很不好的體驗,因為要加端口才能訪問,所以這時候就可以通過反向代理來實現(xiàn)不同的域名訪問不同的服務(wù),且訪問的端口都是80
3、開始配置
3.1、預(yù)設(shè)信息
為了更好的訪問體驗,我這邊設(shè)置了兩個域名記錄來訪問不同的服務(wù),如下
- http://www.liumou.site -> http://liumou.site:82
- http://file.liumou.site -> http://liumou.site:81
所有域名記錄均指向同一個服務(wù)IP
3.2、配置修改
編輯配置文件/etc/nginx/conf.d/defalut.conf
upstream file {server 127.0.0.1:81; } upstream www {server 127.0.0.1:82; }server {listen 80;server_name file.liumou.site;client_max_body_size 1024m;location / {proxy_pass http://file;proxy_set_header HOST $host;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;} }server {listen 80;listen [::]:80;server_name www.liumou.site;client_max_body_size 1024m;location / {proxy_pass https://www;proxy_set_header HOST $host;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;} } }參數(shù)解釋
- proxy_pass http://file; 設(shè)置需要訪問的最終服務(wù)器地址,其中file是上面的upstream函數(shù)定義的名稱
- server_name www.liumou.site; 設(shè)置請求的url地址,當匹配正確則應(yīng)用訪問規(guī)則
- server_name file.liumou.site; 設(shè)置請求的url地址,當匹配正確則應(yīng)用訪問規(guī)則
總結(jié)
以上是生活随笔為你收集整理的Nginx通过反向代理实现单端口访问多个服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 得到classpath和当前类的绝对路径
- 下一篇: Nginx基础配置