关于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了。


实验-创建自己的网页

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(替换为你服务器的地址)
出现下面的结果就成功了。

只要将网页文件放入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
}

13-nginx的更多相关文章

  1. 13 Nginx访问日志分析

    #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin # Nginx 日志格式: # ...

  2. 13. nginx,lvs之一

    摘要: 1.详细描述常见nginx常用模块和模块的使用示例 2.简述Linux集群类型.系统扩展方式及调度方法 3.简述lvs四种集群有点及使用场景 4.描述LVS-NAT.LVS-DR的工作原理并实 ...

  3. 13 nginx gzip压缩提升网站速度

    一:nginx gzip压缩提升网站速度 我们观察news.163.com的头信息 请求: Accept-Encoding:gzip,deflate,sdch 响应: Content-Encoding ...

  4. 10.13 Nginx 负载均衡

    七层负载均衡server { listen 80; server_name localhost; location / { proxy_pass http://name; //调用集群 } } ups ...

  5. NGINX引入线程池 性能提升9倍

    1. 引言 正如我们所知,NGINX采用了异步.事件驱动的方法来处理连接.这种处理方式无需(像使用传统架构的服务器一样)为每个请求创建额外的专用进程或者线程,而是在一个工作进程中处理多个连接和请求.为 ...

  6. Nginx中文手册

    Nginx 常见应用技术指南[Nginx Tips] 第二版 作者:NetSeek http://www.linuxtone.org (IT运维专家网|集群架构|性能调优) 目 录 一. Nginx ...

  7. nginx应用总结(1)--基础认识和应用配置

    在linux系统下使用nginx作为web应用服务,用来提升网站访问速度的经验已五年多了,今天在此对nginx的使用做一简单总结. 一.nginx服务简介Nginx是一个高性能的HTTP和反向代理服务 ...

  8. nginx 平滑升级tengine

    wget  http://tengine.taobao.org/download/tengine-1.5.1.tar.gz //下载Tengine1.5.1版本 tar zxvf tengine-1. ...

  9. Mac 下 Nginx、MySQL、PHP-FPM 的安装配置

    用了3年多的本本罢工,最近新入手了一台 rmbp,一堆工作环境要配置,LNMP 里的 NMP 是常规要安装的,恰好也是第一次在 mac 上安装配置 nginx.mysql.php,所以顺便做个记录,免 ...

  10. centos python nginx uwsgi

    先更新系统,并安装编译环境等等. yum update yum install python python-devel libxml2 libxml2-devel python-setuptools ...

随机推荐

  1. dotnetCampus.UITest.WPF 一个支持中文用例的界面单元测试框架

    本文来安利大家一个支持使用中文做用例名的 WPF 界面 UI 单元测试框架 卖点 有没有觉得命名太难?有没有觉得单元测试的命名更难?没错,这是一个业界的大问题.很多团队都会因为单元测试的用例函数命名太 ...

  2. 通过Ingress-nginx实现灰度发布---灰度发布(22)

    1.通过Ingress-nginx实现灰度发布 场景一: 将新版本灰度给部分用户 假设线上运行了一套对外提供 7 层服务的 Service A 服务,后来开发了个新版本 Service A' 想 要上 ...

  3. Java面试题:SimpleDateFormat是线程安全的吗?使用时应该注意什么?

    在日常开发中,我们经常会用到时间,我们有很多办法在Java代码中获取时间.但是不同的方法获取到的时间的格式都不尽相同,这时候就需要一种格式化工具,把时间显示成我们需要的格式. 最常用的方法就是使用Si ...

  4. C++多态与虚拟:Objects 实例化(Objects Instantiation)探究

    一.Objects的创建 依据已有的class CPoint ,我们可以产生一个或多个object(对象),或者说是产生一个instance(实体): CPoint aPoint(7.2); // a ...

  5. Nginx 简单应用(Windows os)

    实际问题如下: 我的电脑上有vm虚拟机,我有两个网络,一个叫137,一个叫102 ,我现在vm的网络是102的网络(137不允许被vm使用),但是别人都是137的网络,如何让137的局域网访问我的vm ...

  6. Linux(一):Linux操作系统

    Linux(一):Linux操作系统 对于我们编程人员来讲,linux对于我们几乎已经是像windows对于普通用户一样,好像和同行交流说不会linux就像说不会用计算机一样羞耻.这里打算从头开始温故 ...

  7. 网络安全—部署CA证书服务器

    文章目录 网络拓扑 安装步骤 安装证书系统 安装从属证书服务器 申请与颁发 申请证书 CA颁发证书 使用windows Server 2003环境 网络拓扑 两台服务器在同一网段即可,即能够互相pin ...

  8. 【PB案例学习笔记】-01创建应用、窗口与控件

    写在前面 这是PB案例学习笔记系列文章的第一篇,也是最基础的一篇.后续文章中[创建程序基本框架]部分操作都跟这篇文章一样, 将不再重复.该系列文章是针对具有一定PB基础的读者,通过一个个由浅入深的编程 ...

  9. Java中CAS算法的集中体现:Atomic原子类库,你了解吗?

    一.写在开头 在前面的博文中我们学习了volatile关键字,知道了它可以保证有序性和可见性,但无法保障原子性,结局原子性问题推荐使用synchronized.Lock或者AtomicInteger: ...

  10. mews/captcha 验证码组件

    /** * 图像验证码 */ public function captcha(CaptchaBridge $captcha, $type = 'default') { $api_captcha = $ ...