资讯专栏INFORMATION COLUMN

Nginx 安装与配置规则入门

senntyou / 1252人阅读

摘要:即别名,与的匹配规则稍有不同。与的区别只能作用在中,而可以存在和中。后面必须要用结束,否则会找不到文件,而则对可有可无。

Nginx 安装与配置规则入门

nginx 安装与运行 (Mac OS环境)

nginx 规则配置入门

一些命令行的配置

一、nginx 安装与运行 (Mac OS环境) 1. 安装 nginx

可通过 Homebrew 可直接安装:

$brew install nginx

安装好后,默认首页的文件在 /usr/local/var/www 文件夹下

默认的配置文件地址在 /usr/local/etc/nginx/nginx.conf

nginx 默认用的 8080 端口,如果发现端口被占用了(通过 $lsof -i:8080查看端口占用情况),可以杀掉使用该端口的进程($kill 进程PID)。或者修改 nginx 的默认端口(/usr/local/etc/nginx/nginx.conf

2. 启动 nginx
$brew services start nginx

或者进入到目录 /usr/local/bin$./nginx

启动成功后,浏览器访问http://localhost:8080/,就可以看到 nginx 服务器返回的静态资源了(默认是资源/usr/local/var/www/index.html)

3. 停止 nginx
$nginx -s stop
4. 重启 nginx
$nginx -s reload
5. 查看 nginx 配置路径信息
$brew info nginx
二、nginx 规则配置

更多配置可查看

https://www.nginx.com/resourc...

http://nginx.org/en/docs/

http://www.nginx.cn/doc/

1. location

location 语法文章

2. root 与 alias

nginx 中可通过 root 和 alias 指定资源的访问路径。

1)root:

location / {
    root   /usr/local/var/www/;
    index  index.html index.htm;
}

上面这个规则:请求 http://localhost:8080/index.html 这个地址时,访问的资源是: /usr/local/var/www/index.html.

请求 http://localhost:8080/test/a.png 这个地址时,访问的资源是: /usr/local/var/www/test/a.png.

也就是说,访问的资源地址其实是 root 指定的路径 + location 匹配到的路径。

2)alias:

alias 即别名,与 root 的匹配规则稍有不同。

location /a/ {
    alias   /usr/local/var/www/b/;
}

上面这个规则:请求 http://localhost:8080/a/ 这个地址时,访问的资源是: /usr/local/var/www/b/index.html.

请求 http://localhost:8080/a/1.gif 这个地址时,访问的资源是: /usr/local/var/www/b/1.gif.

也就是说,访问的资源地址就是 alias 指定的路径,与 location 匹配到的路径无关(会把 location 匹配到的路径丢掉)。

3)root 与 alias 的区别:

alias 只能作用在 location 中,而 root 可以存在 server、http 和 location 中。

alias 后面必须要用 “/” 结束,否则会找不到文件,而 root 则对 “/” 可有可无。

3. try_file
location /test/ {
    try_files  $uri $uri/ /a/1.png;
}

try_files 去尝试到网站目录读取用户访问的文件,如果第一个变量存在,就直接返回;不存在则继续读取第二个变量,如果存在,直接返回;不存在则跳转到第三个参数上。

$uri 是 nginx 的一个变量,存放着用户访问的地址。比如访问http://www.xxx.com/index.html,$uri就是 /index.html.

$uri/ 代表访问的是一个目录,比如:http://www.xxx.com/hello/test/ ,那么$uri/ 就是 /hello/test/.

例如上面这条规则:请求 http://localhost:8080/test/2.png 这个地址时,try_files 会判断他是文件,还是一个目录,结果发现他是文件,与第一个参数 $uri 变量匹配。然后去到网站目录下去查找 test/2.png 文件是否存在,如果存在直接读取返回。如果不存在则跳转到第三个参数,即返回网站根目录 + /a/1.png 文件(/usr/local/var/www/a/1.png)。

更多用法:https://www.hi-linux.com/post...

4. rewrite

rewrite 语法

rewrite 功能就是实现 url 重写以及重定向。

语法rewrite regex replacement [flag];

rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用,例如 http://www.xxx.com/a/b/index.html?param=1&u=str 只对 /a/b/index.html 重写。

rewrite 的执行顺序:

执行server块的rewrite指令

执行location匹配

执行选定的location中的rewrite指令

flag 标志位:

last : 相当于Apache的[L]标记,表示完成rewrite

break : 停止执行当前虚拟主机的后续 rewrite 指令集

redirect : 返回302临时重定向,地址栏会显示跳转后的地址

permanent : 返回301永久重定向,地址栏会显示跳转后的地址

location  /home/ {
    rewrite  ^/home/test/ http://www.baidu.com;
}

上面这个规则:访问 http://localhost:8080/home/test/ 这个地址时,页面会重定向到 http://www.baidu.com。

一些小tips:

如何 nginx 重定向 url,但不改变浏览器中 url 的显示?

proxy_pass 可指定反向代理

更多用法:https://my.oschina.net/foreve...

三、一些命令行的配置(mac OS) 1. 如何在命令行用 vscode 打开文件
cd /usr/local/bin/
ln -s "/Applications/Visual Studio Code.app/Contents/MacOS/Electron" vscode

其中 /Applications/Visual Studio Code.app/Contents/MacOS/Electron 为 vscode 的可执行文件,ln -s 命令就是将其通过软连接的方式放到 /usr/local/bin/ 目录下。这样就可以在命令行的其他地方通过 vscode 命令打开文件了。

更多博客:
https://github.com/Lmagic16/blog

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40342.html

相关文章

  • Nginx 极简入门教程!

    上篇文章和大家聊了 Spring Session 实现 Session 共享的问题,有的小伙伴看了后表示对 Nginx 还是很懵,因此有了这篇文章,算是一个 Nginx 扫盲入门吧! 基本介绍 Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。 Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点开发...

    _DangJin 评论0 收藏0
  • nginx 基本入门

    摘要:是至今为止见过最好的入门文章。采取基于事件的模型和依赖的机制,在多个子进程之间高效的分配请求。默认情况下,这个配置文件通常命名为并且会放置在,,或者。 本文属于翻译文章,原文链接为 nginx Beginner’s Guide。是至今为止见过最好的 nginx 入门文章。额。。。没有之一。 这篇教程简单介绍了 nginx 并且讲解了一些 nginx 可以解决的简单任务。这里,我们假设 ...

    huayeluoliuhen 评论0 收藏0
  • Nginx 学习总结(3)—— Location 模块

    摘要:改为后,显示出文件的大概大小,单位是或者或者默认为,显示的文件时间为时间。 这是 Nginx 学习总结的第三篇,上一篇介绍到了 Nginx 学习总结(2) —— 基本配置,这一篇会对Location 模块 做一些总结。我们知道,Location 模块 主要是用于针对某些特定的 URL 进行配置,可以由前缀字符串定义,也可以由正则表达式定义。 Location 匹配规则 location...

    biaoxiaoduan 评论0 收藏0
  • 最简单的kubernetes HA安装方式-sealos详解

    摘要:集群三步安装概述本文教你如何用一条命令构建高可用集群且不依赖和,也无需。通过内核对进行负载均衡,并且带健康检测。当然你也可以把用于一些其它场景,比如代理自己的服务等 kubernetes集群三步安装 概述 本文教你如何用一条命令构建k8s高可用集群且不依赖haproxy和keepalived,也无需ansible。通过内核ipvs对apiserver进行负载均衡,并且带apiserve...

    spacewander 评论0 收藏0
  • thinkjs入门

    摘要:常见问题中间件执行是按照配置的排列顺序执行的,所以需要开发者考虑配置的顺序。数据校验方法配置好校验规则后,可以通过方法进行校验控制器项目中的需要继承类,这样能使用一些内置的方法。项目创建时会自动创建了一个名为的基类,其他继承该类即可。 安装thinkjs $ npm install -g think-cli 创建项目 $ thinkjs new demo;$ cd demo;$ npm...

    wing324 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<