什么是反向代理?
- 代理:通過客戶機的配置,實現讓一台服務器代理客戶機,客戶的所有請求都交給代理服務器處理。
- 反向代理:用一台服務器,代理真實服務器,用戶訪問時,不再是訪問真實服務器,而是代理服務器。
nginx可以當做反向代理服務器來使用:
- 我們需要提前在nginx中配置好反向代理的規則,不同的請求,交給不同的真實服務器處理
- 當請求到達nginx,nginx會根據已經定義的規則進行請求的轉發,從而實現路由功能
實現步驟如下
1. 配置本地host文件
win7路徑:C:\Windows\System32\drivers\etc
添加如下配置
127.0.0.1 manage.leyou.com
127.0.0.1 api.leyou.com
127.0.0.1 www.leyou.com
127.0.0.1 image.leyou.com
注意檢查host文件是否真實寫入
2. 配置nginx.conf
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name manage.leyou.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://127.0.0.1:9001;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
server {
listen 80;
server_name api.leyou.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://127.0.0.1:10010;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
}
重啟nginx
實現效果如下圖
可見已經實現通過nginx反向域名代理實現本地多域名80端口啟動