# 一、初识 Nginx
# 概念
什么是 Nginx
- Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。
正向代理
- 比如翻墙,Vpn代理
- 由于防火墙的原因,我们并不能直接访问谷歌,那么我们可以借助VPN来实现,这就是一个简单的正向代理的例子。这里你能够发现,正向代理“代理”的是客户端,而且客户端是知道目标的,而目标是不知道客户端是通过VPN访问的。
反向代理
- 比如资源镜像
- 当我们在外网访问百度的时候,其实会进行一个转发,代理到内网去,这就是所谓的反向代理,即反向代理“代理”的是服务器端,而且这一个过程对于客户端而言是透明的。
# 二、安装 Nginx
# windows 环境下安装
1、下载 Nginx
下载地址 -
http://nginx.org
- 解压后如下图所示
# windows 中配置 Nginx
找到 conf 目录里的 nginx.conf 文件,配置Nginx
3.1 主要配置 Server
server 可以配置多个
举例:
http {
#静态文件
如此访问 http://static.com 即可访问到 D:/source
server {
listen 80;
server_name static.com;
location / {
root D:/source ;
}
}
#html文件
如此访问 127.0.0.1 或 localhost 即可访问 index.html index.htm
server {
listen 80;
server_name 127.0.0.1 localhost;
location / {
root D:/source ;
index index.html index.htm;
}
}
}
超市管理系统实例参数 server { listen 80; server_name sp.zixuan2018.cn; #charset utf8; #access_log logs/host.access.log main; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 三、常用命令
验证配置是否正确: nginx -t 查看Nginx的版本号: nginx -V 启动Nginx: start nginx 快速停止或关闭Nginx: nginx -s stop 正常停止或关闭Nginx: nginx -s quit 配置文件修改重装载命令: nginx -s reload 测试nginx配置文件是否正确: nginx -t -c /path/to/nginx.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20启动后如何检查是否启动成功呢?
输入命令
tasklist /fi "imagename eq nginx.exe
2
# 四、常见错误
# 1. 端口占用问题
- 我的配置文件里服务侦听的是 80 端口,由于机器上部署了IIS,80端口被默认站点占用,把站点关闭就可以了,这个问题在错误日志里记录是这样的。
2015/01/15 10:44:12 [emerg] 8800#5988: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
- 碰到类似的错误,请确认端口是否被占用或被防火墙屏蔽
# 2. Nginx所在目录有中文
- 错误日志大致输出一下内容
2015/01/15 11:55:55 [emerg] 5664#8528: CreateFile() "E:\软件\nginx-1.7.8/conf/nginx.conf" failed (1113: No mapping for the Unicode character exists in the target multi-byte code page)
# 3. 缺少nginx.pid文件
解决方法
使用命令或手动创建
/logs/nginx.pid
文件:nginx -c conf/nginx.conf
nginx: [error] CreateFile() "E:\nginx\nginx-1.9.3/logs/nginx.pid" failed nginx: [error] CreateFile() "E:\nginx\nginx-1.9.3/logs/nginx.pid" failed nginx: [error] Open() "E:\nginx\nginx-1.9.3/logs/nginx.pid" failed
1
2
3
4
5
# 4. 进程无效
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程
# 五、(推荐)宝塔使用 Nginx
对于前端开发人员来说,很多时候我们使用Nginx 仅仅是为了解决反向代理端口问题,比如写了一个node 项目,默认运行在localhost:3000,我们可以使用Nginx 实现域名绑定,直接访问域名及相当于内部访问localhost:3000。自己安装配置Nginx 太麻烦了,我们可以有更省力省心的方法
# 安装软件
安装宝塔,这里不做赘述,好几篇文章中提到了怎么安装。就跟安装软件一样的,实在不会百度一下
安装Nginx,在软件商店搜索安装,这里也不做赘述,安装好了就会有这个面板菜单
如果的确安装了,但是首页面板没显示需要打开首页展示选项
# 可视化使用
# 全局使用
可以在首页面板中点击修改配置,这里修改的是全局配置
# 站点配置
在对应的站点上也能对站点进行配置,建议在这里修改较为妥当
如果不了解配置规则,则可以按下面操作设置添加反向代理
如果是node项目,建议可以使用PM2管理器
来部署项目