Nginx实践: Nginx安装

Posted mengrennwpu

tags:

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

1. 安装

(1)  nginx下载地址:https://nginx.org/download/nginx-1.14.0.tar.gz

(2)  安装时可能出现依赖库不存在,比如prec包,可以使用yum install pcre pcre-devel进行安装。安装的整体命令如下:

cd /usr/local/src
# 下载
wget https://nginx.org/download/nginx-1.14.0.tar.gz
tar -zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
# 编译安装
./configure --prefix=/usr/local/nginx
make && make install  

2. 启动

(1) 安装后,进入/usr/local/nginx可以看到如下目录:

  a. conf: 配置文件

  b. html: 网页文件

  c. logs: 日志文件

  d. sbin: 主要二进制程序

  注意:启动时可能会遇到 nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 异常,表示80端口已被占用,原因可能是先前已经安装了nginx、apache等,更多情况是操作系统自带了apache并作为服务启动。解决方法是将占用80端口的软件或服务关闭即可。

3. Nginx信号控制

(1) Nginx控制信号选项如下: 

TERM, INT 快速关闭
QUIT 优雅关闭进程,即等待请求结束后再关闭
HUP 配置文件更改后,平滑地重读配置文件
USR1 重读日志,在日志按月/日分割时有用
USR2 平滑地升级
WINCH 优雅地关闭旧的进程(配合USR2来进行升级)

  具体命令格式:1) kill -信号选项 nginx的主进程号 或 2) kill -信号选项 `cat /your/path/log/nginx.pid`

  例:

  1) 快速关闭nginx:kill -INT `cat ./logs/nginx.pid`

  2) 平滑重读配置文件:

  a. 在nginx.conf中增加ab.html的配置(如下)

技术分享图片
server {
        listen       80;
        server_name  localhost;

    access_log  logs/host.access.log  main;

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

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }      
    }
View Code

 

  b. ab.html的内容如下:

技术分享图片
<html>
only test for HUP
<script>
     <!-- 链接赋值给自身,执行刷新操作 -->
     window.location.href = "/";
</script>
</html>
View Code  

  c. 访问localhost,使用kill -HUP `cat ./logs/nginx.pid`重读配置文件,等待几秒,即可看到页面信息从"Welcome to nginx!"转换为"only test for HUP"页面信息

  3) 重读日志:

  a. 查看2)中配置的host.access.log,如果使用mv host.access.log host.access.log.bak,可以发现日志仍然会向host.access.log.bak文件中记录,原因是linux的文件指向的是Inode文件标识符,名称的改变并不能改变inode信息。

  b. 使用kill -USR1 `cat ./logs/nginx.pid`,再访问localhost,即可发现日志不再向host.access.log.bak中写入,而向新建的host.access.log中写入

 4. Nginx配置

(1) Nginx配置段如下:

##### 全局区
# 有1个工作子
worker_processes 1; events { worker_connections 1024; } 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; keepalive_timeout 65; server { listen 80; server_name localhost; access_log logs/host.access.log main; location / { root html; index ab.html index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }

 



以上是关于Nginx实践: Nginx安装的主要内容,如果未能解决你的问题,请参考以下文章

Nginx概述,搭建,配置实践总结

Nginx 实践案例(yum安装方式):利用LNMP实现可道云盘

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

Linux下安装Nginx1.9.3-0303(本人亲手实践)

0551-期中集群架构nginx负载均衡实践

nginx优化实践于与验证