nginx实现不同域名映射到一个端口转发到不同路径

在一个服务器中,两个不同的域名pic.mydomain.com和www.mydomain.com访问80端口,转发到不同的地址。若通过ip访问,默认转发至pic.mydomain.com对应的地址。


    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  pic.mydomain.com;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {

            add_header backendIP $upstream_addr;
            add_header backendCode $upstream_status;
            proxy_pass http://mysvr;
            proxy_set_header Host myoss.oss-cn-shenzhen-internal.aliyuncs.com;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

    ## one port,mutil domain,access difference route
    server {
        listen 80;
        server_name www.mydomain.com;
        location / {
            proxy_pass http://localtomcatserver/mywebsite;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location /50x.html {
        }
    }

    upstream mysvr {
        server oss-cn-shenzhen-internal.aliyuncs.com;
    }

    upstream localtomcatserver {
        server localhost:8080;
    }

nginx是一种高性能的Web服务器,具有轻量级、高效、稳定等特点,广泛应用于Web服务器、反向代理、负载均衡、动静分离、静态文件缓存等场景。针对同一端口实现对应不同静态页,并转发的需求,可以通过nginx配置实现。 首先,在nginx配置文件中,需要定义一个server块,指定监听的端口号和域名。例如: ``` server { listen 80; server_name example.com; ... } ``` 接着,可以通过location块来指定不同的URL路径,并将其映射不同的静态文件。例如: ``` location / { root /var/www/html/default; index index.html; } location /blog { root /var/www/html/blog; index index.html; } location /images { alias /var/www/html/images; } ``` 在上面的配置中,第一个location块指定根路径的静态文件目录为/var/www/html/default,第二个location块指定/blog路径的静态文件目录为/var/www/html/blog,第三个location块指定/images路径的静态文件目录为/var/www/html/images,并利用alias指令来指定images路径的url映射。 最后,可以通过proxy_pass指令来实现转发。例如: ``` location /proxy { proxy_pass http://localhost:8080/; } ``` 在上面的配置中,当请求路径为/proxy时,nginx会将请求转发给本地的8080端口,实现转发的功能。 通过以上配置,可以实现同一端口下对应不同静态页,并转发的需求。同时,在nginx配置中,还可以配置缓存、反向代理等功能,以提高网站的性能和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值