nginx配置同一个端口转发多个项目

nginx一般都是一个转发多个项目,所以需要学会配置这个

方式一:

配置多个server 监听端口,这种方法会占用好多个端口

方式二:

  • 配置静态资源rootalias
  • 配置不同前端静态资源访问不同后端,这里是用 # proxy_pass “http://ip:port/” 结尾的"/“,带上和不带是两种效果,去掉”/“,那么路径将接上location 正则匹配的路径,带上”/",就不会加上。

配置文件

#user  nobody;
worker_processes  8;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  2048;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    proxy_intercept_errors on;
    #tomcat未启动时
    fastcgi_intercept_errors on;

    sendfile        on;
    keepalive_timeout  65;
#   实例一的ip端口配置
    upstream testStream01 {
       server 127.0.0.1:8090;
    }
#   实例二的ip端口配置
    upstream testStream02 {
       server 127.0.0.1:8091;
    }

    server {
        listen       8080;
        server_name  localhost;
		#gzip on;
		#gzip_http_version 1.1;
		#gzip_comp_level 9;
		#gzip_vary on;
		#gzip_types text/plain application/json application/x-javascript application/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png image/x-ms-bmp;

        location / {
            root   /usr/share/nginx/html/test;
            index  login.html index.htm;
        }
#         实例一的前端页面,主要root 要换成alias
        location /project01 {
#         多个前端项目,需要使用alias
            alias   /usr/share/nginx/html/project01;
            index  login.html index.htm;
        }
#         实例二的前端页面
        location /project02 {
            alias   /usr/share/nginx/html/project02;
            index  login.html index.htm;
        }
#         开放静态资源
#          location  ^/project01/.*\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt)$
#           {
#               alias /usr/share/nginx/html/project01/;
#               proxy_temp_path /usr/share/nginx/html/project01/;
#           }
#        前端请求后端的地址,将会= ip:port/project01 ,所以这里要去掉project01,
#         实例一的后端配置,主要看proxy_pass
		 location  /project01/testServer {

			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Host $http_host;

			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection "upgrade";
			proxy_read_timeout 3600s;
			# proxy_pass "http://testStream01/" 结尾的"/",带上和不带是两种效果,去掉"/",那么路径将接上正则匹配的"/project01/testServer",带上"/",就不会加上。
            proxy_pass  http://testStream01/testServer;
# 			rewrite ^/project01/testServer(.*)$ /testStream01/$1 last;
        }
#         实例二的后端配置,主要看proxy_pass
		location  /project02/testServer {

			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Host $http_host;

			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection "upgrade";
			proxy_read_timeout 3600s;
            proxy_pass  http://testStream02/testServer;
        }

    }


}


猜你喜欢

转载自blog.csdn.net/blood_Z/article/details/127792055