nginx:设置到不同服务器的特定路径

nginx:设置到不同服务器的特定路径,nginx,Nginx,我有一个来自我所在大学的域名,在那里我有一个正在运行的服务: server { listen 443 default_server ssl; server_name example.uni.com; keepalive_timeout 70; ssl_certificate xxx.crt; ssl_certificate_key xxx.key; location / {

我有一个来自我所在大学的域名,在那里我有一个正在运行的服务:

    server {
    listen              443 default_server ssl;
    server_name         example.uni.com;
    keepalive_timeout   70;

    ssl_certificate     xxx.crt;
    ssl_certificate_key xxx.key;


    location / {
        proxy_pass http://localhost:8081;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }


}

我想要实现的是,让
example.uni.com/specificaddress
指向运行在不同本地主机端口上的不同服务,而不必修改运行在8081上的服务(更好的是
specificaddress.example.uni.com
,但我相信我自己无法做到)。这怎么可能呢?不幸的是,创建另一台名为
server\u name
设置为
example.uni.com/specific address
的服务器并不容易(这并不奇怪,它是由运行在8081上的服务处理的)。

您可以添加一个新的位置块,并使用代理传递不同的端口

示例

location / {
        proxy_pass http://localhost:8081;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
}

location /specificaddress {
        proxy_pass http://localhost:8082;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
}

您可以添加一个新的位置块,并将代理传递到不同的端口

示例

location / {
        proxy_pass http://localhost:8081;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
}

location /specificaddress {
        proxy_pass http://localhost:8082;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
}