以:testproject.com为例(一般位置未:/data/nginx/conf/conf.d)
//注释版本,下面有清洁版本
upstream testproject { //配置主程序的负载均衡(以两台服务器未例)
server 172.1.1.1:10001 weight=4 max_fails=2 fail_timeout=30s;
server 172.1.1.2:10001 weight=4 max_fails=2 fail_timeout=30s;
}
upstream testproject_repFile { //文件服务,指向tomcat服务
server 172.1.1.3:10002;
}
upstream testproject_picFile {//图片服务,指向tomcat服务(我是文件和图片分开、可以放在一起)
server 172.1.1.4:10003;
}
upstream testprojectTwo { //调用其他服务的接口配置(其他服务以两台服务为例)
server 172.1.1.5:10004 weight=4 max_fails=2 fail_timeout=30s;
server 172.1.1.6:10004 weight=4 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
server_name testproject.sunshinelunch.com;
proxy_intercept_errors on;
location / { //前段代码,一般放在:/data/nginx这个目录,以静态资源的方式访问,保证域名可以直接访问到前端界面 ,访问方式:http://testproject.com
root /data/nginx/testproject_repFile/; //上面upstream配置
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ^~ /bdbiprocsrvtestproject/ { //配置主程序接口服务,域名访问被前端代码占用,所以此处【bdbiprocsrvtestproject】方式,接口访问:http://testproject.com/bdbiprocsrvtestproject/具体的接口路径
proxy_pass http://testproject/;//上面upstream配置
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_connect_timeout 30s;
proxy_send_timeout 150s;
proxy_read_timeout 150s;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_next_upstream error timeout invalid_header http_404 http_500 http_502 http_504;
}
location /repFile/ { //文件服务,访问方式http://testproject.com/repFile/具体的文件路径和名称
proxy_pass http://testproject_repFile/;//上面upstream配置
proxy_read_timeout 400;
proxy_next_upstream off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
client_max_body_size 10m;
}
location /picFile {
proxy_pass http://testproject_picFile;
proxy_read_timeout 400;
proxy_next_upstream off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
client_max_body_size 10m;
}
location /testprojecttwo/ { //访问其他服务的接口,又想用【testproject.com】访问,用此配置,此配置访问方式:http://testproject.com/testprojecttwo/appBdcUser/login(此接口为【testprojectTwo】项目上的接口)
proxy_pass http://testprojectTwo/; //上面upstream配置
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_connect_timeout 30s;
proxy_send_timeout 150s;
proxy_read_timeout 150s;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_next_upstream error timeout invalid_header http_404 http_500 http_502 http_504;
}
location /appBdcUser { //和上面不同的是,此接口访问是:http://testproject.com/appBdcUser/login 不用加【testprojecttwo】
proxy_pass http://testprojectTwo; //上面upstream配置
proxy_read_timeout 400;
proxy_next_upstream off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
client_max_body_size 10m;
}
}
//不加注释版本
upstream testproject {
server 172.1.1.1:10001 weight=4 max_fails=2 fail_timeout=30s;
server 172.1.1.2:10001 weight=4 max_fails=2 fail_timeout=30s;
}
upstream testproject_repFile {
server 172.1.1.3:10002;
}
upstream testproject_picFile {
server 172.1.1.4:10003;
}
upstream testprojectTwo {
server 172.1.1.5:10004 weight=4 max_fails=2 fail_timeout=30s;
server 172.1.1.6:10004 weight=4 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
server_name testproject.sunshinelunch.com;
proxy_intercept_errors on;
location ^~ /bdbiprocsrvtestproject/ {
proxy_pass http://testproject/;
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_connect_timeout 30s;
proxy_send_timeout 150s;
proxy_read_timeout 150s;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_next_upstream error timeout invalid_header http_404 http_500 http_502 http_504;
}
location / {
root /data/nginx/Testproject_ForeEndWeb/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /repFile/ {
proxy_pass http://testproject_repFile/;
proxy_read_timeout 400;
proxy_next_upstream off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
client_max_body_size 10m;
}
location /picFile {
proxy_pass http://testproject_picFile;
proxy_read_timeout 400;
proxy_next_upstream off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
client_max_body_size 10m;
}
location /bdbiprocsrvtfitbdcomc/ {
proxy_pass http://testprojectTwo/;
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_connect_timeout 30s;
proxy_send_timeout 150s;
proxy_read_timeout 150s;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_next_upstream error timeout invalid_header http_404 http_500 http_502 http_504;
}
location /appBdcUser {
proxy_pass http://testprojectTwo;
proxy_read_timeout 400;
proxy_next_upstream off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
client_max_body_size 10m;
}
}