Nginx 是一款高性能的 Web 服务器软件。可以作为反向代理、负载均衡与缓存服务器使用。Nginx 是为高并发网站的应用场景而设计的。在国内如百度、淘宝、腾讯、新浪、网易等网站都开始使用Nginx 来满足一些高并发访问的需求。
1.linux 安装 nginx
1.1 下载 nginx
[root@localhost opt]# wget https://nginx.org/download/nginx-1.14.0.tar.gz
1.2 解压
[root@localhost opt]# tar xvf nginx-1.14.0.tar.gz
1.3 源码安装
安装前,先安装 nginx 依赖包
pcre- deve l 为Nginx 模块(如rewrit e )提供正则表达式库
zl ib -dev el 为Nginx 模块(如gzip ) 提供数据压缩用的函数库
openss l <leve l 为Nginx 模块(如ssl 提供密码算法、证书以及SSL 协议等功能)
[root@localhost opt]# yum -y install pcre-devel openssl-devel
安装nginx
[root@localhost opt]# cd nginx-1.14.0/
[root@localhost nginx-1.14.0]# ./configure \
> --prefix=/opt/nginx \
> --with-http_ssl_module
[root@localhost nginx-1.14.0]# make && make install
2. nginx 基本操作
- nginx 启动停止
[root@localhost opt]# cd nginx/sbin 进行编译后的nginx 执行目录下
[root@localhost sbin]# ./nginx 启动 nginx
查看 nginx 是否启动成功
[root@localhost sbin]# ps aux|grep nginx
root 8069 0.0 0.0 45924 1124 ? Ss 15:11 0:00 nginx: master process ./nginx
nobody 8070 0.0 0.0 48456 1976 ? S 15:11 0:00 nginx: worker process
root 8092 0.0 0.0 112720 976 pts/0 R+ 15:12 0:00 grep --color=auto nginx
停止 nginx
[root@localhost sbin]# ./nginx -s stop
- 查看nginx 端口是否被占用
nginx 默认占用 80 端口
[root@localhost sbin]# netstat -tlnp
-
测试
注意关闭防火墙或者对 80 端口放行
测试 nginx - 添加软连接,在任意目录下执行 nginx 程序
[root@localhost sbin]# ln -s ./nginx /usr/local/sbin/nginx
3.nginx 基本配置 (nginx.conf 配置文件)
3.1 配置文件结构
配置文件结构是由 5 个块组成 如下图:
配置文件5部分组成
配置文件默认配置内容:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
-
worker_processes 指令
配置 nginx 工作进程数,一般为cpu 总核心数或者 总核心数的2倍 -
worker_connections 指令
配置一个工作进程并发处理的连接数 -
include 指令
引入配置文件 路径为nginx.conf 配置文件的相对路径。 eg:/opt/nginx/conf/mime.types -
default_type 指令
设置默认文件类型 -
sendfile 指令
默认的值为 on ,表示开启高效文件传输 -
keepalive_timeout 指令
设置长连接超时时间,秒为单位 -
listen 指令
设置监听端口,默认为 80 -
server_name 指令
设置主机域名 -
root 指令
设置主机站点的根目录地址 -
index 指令
设置默认索引文件 -
error_page 指令
设置自定义错误页面
3.2 访问控制
是对资源的访问权的控制
- 访问控制指令(allow deny)
allow : 允许访问权限
deny :禁止访问权限
以上两个指令值可以跟 ip地址 、 ip 段 、 all
注意:allow 、 deny 两种指令单个、或者混合、还是单个多次、混合多次出现时,优先级为里层块出现的优先级高于外层块出现的指令 或者 在同一块出现,后出现的指令可以覆盖前出现的指令。
-
访问控制指令窄化限定 配置使用 location 指令
location 指令前缀:
location 指令前缀
例子:
http {
...
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
# deny all; 拒绝请求,返回403
# allow all; 允许请求
}
location /abc {
deny all;
}
location ~ /.+\.jsp$ {
proxy_pass http://location:9090;
}
# 匹配所有/test路径下的jsp文件
location ~ /test/.+\.jsp$ {
proxy_pass http://localhost:8080;
}
# 定义各类错误页
error_page 404 /404.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# @类似于变量定义
# error_page 403 http://blog.csdn.net; #这种定义不允许,需求利用@定义临时变量来实现
error_page 403 @page403;
location @page403 {
proxy_pass http://blog.csdn.net;
}
}
}
4.虚拟主机
4.1 基于端口配置虚拟主机
#配置端口8001 端口号的虚拟主机
server {
listen 8001;
server name 192.168.1.188;
root html/html8001;
index index.html index.htm;
)
#配置端口8002 端口号的虚拟主机
server {
listen 8002;
server name 192.168.1.188;
root html/html8002;
index index . html index. htm;
)
4.2 基于ip配置虚拟主机
#配置ip为192.168.1.189 的虚拟主机
server {
listen 80;
server name 192.168.1.189;
root html/html8001;
index index.html index.htm;
)
#配置ip为192.168.1.190 的虚拟主机
server {
listen 80;
server name 192.168.1.190;
root html/html8002;
index index . html index. htm;
)
4.3 基于域名配置虚拟主机
#配置域名为www.cqzhangjian.cn 的虚拟主机
server {
listen 80;
server name www.cqzhangjian.cn;
root html/cqzhangjian.cn;
index index.html index.htm;
)
#配置域名为cqzhangjian.cn 的虚拟主机
server {
listen 80;
server name cqzhangjian.cn;
root html/cqzhangjian.cn;
index index . html index. htm;
)
4.4 设置目录列表
Nginx 提供的autoindex on 开启目录列表
Nginx 还提供的autoindex_ exac t size 指令设置精准
显示文件大小还是大概显示文件大小;通过autoindex_localtime 指令设置文件最后一次修
改时间的格式。默认情况下, autoindex exact_size 指令和autoind e x_localtime 指令的值分
别为on 和off
4.5 虚拟机主机配置文件引入
1.在 /usr / local/nginx/ conf 路径下创建vhost 目录,用于保存Nginx 服务器的虚拟主机配置文件。
2.为了便于管理,推荐使用站点域名为配置文件命名。例如,创建域名为www.cqzhangjian.cn的配置文件。
3.第1 种方式: 且在个文件引人 include vhost/www.cqzhangjian.cn;第2 种方式:利用通配符include vhost /*. conf;
网友评论