也许是最好的Web服务器
安装与配置
Nginx名气太大,就不详细介绍了,因为我用的是Mint OS,所以这篇文章对于Debian系OS是适用的。
各种命令
安装:sudo apt-get install nginx
启动:sudo service nginx start
停止:sudo service nginx stop
重载:sudo service nginx reload
Mac版:
安装:brew install nginx
启动:sudo nginx
停止:sudo nginx -s stop
重启:sudo nginx -s reopen
重载:sudo nginx -s reload配置
nginx的默认配置文件是:
/etc/nginx/nginx.conf
这个配置文件又加载了一个外部的配置文件:
include /etc/nginx/sites-enabled/*
sites-enabled 文件夹下只有一个default文件,这货才是我们真正需要了解的。去掉注释后,实际上没几行:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
}
server_name就是url中的域名,当前是localhost,我们就可以在浏览器通过localhost访问到这台server。80是 http的默认端口,不要轻易修改。default_server 的含义是指如果有其他 http 请求的 host 在 nginx 中不存在相关配置的话那么就用这台 server 的配置来处理。比如访问127.0.0.1就由这台server来处理。root是url请求的根路径,index是默认访问页面。
- 日志路径
/var/log/nginx
大杀器
- 反向代理
要明白什么是反向代理,首先要搞清楚什么是正向代理。正向代理作为客户端的中介,隐藏了真实的客户端向服务器获取资源,翻墙软件就是典型的正向代理。
反向代理顾名思义就是作为服务端的中介,隐藏掉真实提供服务的服务器,它是负载均衡的基础。
配置如下:
/etc/nginx/sites-enabled/default
location / {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;//获得客户端真实IP
}
localhost/mc/将会被代理到localhost:8080/mc/
location /static/ {
root /home/admin;
}
localhost/static/images/a.jpg的资源存储在/home/admin/images/a.jpg
- 负载均衡
有了反向代理之后,我们就可以把大量请求分散到多台机器。
配置如下:
/etc/nginx/sites-enabled/default server模块
location /mc {
proxy_pass http://mc;
}
/etc/nginx/nginx.conf http模块
upstream mc {
ip_hash;
server 192.168.1.13:8079;
server localhost:8080;
}
总结
之所以要写这篇文章是因为每当去网上搜索技术资料的时候,总是能看到不少劣质文章,排版混乱,东拼西凑,未经测试。这些人自己没有技术品位也就算了,贡献垃圾信息我就不能忍了。