Nginx是個厲害的服務器,可以配置多個服務器,一個server就是一個服務器
server {
listen 80;
server_name *.yourdomain.com;
....
}
代理轉發是在server下面的location進行配置
server {
// 服務器配置
location / {
// ...... 代理配置
}
}
常見的Nginx代理配置
upstream my_server {
server 10.0.0.2:8080;
keepalive 2000;
}
server {
listen 80;
server_name 10.0.0.1;
client_max_body_size 1024M;
location /my/ {
proxy_pass http://my_server/;
proxy_set_header Host $host:$server_port;
}
}
通過該配置,訪問nginx地址http://10.0.0.1:80/my的請求會被轉發到my_server服務地址http://10.0.0.2:8080/
需要注意的是,如果按照如下配置:
upstream my_server {
server 10.0.0.2:8080;
keepalive 2000;
}
server {
listen 80;
server_name 10.0.0.1;
client_max_body_size 1024M;
location /my/ {
proxy_pass http://my_server;
proxy_set_header Host $host:$server_port;
}
}
那么,訪問nginx地址http://10.0.0.1:80/my的請求會被轉發到my_server服務地址http://10.0.0.2:8080/my。這是因為proxy_pass參數中如果不包含url的路徑,則會將location的pattern識別的路徑作為絕對路徑。
