Nginx通过反向代理实现单端口访问多个服务
生活随笔
收集整理的這篇文章主要介紹了
Nginx通过反向代理实现单端口访问多个服务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、什么是反向代理:
反向代理服務器架設在服務器端,通過緩沖經常被請求的頁面來緩解服務器的工作量,將客戶機請求轉發給內部網絡上的目標服務器;并將從服務器上得到的結果返回給Internet上請求連接的客戶端,此時代理服務器與目標主機一起對外表現為一個服務器。
2、舉個例子
假設服務器共有兩個服務,一個是網站服務,一個是http文件分發服務器,其中這兩個服務在內部開啟的端口是:
- 網站服務:82
- 文件服務: 81
域名是:
liumou.site
所以在不配置代理的情況下,需要訪問的方法是:
- 網站服務:http://liumou.site:82
- 文件服務: http://liumou.site:81
可以看到,如果這樣子訪問的話,有著很不好的體驗,因為要加端口才能訪問,所以這時候就可以通過反向代理來實現不同的域名訪問不同的服務,且訪問的端口都是80
3、開始配置
3.1、預設信息
為了更好的訪問體驗,我這邊設置了兩個域名記錄來訪問不同的服務,如下
- http://www.liumou.site -> http://liumou.site:82
- http://file.liumou.site -> http://liumou.site:81
所有域名記錄均指向同一個服務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;} } }參數解釋
- proxy_pass http://file; 設置需要訪問的最終服務器地址,其中file是上面的upstream函數定義的名稱
- server_name www.liumou.site; 設置請求的url地址,當匹配正確則應用訪問規則
- server_name file.liumou.site; 設置請求的url地址,當匹配正確則應用訪問規則
總結
以上是生活随笔為你收集整理的Nginx通过反向代理实现单端口访问多个服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 得到classpath和当前类的绝对路径
- 下一篇: Nginx基础配置