今天就来和大家讲一讲nginx和基于域名搭建虚拟主机

简介

Nginx (engine x) 是一个高性能的Web服务器和反向代理服务器,也是一个IMAP/POP3/SMTP服务器

俄罗斯程序员Igor Sysoev于2002年开始 Nginx是增长最快的Web服务器,市场份额已达33.3% 全球使用量排名第二2011年成立商业公司

Nginx源码结构:

代码量大约11万行C代码 源代码目录结构 core (主干和基础设置) event (事件驱动模型和不同的IO复用模块) http (HTTP服务器和模块) mail (邮件代理服务器和模块) os (操作系统相关的实现) misc (杂项)

Nginx特点:

反向代理,负载均衡器 高可靠性、单master多worker模式 高可扩展性、高度模块化 非阻塞 事件驱动 低内存消耗 热部署

nginx应用环境

静态文件服务器 反向代理,负载均衡 安全防御 智能路由(企业级灰度测试、地图POI一键切流) 灰度发布 静态化 消息推送 图片实时压缩 防盗链

常见使用的官方模块

1gx_http_core_module

提供http协议的支持。平常配置的http段、server虚拟主机段、location段等。都是此模块的中的一些配置语法。

ngx_http_proxy_module

使用‘gzip’方法压缩,有助于将传输数据的大小减少为一半甚至更多。提供请求返回速度。

2.3、ngx_http_proxy_module

该模块允许将请求转发到其他服务器,实现代理服务器的功能。

常见于实现反向代理服务器。

ngx_http_rewrite_module

该模块用于使用pcre正则表达式更改请求的URI,返回重定向,或者判断选择对应的配置项。

ngx_http_upstream_module

该模块用户分发到不同的服务器节点。支持由proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass, grpc_pass等的服务器组。

Nginx目录说明

conf : Nginx所有配置文件的目录 fastcgi.conf fastcgi相关参数的配置文件 fastcgi.conf.default fastcgi.conf的原始备份 fastcgi_params fastcgi的参数文件 mime.types 媒体类型 nginx.conf Nginx默认的主配置文件 scgi_params scgi相关参数文件 uwsgi_params uwsgi相关参数文件

fastcgi_temp : fastcgi临时数据目录 html : 编译安装Nginx的默认站点目录 50x.html 错误页面优雅替代显示文件 index.html 默认的首页文件,index.html 、index.php等 logs : Nginx默认的日志路径,包括错误日志和访问日志 access.log Nginx的默认访问日志文件, tail -f access.log error.log Nginx的错误日志文件,如果出现启动故障,要查看该文件 nginx.pid Nginx的pid文件,Nginx进程启动后,会把所有进程的ID号写到此 文件

proxy_temp : 临时目录 sbin : Nginx命令的目录 nginx Nginx的启动命令nginx scgi_temp : 临时目录 uwsgi_temp : 临时目录

nginx配置参数解释

worker_processes 1; worker进程的数量 worker_connections 1024; 每个worker进程支持的最大连接数 include mime.types; nginx支持的媒体类型库文件 default_type application/octet-stream; 默认的媒体类型 sendfile on; 开启高效传输模式 keepalive_timeout 65; 连接超时 server 表示一个独立的虚拟主机站点 listen 80; 提供服务的端口,默认80 server_name localhost; 提供服务的域名主机名 location location区块 root html 站点的根目录

搭建虚拟主机

1 在 usr/local/nginx/conf/nginx.conf里添加配置文件(格式如下) server { listen 80; server_name www.nautilus.org; location / { root html/www; index index.html index.htm; } }

2 在 usr/local/nginx/html里创建一个目录 3进入这个刚创建的文件输入echo "xiaoxiaoxiao" >>index.html(引号里看需要输入) 4 在 etc/hosts 里添加自己的虚拟机IP和虚拟主机的名字 5 看一下nginx启动没有如果没有就启动 6进入 usr/local/nginx/sbin重启文件,命令是./nginx -s reload 7输入curl 虚拟主机名,看是否成功 8如果要在window上查看需要更改C:\Windows\System32\drivers\etc里的hosts文件(需要记事本以管理员模式运行)