内容简介:Mac 下安装1、安装 brew 命令2、安装 Nginx
Mac 下安装
1、安装 brew 命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2、安装 Nginx
brew install nginx
3、启动 Nginx
nginx
如果没有报错的话打开 http://localhost:8080 就可以看到效果了。
配置文件所在目录 /usr/local/etc/nginx/nginx.conf
安装文件所在目录 /usr/local/Cellar/nginx
Linux 下安装(本文后面的内容也主要是在 Centos 环境中演示)
先安装一些服务器要用到的东西
yum -y install gcc gcc-c++ autoconf pcre-devel make automake yum -y install wget httpd-tools vim
查看 yum 是否存在
yum list | grep nginx
如果存在会如以下图示
和官网的对比一下发现不是最新的,所以要增加 nginx 的 yum 源,输入以下命令新建
vim /etc/yum.repos.d/nginx.repo
并把以下内容粘贴进去
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1
因为我的是 centos 系统,版本是7.2,所以链接里面是 /centos/7,现在再运行一下检查命令就可以查看到最新 nginx 版本了
yum list | grep nginx
接着就是安装了
yum install nginx
安装完成后输入nginx -v查看版本号,如果显示版本就表示安装成功了
二、Nginx 配置文件解析
三、启动、停止、重启等常用操作
启动
1、直接使用 nginx
nginx
2、使用 systemctl 命令,这个是 Linux 的服务启动命令
systemctl start nginx.service
有没有启动成功呢?可以输入以下命令查看
ps aux | grep nginx
停止
1、立即停止服务。这种方法无论进程是否在运行,都直接停止进程。
nginx -s stop
2、立即停止服务。这种方法相对没那么强硬,需要在进程完成当前工作后再停止。
nginx -s quit
3、killall 直接杀死进程。如果上面的两个方法无效,可以试试这个。
killall nginx
4、systemctl 停止。这个和启动方法中第二条类似,都是使用 Linux 的服务命令。
systemctl stop nginx.service
重启
重启也是经常会用到的
systemctl restart nginx.service
重载配置文件
有时修改了配置文件可以不用重启,直接重载配置文件就可以了。
nginx -s reload
查看端口号
有时候需要查看哪些端口在运行,或者被占用了,可以使用 netstat 命令查看
netstat -tlnp
四、自定义错误页
自定义错误页
网站发生错误时一般会返回相应的状态码,比如500、502、503等等,或者404页面。那这些对应的返回页面在 Nginx 里怎么配置呢。
进入 /etc/nginx/conf.d 目录 打开 default.conf 配置文件就可以作相应的修改了
添加404页面配置,当然你还要在网站根目录创建一个404.html页面才行
其中 /404.html 也可以改成一个链接地址如: ( https://pojian.xyz)[https://pojian.xyz],这样当你访问为404状态时就会直接跳转到你配置的这个链接地址。
最后还需要你执行重载配置文件或者重启服务器,再访问相应的页面就会看到对应的效果页。
五、访问权限设置
指令优先级
打开配置文件
vi /etc/nginx/nginx.conf
在 location 里填写 deny 和 allow 配置信息,deny 和 allow 后面可以填写 ip 或者一个 ip 段,再或者 all,all 表示全部,比如这里我填写的是我本机的ip,allow 表示允许该 ip 的访问,接着重启 nginx
nginx -s quit nginx
上面的配置表示只允许 113.118.186.11 进行访问,其他的IP是禁止访问
如果上面的 allow 和 deny 位置互换一下呢?
deny all; allow 113.118.186.11;
这里你会发再所有 ip 都不能访问了,这就说明了配置对顺序是有要求的,同一个块下的两个权限指令,先出现的设置会覆盖后出现的设置。
其他访问控制权限匹配
有时权限控制会比上面的情况会多样一点,比如站点下的 images 文件是所有用户都可以访问的,而 admin 文件夹只有管理员才能访问,这时就需要 location 来配合实现了
六、配置虚拟主机
基于端口号
基于端口号配置多个虚拟主机,根据不同的端口号来访问不同的站点,原来就是监听端口号。
可以直接配置了主配置文件 etc/nginx/nginx.conf,也可以配在子配置文件目录下 etc/nginx/conf.d,这里拿配置在子文件做示例
etc/nginx/conf.d/default.conf 默认监听的是 80 端口,指向的目录是 /data/www
vim /etc/nginx/conf.d/default.conf
现在我们配置添加一个新的虚拟主机,监听 8081 端口
vim /etc/nginx/conf.d/8081.conf
8081.conf 具体配置如下,监听的端口为 8081 ,指向的目录是 /data/www/8081,和 80 端口指向的目录不一样
这里需要你自己去新建一个 8081 目录和 index.html 文件
mkdir /data/www/8081 vim /data/www/8081/index.html
最后访问 xxx.com 和 xxx.com:8081 会访问到不同的站点,当然前提是你的域名已经解析到你的服务器,要不然的话就只能通过 ip 访问了 xxx.xxx.xx.xx 和 xxx.xxx.xx.xx:8081 访问。
基于域名配置
基于域名配置,我这里先说一个前提,就是你的域名已经成功解析到服务器。
下面开始配置 nginx
/etc/nginx/conf.d/default.conf 配置文件监听的是 80 端口,指向目录是 /data/www,注意看 server_name 改成域名地址
接着我们来配置另外一个虚拟站点 /etc/nginx/conf.d/8081.conf,注意了 这里监听我端口也是 80 端口,不是其他的端口号,但 server_name 和 root 目录跟上面的不一样
这样当你访问 nginx.pojian.xyz 和 nginx2.pojian.xyz 时访问会是配置的不同的两个站点。
七、反向代理
正向代理
A同学在大众创业、万众创新的大时代背景下开启他的创业之路,目前他遇到的最大的一个问题就是启动资金,于是他决定去找马云爸爸借钱,可想而知,最后碰一鼻子灰回来了,情急之下,他想到一个办法,找关系开后门,经过一番消息打探,原来A同学的大学老师王老师是马云的同学,于是A同学找到王老师,托王老师帮忙去马云那借500万过来,当然最后事成了。不过马云并不知道这钱是A同学借的,马云是借给王老师的,最后由王老师转交给A同学。这里的王老师在这个过程中扮演了一个非常关键的角色,就是代理,也可以说是正向代理,王老师代替A同学办这件事,这个过程中,真正借钱的人是谁,马云是不知道的,这点非常关键。
我们常说的代理也就是只正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求,某些科学上网 工具 扮演的就是典型的正向代理角色。用浏览器访问 http://www.google.com 时,被残忍的block,于是你可以在国外搭建一台代理服务器,让代理帮我去请求google.com,代理把请求返回的相应结构再返回给我。
反向代理
大家都有过这样的经历,拨打10086客服电话,可能一个地区的10086客服有几个或者几十个,你永远都不需要关心在电话那头的是哪一个,叫什么,男的,还是女的,漂亮的还是帅气的,你都不关心,你关心的是你的问题能不能得到专业的解答,你只需要拨通了10086的总机号码,电话那头总会有人会回答你,只是有时慢有时快而已。那么这里的10086总机号码就是我们说的反向代理。客户不知道真正提供服务人的是谁。
反向代理隐藏了真实的服务端,当我们请求 www.baidu.com 的时候,就像拨打10086一样,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了, www.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去。Nginx就是性能非常好的反向代理服务器,具体访问哪台服务器Server是由Nginx来控制的,一般用来做负载均衡。
两者的区别在于代理的对象不一样: 正向代理代理的对象是客户端,反向代理代理的对象是服务端
最简单的反向代理
下面就说一个最简单的反向代理配置,先打开我们前面配置的 8081 端口虚拟站点配置文件
vim /etc/nginx/conf.d/8081.conf
原来的 root 和 index 不要了,换成一个 location 代理地址,看下图
这样当你访问 nginx2.pojian.xyz 的时候 nginx 会帮你反向代理到https://pojian.xyz 这个地址上去,proxy_pass 一般是填写 ip,但填写域名也可以。
其它一些较常用的反向代理指令
- proxy_set_header: 在将客户端请求发送给后端服务器之前,更改来自客户端的请求头信息。
- proxy_connect_timeout: 配置Nginx与后端代理服务器尝试建立连接的超时时间。
- proxy_read_timeout: 配置Nginx向后端服务器组发出read请求后,等待相应的超时时间。
- proxy_send_timeout: 配置Nginx向后端服务器组发出write请求后,等待相应的超时时间。
- proxy_redirect: 用于修改后端服务器返回的响应头中的Location和Refresh。
八、开启 Gzip 压缩
Nginx提供了专门的gzip模块,并且模块中的指令非常丰富。
- gzip : 该指令用于开启或 关闭gzip模块。
- gzip_buffers : 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。
- gzip_comp_level : gzip压缩比,压缩级别是1-9,1的压缩级别最低,9的压缩级别最高。压缩级别越高压缩率越大,压缩时间越长。
- gzip_disable : 可以通过该指令对一些特定的User-Agent不使用压缩功能。
- gzip_min_length:设置允许压缩的页面最小字节数,页面字节数从相应消息头的Content-length中进行获取。
- gzip_http_version:识别HTTP协议版本,其值可以是1.1.或1.0.
- gzip_proxied : 用于设置启用或禁用从代理服务器上收到相应内容gzip压缩。
- gzip_vary : 用于在响应消息头中添加Vary:Accept-Encoding,使代理服务器根据请求头中的Accept-Encoding识别是否启用gzip压缩。
最简单的配置
http { ..... gzip on; gzip_types text/plain application/javascript text/css; ..... }
以上所述就是小编给大家介绍的《Nginx 入门篇》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- TiDB入门(四):从入门到“跑路”
- MyBatis从入门到精通(一):MyBatis入门
- MyBatis从入门到精通(一):MyBatis入门
- Docker入门(一)用hello world入门docker
- 赵童鞋带你入门PHP(六) ThinkPHP框架入门
- 初学者入门 Golang 的学习型项目,go入门项目
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
马化腾自述-我的互联网思维
赵黎 / 石油工业出版社 / 2014-8-1 / 35
马化腾自述:我的互联网思维》讲述了些人说移动互联网就是加了“移动”两个字,互联网十几年了,移动互联网应该是个延伸。我的感受是,移动互联网远远不只是一个延伸,甚至是一个颠覆。互联网是一个开放交融、瞬息万变的大生态,企业作为互联网生态里面的物种,需要像自然界的生物一样,各个方面都具有与生态系统汇接、和谐、共生的特性。开放和分享并不是一个宣传口号,也不是一个简单的概念。开放很多时候被看作一种姿态,但是我......一起来看看 《马化腾自述-我的互联网思维》 这本书的介绍吧!