nginx中web和server两个配置文件,能合并使用一个server-name吗?

来源:12-10 nginx配置域名

crlccc

2024-04-12

尝试了一下,可以实现

server {

    listen 80;

    server_name 8.134.251.52;


    # 静态文件服务

    location / {

        root /www/wiki/dist;

        index index.html;

        try_files $uri $uri/ @proxy;  # 当文件不存在时,转发到"@proxy"标记的location

    }


    # WebSocket反向代理

    location /ws {

        proxy_pass http://localhost:8080;


        # 针对WebSocket,需要增加下面的配置

        proxy_redirect off;

        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection "upgrade";

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


        # 代理时长设置600秒,默认60秒,websocket超时会自动断开

        proxy_read_timeout 600s;

    }


    # 使用"@"标记的内部location,处理非WebSocket的反向代理请求

    location @proxy {

        proxy_pass http://localhost:8080;

        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_read_timeout 600s;

    }

}


写回答

2回答

crlccc

提问者

2024-04-12

server {

    listen 80;

    server_name 8.134.251.52;


    # 静态文件服务

    location / {

        root /www/wiki/dist;

        index index.html;

        try_files $uri $uri/ @proxy;  # 当文件不存在时,转发到"@proxy"标记的location

    }


    # WebSocket反向代理

    location /ws {

        proxy_pass http://localhost:8080;


        # 针对WebSocket,需要增加下面的配置

        proxy_redirect off;

        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection "upgrade";

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


        # 代理时长设置600秒,默认60秒,websocket超时会自动断开

        proxy_read_timeout 600s;

    }


    # 使用"@"标记的内部location,处理非WebSocket的反向代理请求

    location @proxy {

        proxy_pass http://localhost:8080;

        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_read_timeout 600s;

    }

}

可以使用

0
0

crlccc

提问者

2024-04-12

尝试了一下,可以使用

server {

    listen 80;

    server_name 8.134.251.52;


    # 静态文件服务

    location / {

        root /www/wiki/dist;

        index index.html;

        try_files $uri $uri/ @proxy;  # 当文件不存在时,转发到"@proxy"标记的location

    }


    # WebSocket反向代理

    location /ws {

        proxy_pass http://localhost:8080;


        # 针对WebSocket,需要增加下面的配置

        proxy_redirect off;

        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection "upgrade";

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


        # 代理时长设置600秒,默认60秒,websocket超时会自动断开

        proxy_read_timeout 600s;

    }


    # 使用"@"标记的内部location,处理非WebSocket的反向代理请求

    location @proxy {

        proxy_pass http://localhost:8080;

        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_read_timeout 600s;

    }

}


0
0

Spring Boot+Vue3前后端分离,实战wiki知识库系统

一课掌握前后端最火框架,更有职场竞争力

2524 学习 · 1671 问题

查看课程