一:nginx是什么?
是一个可作为HTTP服务器,也可作为反向代理服务器的东西。
二:优点
稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。
三:常用功能
(1)正反向代理
(2)负载均衡
目前,本菜菜只使用过反向代理。所以此处目前仅记录反向代理的详细使用。欢迎大佬们指点本菜。
Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,只要你正则写的没问题,又有相对应的服务器解决方案,你就可以随心所欲的玩。并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。若未能分发新的服务,则不能进行代理,前端的页面此时也是打不开的。
举栗子:a要借c的书看,但是a不能直接见到c,那么a要通过c的姐姐C才能找到c。c的姐姐C就是中间服务也就是代理。
使用:
1:下载nginx
https://nginx.org 官网下载想要的版本以及适合自己系统的。
点击后就会下载,下载完成后开始安装。官网已经告诉了如何安装,右侧“documentation -> nginx windows”就有详细的说明(需要自己将英文翻译下)
2:运行
下载完成后,解压缩,到nginx的解压缩后的目录,根目录运行cmd,使用命令进行操作,不要直接双击nginx.exe,
涉及常用指令:
启动:start nginx;
重启:nginx -s reload;
停止:nginx -s quit;
3:配置
配置文件所在位置如下图(conf文件夹里的nginx.conf)
4:配置文件介绍
注意: # 这个是注释符号
....#全局块
#user nobody;
worker_processes 1;
events {.... #events块
worker_connections 1024;
}
http {.... #http块
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {....#server块
listen 80;//默认监听的端口号
//server_name localhost;//本地域名
//实际项目中如下写法
server_name local.sinor.com.cn;//本地域
// location / {
// root html;
// index index.html index.htm;
// }
//实际项目中若有上下文,则如下书写 例如上下文是/warrms/web/
location /warrms/web/ {//代理前端...... #location块
proxy_pass http://10.60.1.891:8080; //这里给自己本地ip和端口号
proxy_redirect off;
proxy_set_header Host $host;
}
//代理后端1
location /warrms/sit/ {
//本地联调
proxy_pass http://10.60.1.251:8082$request_uri; //这里给后端开发的ip和端口号
proxy_redirect off;
proxy_set_header Host $host;
}
//代理后端2
代理环境则需要换成对应的环境域名
location /warrms/sit/ {
proxy_pass http://test.sio.com.cn$request_uri;
proxy_redirect off;
proxy_set_header Host test.sio.com.cn;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
也可用upstream将代理域写成公共部分,如下:
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {....#server块
listen 80;//默认监听的端口号
server_name local.sinor.com.cn;//本地域
//upstream
upstream qianduandl {
ip_hash;
//个人服务
server 10.60.1.178:8083;
//环境服务
server test.sio.com.cn;
//此处环境与服务的只能打开一个,另一个需要注释
}
//实际项目中若有上下文,则如下书写 例如上下文是/warrms/web/
location /warrms/web/ {//代理前端...... #location块
proxy_pass http://10.60.1.891:8080; //这里给自己本地ip和端口号
proxy_redirect off;
proxy_set_header Host $host;
}
//代理后端本地
location /warrms/sit/ {
proxy_pass http://qianduandl$request_uri; //这里给后端开发的ip和端口号
proxy_redirect off;
proxy_set_header Host $host;
}
//代理后端环境
代理环境则需要换成对应的环境域名
location /warrms/sit/ {
proxy_pass http://qianduandl$request_uri;
proxy_redirect off;
proxy_set_header Host test.sio.com.cn;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}