与网站相关的
http {
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
}
创建私钥,公钥
openssl genrsa >cert.key
openssl req -x509 -key cert.key >cert.pem
#根据提示输入信息
curl -k https://sxxxx
地址重写
http {
server {
listen 80;
server_name localhost;
#rewrite ^/a\.html$ /b.html redirect;
#rewrite / http://www.baidu.com;
#rewrite /(.*) http://www.baidu.com/$1;
#if ($http_user_agent ~* firefox){
#rewrite /(.*) firefox/$1
#}
#rewrite ^/a\.html$ /b.html permanent;
location / {
root html;
index index.html index.htm;
}
}
}
集群代理
upstream example-name {
ip_hash #相同客户端访问相同服务器
server 192.168.1.1:80;# 如果配置权重 健康检查添加 weight=3 max_fails=2 fail_timeout=30(默认10s)
server 192.168.1.2:80;# 当某台服务器要维修停机的时候任务就不会分配到他上 down
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://example-name;
root html;
index index.html index.htm;
}
}
四层代理
stream {
upstream example_name {
server 192.168.1.1:80;
server 192.168.1.2:80;
}
server {
liscen Custom_Port;
proxy_pass example_name;
}
}
上面的也可以写为不带负载均的示例
stream {
server {
liscen coums_port;
proxy_pass upstream_balancer; #负载均衡的地址
}
}
ab测试
ab -n 1000 -c 10 http://example.com/
# -n表示发起总共1000个请求
# -c 10: 并发数为 10,即同时发起 10 个请求
常用的 proxy_set_header 参数及其作用
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;