nginx入门

Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%。与Apache相比,Nginx在高并发情况下具有巨大的性能优势。
Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩展性。Nginx最初仅仅主要被用于做反向代理,后来随着HTTP核心的成熟和各种HTTP扩展模块的丰富,Nginx越来越多被用来取代Apache而单独承担HTTP Server的责任。

nginx 1.10.2稳定版

功能:用于生产环境

可以实现目录转发和反向代理

启动 nginx (在windows命令行中)

1
输入localhost 可以看到页面

停止 nginx -s stop

celler nginx 安装文件夹

etc nginx 配置文件夹

nginx.conf文件

1
2
3
4
5
6
7
server{
listen 端口号;//设置默认端口号
location /{ //配置关键字 斜杠就是浏览器中的斜杠
root html;//html没写路径相当于nginx的安装目录

}
}

在nginx下创建一个文件夹conf.d //如果本地不配置server 会读这个文件夹

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
在nginx.conf文件中 include  写路径 /user/local/etc/nginx/conf.d/*.conf; //不加分号会报错
新建一个文件 hello.conf 配置该文件 可以实现目录转发
server{
listen 80;//默认端口号
server_name hello.dev;//配置域名 可以用空格隔开写多个
location /{ // "/"表示根目录
root 路径;//后面加空格加要设置的根目录的路径
index index.html index.htm; //目录下没有index可能出会403 权限问题也肯能出现
}
//可以配置多个
location /v2{ //域名/v2这样访问
root '';
index index_v2.html;//
}
//也可以在location中写正则 / /不用写
//打开一张图片
location \.(jpg|gif|png)${
expires 30d;//过期时间
}
}
//如果被禁止可以在nginx.conf中设置权限 user root owner; //第一行
//配置host后 可以直接访问域名 一个IP可以对应多个域名 通用DNS 202.106.0.20用来解析域名

nginx -s reload 重启配置信息

配置默认服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
	在conf.d中创建default.conf
server{
listen 端口号 default_server;//创建默认服务器 如果在nginx中不显示配置域名 会进入这个
server_name localhost;
location /{
root html;
index index.html index.html;
}
}
```
### 反向代理 可以用来跨域
```js
location /api{
proxy_pass http://api.hello.dev //配置代理
}
新建api.conf
server{
listen 端口;
server_name api.hello.dev;
//不加location 默认找root 如果location里面不写root 默认走公共root
root '';
index list.json
}

mac系统下安装

先安装homebrew //管理mac上软件的一个工具

1
命令行执行 (ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装nginx

1
homebrew install nginx