目录
一、认识配置文件
二、启动、停止、重启服务器
三、常用设置
系列教程
Nginx教程(初识篇)
一、认识配置文件
(1)使用包管理工具,查看nginx安装目录
rpm -ql nginx
(2)总配置文件
//文件路径
/etc/nginx/nginx.conf
//文件内容说明
#运行用户,默认即是nginx,可以不进行设置
user nginx;
#Nginx进程,一般设置为和CPU核数一样
worker_processes 1;
#错误日志存放目录
error_log /var/log/nginx/error.log warn;
#进程pid存放位置
pid /var/run/nginx.pid;
events {
worker_connections 1024; # 单个后台进程的最大并发数
}
http {
include /etc/nginx/mime.types; #文件扩展名与类型映射表
default_type application/octet-stream; #默认文件类型
#设置日志模式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; #nginx访问日志存放位置
sendfile on; #开启高效传输模式
#tcp_nopush on; #减少网络报文段的数量
keepalive_timeout 65; #保持连接的时间,也叫超时时间
#gzip on; #开启gzip压缩
include /etc/nginx/conf.d/*.conf; #包含的子配置项位置和文件
(3)子配置文件
//文件路径
/etc/nginx/conf.d/default.conf
//文件内容说明
server {
listen 80; #配置监听端口
server_name localhost; //配置域名
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html; #服务默认启动目录
index index.html index.htm; #默认访问文件
}
#error_page 404 /404.html; # 配置404页面
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html; #错误状态码的显示页面,配置后需要重启
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
二、启动、停止、重启服务器
1、启动
nginx //后续重启的话,只能通过强制删除进程,才能成功
//或者
systemctl start nginx.service
2、停止
//三选一
nginx -s quit //温和停止
nginx -s stop //强硬停止
killall nginx //野蛮停止,杀死进程
//或者
systemctl stop nginx.service
3、重启
systemctl restart nginx.service
4、查询nginx服务的运行情况
ps aux | grep nginx
PS:每次更改配置文件,都需要重启nginx服务。
三、常用设置
1、自定义错误页
error_page 状态码 错误页路径;
2、访问权限
//allow:允许ip访问
//deny:禁止ip访问
//all:所有ip
//使用all会覆盖后者控制的权限(如:deny all在前,allow xxx.xxx.xxx.xxx在后,表示禁止所有ip访问)
#根目录权限
location / {
allow xxx.xxx.xxx.xxx;
deny all;
}
#子目录权限
location =/img{
allow all;
}
location =/admin{
deny all;
}
#使用正则,控制.php文件访问权限
location ~\.php$ {
deny all;
}
3、增加虚拟主机
(1)在/etc/nginx/conf.d目录下,新建.conf文件
(2)配置端口号、ip、域名
//一般都使用域名,新建虚拟主机
listen 80; //端口号
server_name localhost; //ip或者域名
4、反向代理
(1)正向代理的概念
受益者是客户端。
科学上网工具就是一个典型的正向代理工具,它会把我们不让访问的服务器的网页请求,代理到一个可以访问该网站的代理服务器上来,一般叫做proxy服务器,再转发给客户。
(2)反向代理的概念
受益者是服务端。
反向代理跟代理正好相反(需要说明的是,现在基本所有的大型网站的页面都是用了反向代理),客户端发送的请求,想要访问server服务器上的内容。发送的内容被发送到代理服务器上,这个代理服务器再把请求发送到自己设置好的内部服务器上,而用户真实想获得的内容就在这些设置好的服务器上。
(3)反向代理的用途和好处
安全性:正向代理的客户端能够在隐藏自身信息的同时访问任意网站,这个给网络安全代理了极大的威胁。因此,我们必须把服务器保护起来,使用反向代理客户端用户只能通过外来网来访问代理服务器,并且用户并不知道自己访问的真实服务器是那一台,可以很好的提供安全保护。
功能性:反向代理的主要用途是为多个服务器提供负债均衡、缓存等功能。负载均衡就是一个网站的内容被部署在若干服务器上,可以把这些机子看成一个集群,那Nginx可以将接收到的客户端请求“均匀地”分配到这个集群中所有的服务器上,从而实现服务器压力的平均分配,也叫负载均衡。
(4)基本配置
server{
location / {
proxy_pass (ip 或者 域名);
}
}
(5)常用配置项
配置项 | 作用 |
---|---|
proxy_set_header | 在将客户端请求发送给后端服务器之前,更改来自客户端的请求头信息。 |
proxy_connect_timeout | 配置Nginx与后端代理服务器尝试建立连接的超时时间。 |
proxy_read_timeout | 配置Nginx向后端服务器组发出read请求后,等待相应的超时时间。 |
proxy_send_timeout | 配置Nginx向后端服务器组发出write请求后,等待相应的超时时间。 |
proxy_redirect | 用于修改后端服务器返回的响应头中的Location和Refresh。 |
5、双端适配(两套页面)
server{
location / {
root /usr/share/nginx/pc;
#这里只填写了部分的手机类型
if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry|)') {
root /usr/share/nginx/mobile;
}
index index.html;
}
}
6、gzip压缩
(1)定义
gzip是网页的一种网页压缩技术,经过gzip压缩后,页面大小可以变为原来的30%甚至更小。更小的网页会让用户浏览的体验更好,速度更快。gzip网页压缩的实现需要浏览器和服务器的支持。
(2)基本配置
http {
gzip on;
gzip_types text/plain application/javascript text/css;
}
(3)常用配置项
配置项 | 作用 |
---|---|
gzip | 该指令用于开启或 关闭gzip模块。 |
gzip_buffers | 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。 |
gzip_comp_level | zip压缩比,压缩级别是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压缩。 |