DevOps/SRE

Nginx教程(入门篇)

2019-06-16  本文已影响0人  简栋梁

目录
一、认识配置文件
二、启动、停止、重启服务器
三、常用设置

系列教程
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压缩。
上一篇下一篇

猜你喜欢

热点阅读