Nginx是什么?
Nginx是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,Nginx 1.0.4发布。
Nginx优点:
(1)高性能
在正常情况下,单次请求会得到更快的响应;
在高峰期(如有数以万计的并发请求),Nginx可以比其他Web服务器更快地响应请求。
(2)高扩展性,跨平台
(3)稳定性高:用于反向代理,宕机的概率微乎其微
(4)低内存消耗
一般情况下,10 000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是Nginx支持高并发连接的基础。
(5)单机支持10万以上的并发连接
Nginx 相对于 Apache 优点如下:
apache相对于Nginx的优点:
Nginx作单纯的WEB服务器,也就是放静态内容,性能上比Apache要好,特别可承受压力、带宽及资源消耗上都要优于Apache。 很多大型网站都喜欢把Nginx放在前端,Apache作为后端。二、编译安装Nginx服务的操作步骤
1.环境准备
systemctl stop firewalld
setenforce 0
2.安装依赖包
yum install -y pcre-devel zlib-devel gcc gcc-c++ make
3.创建运行用户
useradd -M -s /sbin/nologin Nginx
4.编译安装Nginx
cd /opt
tar zxvf Nginx-1.12.0.tar.gz
cd Nginx-1.12.0/
./configure \
--prefix=/usr/local/Nginx \ #指定安装路径
--group=Nginx \ #指定组名
--with-http_stub_status_module
make && make install -j4
5.路径优化
ln -s /usr/local/Nginx/sbin/Nginx /usr/local/sbin
vim /lib/systemd/system/Nginx.service
[Unit]
Description=Nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/Nginx/logs/Nginx.pid
ExecStart=/usr/local/Nginx/sbin/Nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
chmod 754 /lib/systemd/ system/Nginx.service
systemctl enable Nginx.service
三、配置文件了解
1.主配置文件
vim /usr/local/Nginx/conf/Nginx.conf
全局配置:
user Nginx Nginx; #Nginx用户及组:用户 组。window下不指定
worker_processes 1; #工作进程:数目
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info; #错误日志:存放路径。
pid logs/Nginx.pid; #pid(进程标识符):存放路径。
worker_rlimit_nofile 204800; #指定进程可以打开的最大描述符:数目。
这个指令是指当一个Nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与Nginx进程数相除,但是Nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。
I/O事件配置:
events {
use epoll; #使用epoll模型
worker_connections 4096; #每个进程处理 4096个连接
}
HTTP模块配置:
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; #tcp_nopush on;
#keepalive_timeout 0; keepalive_timeout 65; #连接保持超时时间,单位是秒
#gzip on;
server {
listen 80; #监听地址及端口
server_name localhost;
#charset utf-8; #网页的默认字符集
#access_log logs/host.access.log main;
location / {
root html; #根目录配置
index index.html index.htm; #默认首页文件名
}
redirect server error pages to the static page /50x.html
# error_page 500 502 503 504 /50x.html; #内部错误的反馈页面
location = /50x.html { #错误页面配置
root html;
}
}
#用了log_format指令设置了日志格式之后,需要用access_log指令指定日志文件的存放路径;
是Nginx中最频繁配置的部分,而且这里也包含两个小块,分别为全局块和server块。主要影响Nginx的性能。
状态统计配置
location /status { #访问位置为/status
access_log off; #关闭此位置的日志记录
}
授权的访问控制
#添加认证配置
auth basic "secret"; #设置密码提示框文字信息
auth_basic_user_file /usr/local/Nginx/passwd.db;
客户端访问控制
location / {
root html;
index index.html index.htm;
auth_basic "secret";
auth_basic_user_file /usr/local/Nginx/passwd.db;
#添加控制规则
deny 192.168.2.66; #拒绝访问的客户端IP
allow all; #允许其他所有客户端访问
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。