美文网首页
nginx常用操作命令以及请求转发

nginx常用操作命令以及请求转发

作者: louhangfei | 来源:发表于2017-09-29 23:17 被阅读0次

    启动nginx

    nginx安装目录 -c nginx配置文件
    nginx安装目录在linux上可以用whereis nginx来查找,mac上不行。
    mac上可以直接执行 nginx -c nginx配置文件路径。通常配置文件路径 /usr/local/etc/nginx/nginx.conf

    示例

    nginx -c /usr/local/etc/nginx/nginx.conf
    

    注意有时候直接执行nginx会报错,提示命令不存在。
    这时候用whereis nginx找到nignx安装目录,然后写完整的nginx路径即可,后面再加-c /usr/local/etc/nginx/nginx.conf。但是这并非长久之计,应该要把该nginx加入环境变量,具体方法可百度之。


    关闭nginx

    如果nginx已经开启了,再次执行nginx -c 命令时,会报错。此时应先关闭nginx。
    先找到nginx相应端口的进程,比如8086

    lsof -i:8086
    

    会列出被占用8086端口的进程,找到对应的pid,

    kill <pid>
    

    再重新启动nginx,回到第一个问题。

    nginx -c  /usr/local/etc/nginx/nginx.conf
    

    重启nginx

    修改conf配置后,需要重启nginx。
    nginx -s reload


    nginx http请求转发

    情景:

    前后端分离的情况下,假如前端在http://localhost:4000,而后端接口在http://localhost:3000。如果前端直接调后端接口,会存在跨域问题。这时候可以通过nginx将前端的接口转发到后端接口上,可以完美地解决跨域问题。通常需要把前端的接口增加一个层级,比如api,以便在nginx上可以较好地管理不同请求的转发。

    示例:

    如果将http://localhost:4000/api/identity.json接口转发到http://localhost:30000/user/identity.json,写法如下:

    location /api/ {
      proxy_pass http://localhost:3000/user/;
    }
    

    注意:

    • lcoation后面的大括号不能有
    • proxy_pass末尾要有;

    相关文章

      网友评论

          本文标题:nginx常用操作命令以及请求转发

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