16、nginx安装与配置

一、nginx介绍

1.概念:

Nginx,是一款轻量级的WEB服务器、反向代理服务器(包含负载均衡)、电子邮件(IMAP/POP3)代理服务器、缓存服务器。

2.特点:

其特点是占用内存少,并发能力强。支持epoll、kqueue模型。能够支持高达50000个并发连接数的响应。

3.功能:

4.模块:

5.架构

 

二、 安装nginx

 官网:nginx.org

# yum grouplist  #查看是否安装了开发环境需要的工具包
# yum groupinstall  "Development tools"
# yum install openssl openssl-devel
# yum install gd-devel

 安装的配置项:

 

# wget http://nginx.org/download/nginx-1.8.0.tar.gz
# tar -xvf nginx-1.8.0.tar.gz
# cd nginx-1.8.0

# 添加运行nginx服务的用户
# useradd nginx
# vim /etc/passwd
#修改nginx用户不能登录:nginx:501:501::/home/nginx:/sbin/nologin

# 创建日志目录 # mkdir /var/logs/nginx # .
/configure --help # 编译配置的帮助文档
# 1.使用默认配置。其实在 nginx-1.12.0 版本中你就不需要去配置相关东西,默认就可以了。
# ./configure
# 2.或者使用自定义配置。 当然,如果你要自己配置目录也是可以的。
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \ --pid-path=/usr/local/nginx/conf/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi \

--with-http_ssl_module \

-- with-http_realip_module \

--with-http_flv_module \
--with-http_image_filter_module \

--with-http_gunzip_module \
--with-http_gzip_static_module \

--with-http_stub_status_module

配置好以后,开始编译及安装 

# make   # 编译
# make install  # 安装

 

主程序目录: /usr/local/nginx

主程序文件: /usr/local/nginx/sbin/nginx

nginx主配置文件: /usr/local/nginx/conf/nginx.conf

 

三、启动、停止nginx

cd /usr/local/nginx/sbin/
./nginx  # 启动
./nginx -s stop  # 停止
./nginx -s quit  # 停止
./nginx -s reload  # 重新加载配置文件

  如果启动时报80端口被占用: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

 解决办法:

安装net-tool 包:yum install net-tools

./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

查看nginx进程:

ps aux|grep nginx

 四、开机自启动nginx

即在rc.local增加启动代码就可以了。

vi /etc/rc.local

增加一行 /usr/local/nginx/sbin/nginx

设置执行权限:chmod 755 rc.local

五、设置nginx为系统服务

六、主配置文件nginx.conf

默认启动nginx时,使用的配置文件是:安装路径/conf/nginx.conf

 

核心模块的配置段main:http://nginx.org/en/docs/ngx_core_module.html

http模块的文档:http://nginx.org/en/docs/http/ngx_http_core_module.htm

核心段main,主要配置nginx系统相关的,重点:user,worker_processes,pid,error_log,include

nginx.conf主要包括main段,事件段event,http协议段

# nginx.conf
user nginx;
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;  #绑定进程

error_log logs/error.log info;

pid logs/nginx.pid;

events {
    worker_connections 20480;  #每个进程可以接收的最大连接数
}    

http {  //协议级别
    include mime.types;
    default_type application/octet-stream;
    keepalive_timeout 65;
    gzip on;
  //日志格式可以统一定义在此,也可以每个server单独设置。abc是日志格式的名字,可以为任意名字。
  log_format abc ................
  access_log logs/access.log abc
  sendfile on;
  
  #server { //服务器级别
  #  local {//请求级别
  #    }
  #  }   #}   include server.conf;
}

 六、虚拟主机配置文件

同一主机IP,同一端口号,根据 server_nam不同,配置多个主机:

root用于定义文档根路径,当使用相对路径时,是相对于nginx的安装路径/usr/local/nginx

localtion配置:

 

路由匹配优先级:

=,精确匹配;

^~,开头匹配,不区分大小写

~,不区分大小写

~*,任意匹配,不区分大小写

deny,allow配置,用于允许或拒绝的访问控制。默认为allow all。

基于用户访问控制:

  • auth_basic “welcome ...."
  • auth_basic_user_file 文档以外的路径,如/usr/local/nginx/conf/vipuser
  • 使用相关工具,如httpasswd,对用户密码进行加密,然后放在vipuser文件中。如yourusername:$apr1$ypkiZNlW$ihI9VRczacdTHoA2Yf.6J.

七、status

 

八、重定向rewrite 

示例:

rewrite ^/shop/(.*\.html)$ /tuangou/$1 break;

 跨站跳转:

rewrite ^/shop/(.*\.php)$ http://www.baidu.com/tuangou/$1 redirect;

 

posted on 2019-03-11 21:41  myworldworld  阅读(164)  评论(0)    收藏  举报

导航