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

启动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 

再重新启动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常用操作命令以及请求转发)