什么是 Nginx?
Nginx 的安装
- 服务器环境:
CentOS 7.0
- 准备工作
SSL
功能安装openssl
库:
yum install openssl
gzip
模块需要zlib
库:
yum install zlib
rewrite
模块安装pcre
库:
yum install pcre
- 安装 Nginx 依赖项和 Nginx
- 安装 Nginx 需要的库 [此处注意下载链接的有效性]
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
- 安装 Nginx:
yum install nginx
- 启动 Nginx:
service nginx start
- 测试 Nginx 的有效性:浏览器访问本地/服务器端口,如下表示安装成功:
- 服务器端注意开放 80 端口。
- 配置 Nginx 的文件位于:
/etc/nginx/
配置 Nginx
缺省配置:
http -> server -> location
,内层块自动继承外层块的内容。http
层次:/etc/nginx/nginx.conf
include
语句指明了下级配置文件的路径:当需要处理的server
超过 2 个时,建议将不同虚拟机的配置放在不同文件中,通过在主配置文件的include
指令进行选择。
http {
... ...
include /etc/nginx/conf.d/*.conf;
# include /etc/nginx/[name]/*.conf
}
server
层次:/etc/nginx/conf.d/default.conf
- 在
url/ip
层次对发送的请求进行后端服务器的转发; - 通过构建虚拟主机(server)的概念,用
server_name
对服务进行配置隔离; listen
用于确定监听的端口;- 对应于同一规则的多个域名可以使用空格进行分离。
server {
listen 80;
server_name demo.tdingquan.top;
access_log /var/log/nginx/host.access.log main;
... ...
}
location
层次:/etc/nginx/conf.d/default.conf
,包含在server
内
- 每个
url/ip
对应于一个服务,Nginx 对服务进行处理转发,转发路径通过location
指定; server
是对域名的指定,location
是对访问内容的指定;index
用于设定访问的默认首页地址;root
用于指定访问的根目录。
server {
... ...
location / {
root /root/BoxEViz;
index main.html index.html index.htm;
}
}
location
匹配规则:
~ 表示执行一个正则匹配,区分大小写;
~* 表示执行一个正则匹配,不区分大小写;
^~ 表示普通字符匹配
= 表示普通字符精确匹配
高级配置
- 服务转发
location / {
proxy_pass [url]:[port];
}
- 负载均衡
upstream myserver; {
ip_hash;
server 172.16.1.1:8001;
server 172.16.1.2:8002;
server 172.16.1.3;
server 172.16.1.4;
}
location / {
proxy_pass http://myserver;
}
Nginx 配置文件正确性验证
nginx -t
nginx -tc [config_file_address]
遇到的问题
- 访问主页时,控制台报错:”403”;查看日志:
open() "/data/www/1.txt" failed (13: Permission denied) ...
- 检查 Nginx 的启动用户:
/etc/nginx/nginx.conf
user root;