声明:自己学习记录下来的一些配置,以后用到会慢慢完善。
一、介绍
Nginx:Web服务器/反向代理服务器及电子邮件代理服务器。轻量、支持高并发,坑多。
二、全局段配置
worker_prosesses | 工作进程,最大为CPU数*核心数 |
三、events
worker_connections | 每个工作进程的连接数 |
四、http
autoindex on; | 开启显示目录 |
log_format simple ‘$remote_addr “$request” “$http_x_forwarded_for”’ | 请求日志的格式设置,命名为simple。 分别为请求ip,url,使用代理请求前的客户ip |
access_log /logs/nginx.log simple | 所有请求以simple的格式写入日志文件 |
五、server
每一个server为一个虚拟主机
server{
listen 80; #端口
server_name www.a.com;#域名,还需更改本地host指向
root /var/www;#默认路径
location / {
index index.php index.html;
try_files $uri $uri/ /index.php?$query_string;#重定向,省略index.php
}
#添加php解析
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
}
六、反向代理
反向代理服务器IP 192.168.1.6,真实服务器192.168.1.7
#设置图片代理
location ~ \.(jpg|jpeg|png|gif)$ {
#真实服务器
proxy_pass http://192.168.1.7;
#此参数把用户ip带给真实服务器,和日志内http-x-forwarded-for相关。
proxy_set_header X-Forwarded-For $remote_addr;
}
七、负载均衡
两台负载均衡资源服务器192.168.1.7, 192.168.1.8。
#在http内
upstream imgServer{
server 192.168.1.7:80 weight=2 max_fails=2 fail_timeout=30s;
server 192.168.1.8:80 weight=1 max_fails=2 fail_timeout=30s;
}
反向代理 proxy_pass http://192.168.1.7改为proxy_pass http://imgServer;
weight 为权重
八、我的测试配置
#user nobody;
worker_processes 1;#工作进程数量,最多可以CPU数量*核数
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#日志记录的格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#命名一个简单点的日志记录格式
log_format simple '$remote_addr "$request" "$http_x_forwarded_for"';
#access_log logs/access.log main;日志记录在哪,用什么格式。这里不做全局配置,在每个虚拟主机下单独配置
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#显示工作目录
autoindex on;
upstream imgserver{
server 192.168.1.99:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.1.98:80 weight=1 max_fails=2 fail_timeout=30s;
}
#配置虚拟主机
server{
listen 80;
server_name www.b.com;
root /var/www;
access_log /logs/b.log simple;
location / {
index index.php index.html;
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
}
server {
listen 80;
server_name localhost 192.168.1.99;
root /var/www;
access_log /logs/a.log simple;
#charset koi8-r;
location / {
index index.html index.htm;
}
location ~ \.(jpg|jpeg|png|gif)$ {
proxy_pass http://imgserver;
proxy_set_header X-Forwarded-For $remote_addr;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
}
}