nginx从安装到配置

Posted july-1016

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx从安装到配置相关的知识,希望对你有一定的参考价值。

一、简介

官方网站为:http://nginx.org/ 。它是一款免费开源的高性能 HTTP 代理服务器及反向代理服务器(Reverse Proxy)产品,同时它还可以提供 IMAP/POP3 邮件代理服务等功能。它高并发性能很好,官方测试能够支撑 5 万的并发量;运行时内存和 CPU 占用率低,配置简单,容易上手,而且运行非常稳定。

二、常用功能

  ①、反向代理

  这是 nginx 服务器作为 WEB 服务器的主要功能之一,客户端向服务器发送请求时,会首先经过 Nginx 服务器,由服务器将请求分发到相应的 WEB 服务器。正向代理是代理客户端,而反向代理则是代理服务器,Nginx 在提供反向代理服务方面,通过使用正则表达式进行相关配置,采取不同的转发策略,配置相当灵活,而且在配置后端转发请求时,完全不用关心网络环境如何,可以指定任意的IP地址和端口号,或其他类型的连接、请求等。

  ②、负载均衡

  这也是 Nginx 最常用的功能之一,负载均衡,一方面是将单一的重负载分担到多个网络节点上做并行处理,每个节点处理结束后将结果汇总返回给用户,这样可以大幅度提高网络系统的处理能力;另一方面将大量的前端并发请求或数据流量分担到多个后端网络节点分别处理,这样可以有效减少前端用户等待相应的时间。而 Nginx 负载均衡都是属于后一方面,主要是对大量前端访问或流量进行分流,已保证前端用户访问效率,并可以减少后端服务器处理压力。

  ③、Web 缓存

  在很多优秀的网站中,Nginx 可以作为前置缓存服务器,它被用于缓存前端请求,从而提高 Web服务器的性能。Nginx 会对用户已经访问过的内容在服务器本地建立副本,这样在一段时间内再次访问该数据,就不需要通过 Nginx 服务器向后端发出请求。减轻网络拥堵,减小数据传输延时,提高用户访问速度。

三、安装(Linux)

Nginx 下载地址:http://nginx.org/en/download.html

1.首选安装Nginx环境
yum install gcc-c++ yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel
2.编译安装
将下载的 nginx-1.14.0.tar.gz 文件复制到 Linux 系统中,然后解压:tar -zxvf nginx-1.14.0.tar.gz
接着进入到解压之后的目录,进行编译安装:
./configure --prefix=/usr/local/nginx  (指定/usr/local/nginx 为nginx 服务安装的目录)
make
make install
3.启动Nginx
进入安装目录/usr/local/nginx/sbin,输入nginx,没有报错就是启动成功。
技术图片

输入如下命令,查看 nginx 是否有服务正在运行:ps -ef | grep nginx

 四、Nginx服务常用命令

关闭服务:
方式1:快速停止
1 cd /usr/local/nginx/sbin
2 ./nginx -s stop
此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。不太友好。

方式2:平缓停止
1 cd /usr/local/nginx/sbin
2 ./nginx -s quit
此方式是指允许 nginx 服务将当前正在处理的网络请求处理完成,但不在接收新的请求,之后关闭连接,停止工作。

重启服务:

方式1:先停止再启动
1 ./nginx -s quit
2 ./nginx
相当于先执行停止命令再执行启动命令。

方式2:重新加载配置文件
1 ./nginx -s reload
通常我们使用nginx修改最多的便是其配置文件 nginx.conf。修改之后想要让配置文件生效而不用重启 nginx,便可以使用此命令。

五.nginx.conf配置

默认的配置文件都放在这个目录的 conf 目录下,而主配置文件 nginx.conf 也在其中,后续对 nginx 的使用基本上都是对此配置文件进行相应的修改。

配置文件分为三部分:

1.全局块

从配置文件开始到 events 块之间的内容,主要会设置一些影响nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。

技术图片

2.events块

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。这部分的配置对 Nginx 的性能影响较大。

技术图片

 表示每个 work process 支持的最大连接数为 1024。

3.http块

Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。

需要注意的是:http 块也可以包括 http全局块server 块

server{} 包含在http{}内部,每一个server{}都是一个虚拟主机(站点),而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

http {
    include       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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
  #第一个代理服务  
    server {
        listen       80;//监听端口为80,可以自定义其他端口,也可以加上IP地址,如,listen 127.0.0.1:8080;
        server_name  localhost; //定义网站域名,可以写多个,用空格分隔。

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /acow/dist; //定义网站根目录,目录可以是相对路径也可以是绝对路径。
            index  index.html index.htm; //定义站点的默认页。
        }       
        location /api/ {
              #代理服务器地址
             proxy_pass  http://192.168.31.22:51163/;
              #  重写url路径-去掉/api/
             rewrite  "^/api/(.*)$" /$1 break;
         }
         location /file/ {
            alias /acow/data/;
            allow all;
            autoindex off;
        }
        
        #error_page  404   /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;//当状态码为500、502、503、504时,则访问50x.html
        location = /50x.html {
            root   html; //定义50x.html所在路径
        }
    }
    #第二个代理服务
    server {
        listen     8000;
        server_name  localhost;

        location / {
            alias /acow/data/;
            allow all;
            autoindex on;
         } 

    # HTTPS server
    #
    #server {
    #    listen       443 ssl; //监听443端口,即ssl
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

        }
}

 

原文:https://www.cnblogs.com/ysocean/p/9384877.html     https://www.cnblogs.com/wuzm/p/12703533.html


















以上是关于nginx从安装到配置的主要内容,如果未能解决你的问题,请参考以下文章

nginx从安装到配置

Nginx从搭建到配置支持HTTPS

nginx.conf 忽略了 nginx-ingress 配置映射片段

nginx.从路人到入门

linux学习:Nginx--常见功能配置片段与优化-06

Nginx——Nginx启动报错Job for nginx.service failed because the control process exited with error code(代码片段