什么是Nginx?
Nginx
(engine x) 是一个高性能的
HTTP
和
反向代理
web服务器。特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
能够支持高达 50,000 个
并发连接数
的响应。Nginx代码完全用
C语言
从头写成,可以移植到很多操作系统:
Linux
、
Mac OS
、
Microsoft Windows
等。
Nginx配置详解与负载均衡
#概述;一共分为三大部分
############################第一部分 全局配置##########################
#user nobody;指定启动进程的用户,默认不用指定即可
#error_log logs/error.log;配置日志输出,虽然叫error_log但是可以定义输出的级别,默认不写是error级别
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;记录pid的文件,默认放到这个位置
# 只启动一个进程,nginx是多进程单线程模型
worker_processes 1;
############################第二部分 event配置##########################
#主要是网络连接相关的配置
events {
# 每个worker能连接1024个链接
worker_connections 1024;
# epoll; 事件驱动模型,多路IO复用
}
############################第三部分 http配置##########################
http {
include mime.types;
default_type application/octet-stream;#text/html 默认的返回类型,也可以再server.location修改
sendfile on;#开启sendfile系统调用
keepalive_timeout 65;#连接超时时间是65s
upstream peter {
#服务器资源
server 10.73.25.10:8080 weight=1
server 10.73.25.11:8080 weight=1
}
#upstream peter {
##服务器资源
#server 127.0.0.1:8080 weight=2
#server 127.0.0.1:8081 weight=1
#}
#upstream peter {
##服务器资源
#server 127.0.0.1:8080 weight=3
#server 127.0.0.1:8081 weight=1
#}
server {
listen 80;
server_name localhost;
location /demo0 {
root html;
index index.html index.htm;
proxy_pass http://peter;
}
# 下面展示多个demo,demo之间互相没有依赖,可以单独配置进行测试
################## demo1 展示location路径的不同写法优先级 ##########################
# = 最高优先级,表示路径完全等于,可以匹配demo1/a/b的请求
location /demo1/a/b {
return “/demo1/a/b”
}
# ^~ 第二高,表startWith,可以匹配demo1/abbb demo1/a/bbbb的请求
location /demo1/a {
return “/demo1/a”
}
# ~ 第三高,表示正则,注意加双引号
location “/demo1/\w{3}$” {
return “regex”
}
# 最低优先级,没有任何前置符号
location /demo1 {
return “/demo1”
}
################## demo2 展示rewrite跳转 ##########################
location /demo2 {
rewrite ^/(.*) /$1/api permanent # permanent 301, redirect 302
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# 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;
# }
#}
}