Nginx的安装及配置

Posted 行走的阳光

tags:

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

1.概述

        nginx是开源免费的一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,使用nginx网站用户有很多,如百度、京东、新浪、网易、腾讯、淘宝等。

1.1Nginx的优点

         1.1.1可以高并发连接

         官方测试Nginx能够支撑5万并发连接,实际生产环境中可以支撑2~4万并发连接数。原因,主要是Nginx使用了最新的epoll(Linux2.6内核)网络I/O模型,而Apache使用的是传统的Select模型,其比较稳定的Prefork模式为多进程模式,需要经常派生子进程,所以消耗的CPU等服务器资源,要比Nginx高很多。

          1.1.2内存消耗少

          Nginx+php(FastCGI)服务器,在3万并发连接下,开启10个Nginx进程消耗150MB内存,15MB*10=150MB,开启的64个PHP-CGI进程消耗1280内存,20MB*64=1280MB,加上系统自身消耗的内存,总共消耗不到2GB的内存。、

          1.1.3成本低廉

          购买负载均衡交换机或相关的云负载均衡服务(SLB)都是要花费很高昂的费用的,而Nginx为开源软件,可以免费用,并且可用于商业用途。

           1.1.4配置文件非常简单

           1.1.5稳定性高

           1.1.6支持热部署

           1.1.7节省带宽

 

 2.安装nginx

        1.下载源码包

        2. 解压并进入解压目录

        3.配置

        4.编译和安装

wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar zxf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
make && make install

2.1目录介绍 

    安装成功后,进入到安装后的目录中

conf 配置文件   配置虚拟主机文件就在此
html 网页文件
logs 日志文件 sbin 主要二进制程序 启动服务命令就在此

2.2修改nginx运行系统用户  

       创建Nginx运行使用的用户nginx

useradd nginx

  修改nginx.cong配置文件

vi nginx.conf
// 用户  组
user nginx nginx;

2.3启动nginx

# 启动 nginx 服务  
/usr/local/nginx/sbin/nginx
注:启动时一定要确保80端口没有被占用
netstat -tunpl

/usr/local/nginx/sbin/nginx -s reload            # 重新载入配置文件
/usr/local/nginx/sbin/nginx -s stop              # 停止 Nginx

# 设置开机启动
vi /etc/rc.local
# 添加如下命令
/usr/local/nginx/sbin/nginx

2.5配置文件  

      配置文件默认认为安装目录中的conf/nginx.conf文件

 

配置文件语法:http段 => server段 => location段

http段:是要包含所有的Server段,即将nginx所有的虚拟主机配置包含进去
server段:一个server即一个虚拟主机配置段落,后期有多少个虚拟主机取决于server段
location段:每个location段即表示该虚拟主机中的一个模块功能配置

注:配置后面分号不能少,{} 和配置之间要有空格

 

2.6配置虚拟主机  

 

server {
    listen 80; # 端口
    server_name www.aa.com; # 域名
    root /var/www/html; # 根目录   绝对地址
    location / {
        index index.html;   # 默认缺省文件
    } 
}

 

3.支持php

   apache因为把php模块集于一身成为一个整体,任何请求访问(静态,动态)都是apache(httpd)自己搞定的, 而nginx仅仅是一个传递的角色。它可以处理静态(html,图片,js,css等),但php相关的就得由后面的php-fpm来处理   

 

# 搜索
yum search fpm|grep ^php
# 安装
yum install -y php71w-fpm.x86_64

# 启动
/usr/sbin/php-fpm
默认端口号为 9000

 

3.1配置nginx支持php

# server节点
location ~ \\.php$ {
    fastcgi_pass   127.0.0.1:9000;
    # 非必须 默认索引页
    #fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include         fastcgi_params;
}

4.开启gzip

      压缩文件大小变小了,传输更快了,提高网站的访问速度和并发量。目前市场上浏览器都是支持GZIP的。IE6以下支持不好,会出现乱码情况。

## http 节点中设置

# 开启gzip
gzip            on;
# 设置将被gzip压缩的响应的最小长度
gzip_min_length 200;
# 压缩级别 1-9
gzip_comp_level 6;
# 压缩在缓冲区块数和每块大小
gzip_buffers 32 4k;   # | 16 8k;
# 设置压缩响应所需的最低HTTP请求版本
gzip_http_version 1.0;
gzip_types      text/plain text/html text/css text/xml application/xml application/json application/javascript;

5.浏览器缓存

   告知浏览器获取的信息是在某个区间时间段是有效的。在有效期内,不需要到服务器重新获取了,提高访问速度,节省服务器带宽资源。

## 设置在 server 中的 location 节点
# expires 1s  秒 
# expires 2m  分
# expires 3h  时
# expires 6d  天
# ~*  不区分大小写
location ~* \\.(jpg|jpeg|gif|bmp|png|ico|svg|mp4|mp3){
    expires 7d; # 缓存1天
}
location ~* \\.(css|js){
    expires 1d; # 缓存1天
}

6.图片防盗链

   网站中的很多地方都是使用到了图片,如商城中商品中就使用了大量的图片,而为了不使自己辛辛苦苦拍摄的图片被别人调用,同时别人调用也会对服务器产生压力和流量费用,这时就需要防盗链的功能。

location ~* \\.(jpg|jpeg|gif|bmp|png|ico|svg|mp4|mp3)$ {
    valid_referers none blocked *.1314000.cn 1314000.cn;
    if ($invalid_referer) {
        return 403;
    }
}

 

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

Nginx安装及配置

Ubuntu16.04安装及配置nginx

Nginx的stub_status模块的作用及配置文件修改

Nginx配置文件详细介绍

Nginx的安装及配置详解

Nginx的安装及配置详解