nginx 反向代理
1、反向代理
nginx反向代理的指令不需要新增额外的模块,默认自带proxy\_pass指令,只需要修改配置文件就可以实现反向代理。
配置前的准备工作,后端跑项目的ip和端口,也就是说可以通过http://ip:port能访问到你的网站。
2、nginx配置
upstream test {
server ip:port; #部署项目的服&务器ip和端口
}
server {
listen 80;
server_name www.quancha.cn;
access_log logs/quancha.access.log main;
error_log logs/quancha.error.log;
root html;
index index.html index.htm index.php;
location / {
proxy_pass http://test;
#Proxy Settings
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;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
3、部署两个项目配置
upstream test1 {
server ip1:port;#部署项目的服&务器ip和端口
}
upstream test2 {
server ip2:port;#部署项目的服&务器ip和端口
}
server {
listen 80;
#access_log logs/host.access.log main;
location /test1 {
proxy_pass http://test1;
index index.html index.htm;
}
}
server {
listen 80;
#access_log logs/host.access.log main;
location /test2 {
proxy_pass http://test2;
index index.html index.htm;
}
}
4、nginx 之 proxy_pass详解
在nginx中配置proxy\_pass代理转发时,如果在proxy\_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。
假设下面四种情况分别用 http://192.168.1.1/proxy/test.html 进行访问。
4.1 去掉前缀
location /proxy/ {
proxy_pass http://192.168.1.1/;
}
访问URL:http://192.168.1.1/test.html
4.2 保留前缀
location /proxy/ {
proxy_pass http://192.168.1.1;
}
访问URL:http://192.168.1.1/proxy/test.html
4.3 替换为test前缀
location /proxy/ {
proxy_pass http://192.168.1.1/test/;
}
代理到URL:http://192.168.1.1/teset/test.html
4.4 加入test字符串
location /proxy/ {
proxy_pass http://192.168.1.1/test;
}
代理到URL:http://192.168.1.1/testtest.html
5、负载均衡
#后端服务
upstream back {
server 127.0.0.1:8090;
server 192.168.1.10:8090;
}
server {
listen 80;
server_name localhost;
# 后端服务
location /back/ {
proxy_pass http://back/;
}
}
还没有评论,来说两句吧...