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) 收藏 举报