美文网首页
nginx 常见问题总结

nginx 常见问题总结

作者: _大叔_ | 来源:发表于2019-12-19 13:38 被阅读0次

    nginx 允许访问其他目录下的文件

            location /log/ {
                add_header Content-Type "text/plain;charset=UTF-8";
                # 被访问日志 5s 会刷新一次,建议谷浏览器看日志,其他浏览器看日志 怕 刷新后会回到顶部
                add_header Refresh 5;
                alias /usr/local/dev/logs/;
            }
    

    alias 指定的路径是 location 的别名,不管 location 的值怎么写,资源的 真实路径都是 alias 指定的路径

    nginx location 中 proxy_pass 末尾带/ 和 不带/

    今天在配置nginx中遇到一个问题,想要让前端以如下方式访问

    # 想让前端访问的url
    http://ip:port/api/hyq/user/login
    # nginx 配置
    location /api/hyq/ {
        proxy_pass   http://127.0.0.1:8302;
        access_log  logs/hyq.log  main;
    }
    

    理想的是想让 内部代理到 http://127.0.0.1:8302/user/login
    实际代理到了 http://127.0.0.1:8302/api/hyq/user/login

    我在项目中打印出地址截取到的是

    api/hyq/user/login
    

    于是看到了一篇博客可以如下方式配置nginx

    location /api/hyq/ {
        proxy_pass   http://127.0.0.1:8302/;
        access_log  logs/hyq.log  main;
    }
    

    ok 搞定。
    也就是说 proxy_pass 路径后不带 /,会连带location所匹配到的路径一起访问 ( http://127.0.0.1:8302/api/hyq/user/login ),带 / 则会忽略location所匹配的路径访问 ( http://127.0.0.1:8302/user/login )。

    上一张解决问题的图,感谢大佬分享

    nginx http 转 https post请求变成get

    http 跳转

        server {
            listen 80;
            server_name www.xxxxxx.cn xxxxxx.cn;   
            return 307 https://$host$request_uri;
        }
    
    把 rewrite ^(.*) https://$server_name$1 permanent; 这句换掉
    换成 return 307 https://$host$request_uri; 这句话就可以解决
    

    nginx 启动80端口可以telnet通,却不显示页面

    今天意外的情况,导致服务器重启,重启后启动nginx访问页面的时候,页面一直在load。
    查了很多原因,发现 nginx 里得 error.log 一直输出如下:

    2021/01/29 18:18:23 [alert] 1606#0: worker process 1852 exited on signal 11
    ngx_http_fastdfs_process_init pid=1853
    

    网上找到的解决办法输入如下:

    /etc/init.d/fdfs_storaged start
    /etc/init.d/fdfs_trackerd start
    

    就是把 fdfs 相关服务进行启动。

    相关文章

      网友评论

          本文标题:nginx 常见问题总结

          本文链接:https://www.haomeiwen.com/subject/siumnctx.html