13-nginx

关于nginx

nginx是提供http服务的中间件。
这里推荐学习nginx的博客:朱双印的博客


安装

  • nginx的版本
  1. 主线版本(Mainline version) #最新版,不稳定
  2. 稳定版本(Stable version)
  3. 历史版本(Legacy version)
  • 安装方式
  1. yum安装(方便简单)
  2. 源码安装(可以安装不同的模块)
  • yum安装的方式
yum -y install epel-release         #安装扩展软件源
yum -y install nginx
firewall-cmd --add-service=http     #临时放行http服务
firewall-cmd --add-service=http --per     #永久放行http服务

启动nginx

systemctl restart nginx             #启动nginx
systemctl enable nginx              #设置nginx开机启动

访问服务器:http://192.168.191.129(替换为你服务器的地址)

出现下面的结果,就成功启动nginx了。

UTOOLS1583656069442.png

实验-创建自己的网页

nginx网页的根目录:/usr/share/nginx/html/

cd /usr/share/nginx/html/
echo "<h1>Hello World</h1>" > index.html
systemctl restart nginx

访问服务器:http://192.168.191.129(替换为你服务器的地址)
出现下面的结果就成功了。

UTOOLS1583657665213.png

只要将网页文件放入nginx根目录,网页文件就能被访问了(注意权限)。


nginx的配置文件

配置文件的路径:/etc/nginx/nginx.conf

开启压缩
http {
    gzip on;        //开启压缩,压缩算法为gzip
}
监听地址
server {		#1个server代表一个http服务(可以设置多个server)
    listen 80;	#监听端口
    server_name  _;		#监听的域名
}
网站根目录
server {
    root /usr/share/nginx/html;
}
引入其他子配置文件

nginx的配置中,一个server块代表一个http服务。即可以有多个http服务。
为了方便配置,可以将不同的server设置不同的配置文件。这些配置文件放在/etc/nginx/conf.d/。

server {
    include /etc/nginx/conf.d/*.conf	#引入文件内容
}
设置错误页面

当服务器状态错误时,就需要返回错误页面,如状态码404,502。

server {		
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}
location

location用于匹配url。
nginx可以根据url去做不同的处理。比如,返回某个页面,代理到其他服务器。
比如,做动静分离,静态文件交给静态服务器处理,动态数据交给数据库查询的服务器处理。

  • 语法
location [=|~|~*|^~] /url { … }
  • 举例
location ~ ^/abc$ {     //匹配http://192.168.191.129/abc
	……
}
  • 匹配模式
空      #模糊匹配(location /test{}可以匹配目录下的目录:/test/test/test.html)
=       #精准匹配(location = /test{}不能匹配目录下的目录)
~       #指定的正则区分大小写
~*      #指定的正则不区分大小写
^~      #和“空”差不多,但优先级更高(比正则都高)
/       #通用匹配,任何请求都可以被匹配(但优先级最低)

如何使用正则表达式:

.*\.(css|js)$		#以.css或.js结尾

优先级:

(location `=` ) > (location `完整路径` ) > (location `^~` 路径) > (location `~`,`~*` 按定义顺序匹配) > (location 部分起始路径) > (`/`)

注意:

location / {}       #可以匹配所有项
  • 重定向
server {
    rewrite ^/test$ https://test.test.com permanent;	#/test重定向到test.test.com(永久重定向)
    rewrite ^(.*)$ https://www.test.com$1 permanent;	#(.*)匹配所有字符替换$1
}

posted @ 2020-03-08 17:29  NetRookieX  阅读(2)  评论(0编辑  收藏  举报