首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
Coding
V2EX  ›  NGINX

nginx 求助,这个反向代码如何写

  •  
  •   q414625852 · 82 天前 · 2347 次点击
    这是一个创建于 82 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有一个 node 站点,纯静态服务,是一些文档内容,解析 md 生成html: http://aaa.com:8888

    另外还有一个站点:http://bbb.com

    现在想把第一个站点链接通过http://bbb.com/doc形式访问,但是遇到一些问题,下面是我的 nginx 配置:

    # bbb 机器
    server {
    	listen 80;
        gzip on;
        location / {
            root /home/work/wwwserver;
        }
        location /doc/ {
            proxy_pass http://aaa.com:8888;
        }
    }
    

    主要问题如下:

    • 1、访问 bbb.com/doc 时,静态资源没有加载,静态资源返回的内容还是 aaa 站点的 html
    • 2、aaa.com:8888/readme.md 可以返回 html,但是这样修改后会发生 301 跳转

    网上搜了一些资料也没有解决,希望大家指点一下

    19 回复  |  直到 2019-09-23 14:04:54 +08:00
        1
    mikeguan   82 天前 via Android
    md 生成 html 的时候需要指定域名二级目录
        2
    rootww21   82 天前
    需要将 http://aaa.com:8888 站点修改为 http://aaa.com:8888/doc 这样的访问方式
    也就是需要一个前缀
    nginx 配置不动
        3
    ytlm   82 天前
    尝试将请求格式改成 bbb.com/doc/
        4
    ytlm   82 天前
    @ytlm #3 或者将 location /doc/ 改成 location /doc 请求格式不变,不行的话就把日志打开看看日志有没有什么异常的
        5
    q414625852   82 天前
    @ytlm 如果改成 /doc,则会出现下面情况:

    1、访问 bbb.com/doc,静态资源全部 404,日志的话就是静态资源访问不到 bbb.com/js/bundle.js (这个资源是相对路径./js/bundle.js )
    2、访问 bbb.com/doc/,静态资源 200,但返回的是当前的 html,没有错误日志
        6
    seers   82 天前
    /doc/ -> /doc
        7
    seers   82 天前
    加一个 proxy_redirect off 试试
        8
    q414625852   82 天前
    @seers 这样也不行,访问 bbb.com/doc/readme.md 的话,会出现 301 Moved Permanently
        9
    seers   82 天前
    你加了 server_name 吗,在 server block 里面
        10
    q414625852   82 天前
    或者简化为,有一个站点是 aaa.com:888,如果通过 bbb.com/doc 完全代理该站点,假设 aaa.com:8888 里的静态资源都是相对路径,使得访问 bbb.com/doc/dev/run.md 可以看到 aaa.com:888/dev/run.md 的内容
        11
    q414625852   82 天前
    @seers 问下这个 server_name 怎么写。。
        12
    txydhr   82 天前 via iPad
    头像
        13
    play78   82 天前
    这两个换一下顺序 /doc/ 放到上面
        14
    seers   82 天前
    server {
    listen 80;

    server_name bbb.com;

    ...


    location /doc {
    proxy_pass http://aaa.com:8888;
    }
    }
        15
    silenceeeee   82 天前
    # bbb 机器
    ```
    server {
    listen 80;
    gzip on;
    root /home/work/wwwserver;
    }
    location /doc/ {
    proxy_pass http://aaa.com:8888;
    }
    }
    ```
        16
    silenceeeee   82 天前
    @silenceeeee 算了,无视我吧.前面这一条回复触发了回复按钮快捷键,我修正了回复时,提示我包含外链,回复不了了:
    ```请不要在每一个回复中都包括外链,这看起来像是在 spamming```
        17
    lxlnbdywsxs   82 天前
    没太看明白,一个 Nginx 两个站点?
        18
    jerrodpoole   82 天前
    # bbb 机器
    server {
    listen 80;
    gzip on;
    location / {
    root /home/work/wwwserver;
    }
    location /doc/ {
    proxy_pass http://aaa.com:8888/;
    }
    }

    8888 后面加上 / (URI)
        19
    sazima   82 天前
    #18 正解
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   958 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 19:47 · PVG 03:47 · LAX 11:47 · JFK 14:47
    ♥ Do have faith in what you're doing.