Ubuntu服务器上快速的使用Nginx

如何在自己的Ubuntu服务器上快速的使用Nginx 官方文档是这么介绍Nginx的 Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其

如何在自己的Ubuntu服务器上快速的使用Nginx

官方文档是这么介绍Nginx的

Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性

  • 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型.
  • 作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。
  • 作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。

说明Nginx分为

一、安装Nginx

  1. 更新镜像源,apt拉取nginx
    apt-get update && apt-get install nginx
  2. 用安装包来安装
    cd /usr/local/src
    wget http://nginx.org/download/nginx-1.4.2.tar.gz
    tar -zxvf nginx-1.4.2.tar.gz
    cd nginx-1.4.2
    
  3. 进入安装目录编译安装
  ./configure --sbin-path=/usr/local/nginx/nginx \
  --conf-path=/usr/local/nginx/nginx.conf \
  --pid-path=/usr/local/nginx/nginx.pid \
  --with-http_ssl_module \
  --with-pcre=/usr/local/src/pcre-8.34 \
  --with-zlib=/usr/local/src/zlib-1.2.8 \
  --with-openssl=/usr/local/src/openssl-1.0.1c

  make
  make install
  1. 运行
    确保系统的 80 端口没被其他程序占用,运行/usr/local/nginx/nginx 命令来启动 Nginx
    netstat -ano | grep 80
    如果被占用
    kill -9 nginx主进程号
    查看全部运行端口
    netstat -ntlp
    运行nginx
sudo /usr/local/nginx/nginx   #1.进入文件运行

sudo systemctl start nginx    #2.用systemctl管理运行

访问此机器ip地址,出现Welcome to nginx! 则表示 Nginx 已经安装并运行成功。

二、管理nginx相关命令

  1. 启动
    sudo systemctl start nginx
  2. 停止
    sudo systemctl stop nginx
  3. 重启
    sudo systemctl restart nginx
  4. 查看运行状态
    sudo systemctl status nginx
  5. 查看日志(日志位于/var/log/nginx/)
    sudo tail -f /var/log/nginx/error.log

三、nginx配置

Nginx的配置文件位于/etc/nginx目录下,其中最主要的配置文件是nginx.conf,需要了解更多块可以参考官方文档(点击跳转)

博客园大佬梳理详解[点击跳转](https://www.cnblogs.com/54chensongxia/p/12938929.html)

#全局块
#user  nobody;
worker_processes  1;

#event块
events {
    worker_connections  1024;
}

#http块
http {
    #http全局块
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    #server块
    server {
        #server全局块
        listen       8000;
        server_name  localhost;
        #location块
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    #这边可以有多个server块
    server {
      ...
    }
}

四、日志配置

日志在一个系统中是非常重要的,它可以监控一个应用程序的活动,可以帮助排除和解决问题。

  1. 为什么要Nginx日志
    所有与网站访问者有关的活动都记录在访问日志中。在这种日志中,你可以找到最近访问过的文件,Nginx是如何响应客户端请求的,客户端的IP地址,客户端使用的是什么浏览器等等。通过使用访问日志的信息,你可以监控流量,找到网站在一段时间内的使用情况。如果你正确地监控访问日志,那么你可以很容易地发现一些由用户发送的异常请求,从而检查部署的应用程序的缺陷。
    2.Nginx日志如何启用
    在服务器部分或HTTP中使用access_log指令启用访问日志,access_log配置,此指令可以在http块、server块或者location块中进行设置,这里的日志与全局块中的errer_log指令不同,这里的日志是指Nginx服务器提供服务过程应答前端请求的日志
    access_log path [format [buffer=size]] ;
    path是日志的存放路径必填字段,后面format日志格式不填为默认的组合格式键入日志
    如果你要关闭access_log,你可以使用下面的命令
    access_log off
    默认情况下,访问日志是在Nginx配置文件中定义的。因此,所有虚拟主机的访问日志将存储在同一配置文件中。
http {
      ...
      access_log  /var/log/nginx/access.log;
      ...
}

通过记录到新的单独文件中来分开所有虚拟主机的访问日志,从而准确定位问题地点。

http {
      ...
      ...
      access_log  /var/log/nginx/access.log;
   
         server {
                  listen 80;
                  Server_name example.com
                  access_log  /var/log/nginx/example.access.log;
                  ...
                  ...
                }
}
  1. Nginx错误日志
    如果NGINX突然停止运行或无法正常工作,它将在错误日志中记录所有事件。因此,使用错误日志,您可以找到更多详细信息。
    指定错误日志的路径和日志级别,此指令可以在全局块、http块、server块以及location块中配置
    error_log指令的以下语法:
    error_log [path] [debug | info | notice | warn | error | crit | alert | emerg]
    第一个参数表示日志文件路径,第二个参数标识日志事件的安全级别,其中debug级别的日志需要编译时使用--with-debug开启debug开关
    http {
        ...
        ...
        error_log  /var/log/nginx/error_log;
        server {
                 listen 80;
                 server_name example1.com;
                     error_log  /var/log/nginx/example1.error_log  warn;
                         ...
        }
        server {
                 listen 80;
                 server_name example2.com;
                     error_log  /var/log/nginx/example2.error_log  debug;
                         ...
    }
    
    
    1. 查看Nginx日志
      日志路径/var/log/nginx查看日志
      下面2种方法都可查看日志文件
      sudo cat /var/log/nginx/access.log
      sudo tail -f /var/log/nginx/error.log
      
Comment