以: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;
}
}