nginx简介&nginx基本配置和优化
一、nginx简介
1.nginx的发展
Nginx是俄罗斯人编写的一款高性能HTTP和反向代理服务器。Nginx能够选择高效的epoll(Linux2.6内核)、kqueue(FreeBSD)、eventport(Solaris 10)作为网络I/O模型,再高连接并发的场景下,Nginx是Apache服务器非常不错的替代品,它能够支持50000个并发连接数的响应,而CPU、内存等系统资源消耗却非常低,运行非常稳定。
2.为什么选择Nginx
2.1 它可以高并发连接
官方测试Nginx可以支持5w并发连接,在实际生产环境中可以支持2~4w并发连接数。这得益于Nginx使用了最新的epoll和kqueue网络I/O模型,而Apache则使用的老的select模型。
2.2 内存消耗少
2.3 成本低廉
3.Nginx和Apache、Lighttpd的综合对比

二、Nginx的基本配置和优化
#使用的用户和组
#user nobody;
#指定工作衍生进程数(一般等于CPU的总核数或总核数的两倍,例如两个4核CPU,则总核数为8)
worker_processes 1; #错误日志存放路径
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #指定PID存放路径
#pid logs/nginx.pid; 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;
#tcp_nopush on; #keepalive_timeout 0;
keepalive_timeout 65; #gzip on; include https_params.conf; server {
listen 8888;
server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / {
root html;
index index.html index.htm;
} location /test {
proxy_pass https://www.baidu.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Server-IP $server_name;
proxy_set_header X-Server-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme; proxy_connect_timeout 30;
proxy_send_timeout 30;
proxy_read_timeout 300;
} #error_page 404 /404.html; # redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
} # proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#} # deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
} # another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias; # location / {
# root html;
# index index.html index.htm;
# }
#} # HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost; # ssl_certificate cert.pem;
# ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on; # location / {
# root html;
# index index.html index.htm;
# }
#} }
上面是Nginx的nginx.conf配置文件,可见配置文件的构成如下:
....
events {
....
}
....
http {
....
server {
....
}
server {
....
}
....
}
1.Nginx虚拟主机配置
1.1 什么是虚拟主机
其实就是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器,并且每一台虚拟主机都具有独立的域名和完整的Internet服务器功能。同一台服务器上的不同虚拟主机是各自独立的,可由客户自行管理。不过一台服务器只可以支持一定数量的虚拟主机,如果超出这个数量,那么客户在使用时将会发现性能急速降低。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样。如下是一个虚拟主机的代码:
server {
listen 8000;
server_name somename alias another.alias;
location / {
root html;
index index.html index.htm;
}
}
1.2 配置基于IP的虚拟主机
Linux、FreeBSD操作系统都允许添加ip别名。IP别名背后的概念很简单:可以在一块物理网卡上绑定多个ip地址。这样就可以在单一网卡的同一个服务器上运行多个基于ip的虚拟主机,nginx多ip虚拟主机配置如下:
http{
#第一个虚拟主机
server {
listen 192.168.1.1:8000;
server_name somename alias another.alias;
location / {
root html;
index index.html index.htm;
}
}
#第二个虚拟主机
server {
listen 192.168.1.2:8000;
server_name somename alias another.alias;
location / {
root html;
index index.html index.htm;
}
}
}
1.3 配置基于多域名的虚拟主机
基于域名的虚拟主机是最常见的虚拟主机。只需配置你的DNS服务器,将每个主机名映射到正确的ip地址,然后配置Nginx服务器,令其识别不同的主机名就可以了。Nginx配置如下:
http{
#第一个虚拟主机
server {
listen 8000;
server_name www.baidu.com;
location / {
root html;
index index.html index.htm;
}
}
#第二个虚拟主机
server {
listen 8000;
server_name www.weibo.com;
location / {
root html;
index index.html index.htm;
}
}
}
nginx简介&nginx基本配置和优化的更多相关文章
- Nginx简介与基础配置
何为Nginx? Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.最初是为了解决C10k的问题,由Igor ...
- nginx简介与配置
nginx简介 nginx(发音同engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行. nginx由俄罗斯的程序 ...
- Nginx简介及配置实用
Nginx简介 Nginx是一个高性能的HTTP和反向代理服务器: 支持的操作系统众多,windows.linux. MacOS X: 可实现负载均衡: Rewrite功能强大: 电商架构大部分都采用 ...
- nginx反向代理的配置优化
作者:守住每一天 blog:liuyu.blog.51cto.combbs:bbs.linuxtone.orgmsn:liuyubj520#hotmail.comemail:liuyu105#gmai ...
- Nginx网络架构实战学习笔记(一):Nginx简介、安装、信号控制、nginx虚拟主机配置、日志管理、location 语法、Rewrite语法详解
文章目录 nginx简介 nginx安装 nginx信号控制 nginx虚拟主机配置 日志管理 location 语法 精准匹配的一般匹配 正则匹配 总结 Rewrite语法详解 nginx简介 Ng ...
- Nginx高性能服务器安装、配置、运维 (1) —— Nginx简介
一.Nginx 简介 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器. Nginx特点 ...
- nginx安装升级及配置详解
1.简介 2.安装配置 3.配置文件介绍 4.启动.停止.平滑重启.升级 一.Nginx简介 Nginx(engine x)是俄罗斯人Igor Sysoev编写的一款高性能的http和反向代理服务器. ...
- centos6 Nginx+Tomcat负载均衡配置
一.Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤 二.Nginx安装 1.下载N ...
- Nginx简介及配置文件详解
http://blog.csdn.net/hzsunshine/article/details/63687054 一 Nginx简介 Nginx是一款开源代码的高性能HTTP服务器和反向代理服务 ...
随机推荐
- 搭建开源跳板机——jumpserver
搭建开源跳板机mobaxterm 官方文档:https://jumpserver.readthedocs.io/zh/master/ $ yum update -y # 防火墙 与 selinux 设 ...
- Selenium自动化测试面试题合集
1.什么是自动化测试.自动化测试的优势是什么? 通过工具或脚本代替手工测试执行过程的测试都叫自动化测试. 自动化测试的优势: 1.减少回归测试成本 2.减少兼容性测试成本 3.提高测试反馈速度 4.提 ...
- CobaltStrike逆向学习系列(14):CS功能分析-DotNet
这是[信安成长计划]的第 14 篇文章 0x00 目录 0x01 DotNet功能分析 0x02 DotNet功能执行 0x03 写在最后 在上两篇文章中,讲述了 CS 中的一种功能执行方式 RDI, ...
- 从数据源支持、支持方式等角度深入了解Smartbi与Tableau
对数据分析来讲,数据源支持是基本功.让数据分析工具与数据保持一个通道,建立会话.用数据分析应用服务器与我们需要分析的业务数据进行连接,拿到需要的数据进行分析.Smartbi.Tableau系统给我们提 ...
- .Net 新一代编译器 Roslyn 会带来怎样的影响?
.Net 新一代编译器 Roslyn 会带来怎样的影响? Roslyn是微软创建的一个.NET编译器平台,该项目于2014年4月3日开源. 最初 C# 语言的编译器是用 C++ 编写的,后来微软推出了 ...
- 小白都能看懂的tcp三次握手
众所周知,TCP在建立连接时需要经过三次握手.许多初学者经常对这个过程感到混乱:SYN是干什么的,怎么一会儿是1一会儿是0?怎么既有大写的ACK又有小写的ack?为什么ACK在第二次握手才开始出现?初 ...
- omnet++:cMessage、cSimpleModule、cGate
cMessage Message可以被调度(self-message).取消.从一个Gate发送出去.直接发给另一个module:所有以上,都是通过cSimpleModule来实现的. Message ...
- pandas模块篇(终章)及初识mataplotlib
今日内容概要 时间序列 针对表格数据的分组与聚合操作 其他函数补充(apply) 练习题(为了加深对DataFrame操作的印象) mataplotlib画图模块 今日内容详细 时间序列处理 时间序列 ...
- MySQL性能优化之索引设计
作者:IT王小二 博客:https://itwxe.com 上一篇给小伙伴们讲了关于SQL查询性能优化的相关技巧,一个好的查询SQL离不开合理的索引设计.这篇小二就来唠一唠怎么合理的设计一个索引来优化 ...
- Bugku CTF_web3
1.打开网页,得到信息如下 2.在hackbar里构造url如下 3.得到flag 4.本题的考点在于读的懂PHP代码,并且学会构造get参数.