什么是Nginx?
用一句话来说,Nginx高性能的Http和反向代理服务器。也是一个IMAP/POP3/SMTP等邮件代理服务器。
用很多句话来说,em.....那就得从反向代理服务器说起了。
什么是反向代理?
要解释反向代理就又得从正向代理说起了。经典套娃。
什么是正向代理?
当你访问网站的时候,先从你的主机ip发出请求,然后通过http代理软件转发到你的代理服务器,最终由你的代理服务器来访问你要访问的网站。这个过程就是一个正向代理的过程。
client - proxy(代理服务器)-server
正向代理的使用场景:
1)做缓存使用,加快访问速度
2)对客户端授权或记录访问信息
就是这种,分为三方:客户端、代理服务器端、服务端。而当我们在使用正向代理的时候,我们是能够感知到代理端的,而反向代理与正向代理的唯一区别就是代理服务器是与服务端在一块的。
client - proxy(代理服务器)-server
反向代理:服务器通过代理服务接受请求,然后转发给内部网络的服务器,将服务器结果返回。
反向代理一般来说访问的客户端是感知不到的。所以它可以保证内网安全,阻止web攻击。
而Nginx服务器还可以做负载均衡。
通过上面比较通俗的解释,大家应该对反向代理和Nginx有个概念了,那接下来就让我们看看Nginx怎么配置吧。
Nginx配置
分为三部分:
全局块: 运行时用户组,进程id存放位置、日志存放位置(路径、级别(debug|info|notice|warn|error|crit))、 workerprocess数量(允许生成的进程数)、存储进程id的文件位置。
# 配置用户或者用户组
#user nobody;
# 允许生成的进程数
worker_processes 1;
# 日志路径设置 可以配置级别
# debug | info | notice | warn | error | crit
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
# 存储进程id的文件地址
#pid logs/nginx.pid;
events块:进程最大连接数,选取那种失误驱动模型,以及在网络链接配置,是否开启多个,是否序列化等
events {
# 每个进程的最大连接数
worker_connections 1024;
}
http块:配置代理、缓存、日志等绝大部分功能的地方可以嵌套多个server块,而不同的server可以对应不同的域名(虚拟主 机)。
http {
# 对应虚拟主机的配置
server{
# 监听端口
listen 80;
# 监听域名
server_name localhost;
# 定位出路径或文件地址
location / {
# 相对路径
root html;
# 默认跳转的首页地址
index index.html index.htm;
}
}
server_test{
# 监听端口
listen 80;
# 监听域名
server_name my123.com;
# 定位出路径或文件地址
location / {
# 相对路径
root my123;
# 默认跳转的首页地址
index index.html;
}
}
}
虚拟主机:同一台nginx服务器,可以支持多个网站的运行,虚拟主机之间互相独立,有完整功能。
上面server_test配置的内容为将域名配置为 (www.my123.com),首页默认访问更路径下my123目录中的index页面。
不过想要通过域名来访问服务器的话还需要在我们的本机hosts文件中配置 域名相应的ip地址才可以正常访问。
以上便是Nginx的一些基本信息,限于篇幅,我会把一些重要的详细配置内容放到后边的博客。