如何在自己的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
- 更新镜像源,apt拉取nginx
apt-get update && apt-get install nginx
- 用安装包来安装
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
- 进入安装目录编译安装
./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
- 运行
确保系统的 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相关命令
- 启动
sudo systemctl start nginx
- 停止
sudo systemctl stop nginx
- 重启
sudo systemctl restart nginx
- 查看运行状态
sudo systemctl status nginx
- 查看日志(日志位于
/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 {
...
}
}
四、日志配置
日志在一个系统中是非常重要的,它可以监控一个应用程序的活动,可以帮助排除和解决问题。
- 为什么要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;
...
...
}
}
- 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; ... }
- 查看Nginx日志
日志路径/var/log/nginx
查看日志
下面2种方法都可查看日志文件sudo cat /var/log/nginx/access.log sudo tail -f /var/log/nginx/error.log
- 查看Nginx日志