Nginx是一个HTTP和反向代理服务器,可做为反向代理实现负载均衡的例子,也可以作为代理服务器,也经常作为web服务器使用。如果一台服务器装有多个web服务器则必须监听多个端口,对于用户的访问将是不友好,则需要一个统一的前端来进行分发。本文只是简单的利用Nginx作为前端代理服务器,代理不同的后端服务器:IIS和Apache,实现不同的域名解析至不同的服务器。
首先更改IIS的监听端口为8000,Apache的监听端口为9000,保证Nginx占有80端口和443端口。然后更改nginx.conf添加以下内容
server { listen 80; server_name iis.localhost;#要代理的域名 location / { proxy_pass http://127.0.0.1:8000/;#内部服务器实际地址和监听端口 proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; server_name apache.localhost; location / { proxy_pass http://127.0.0.1:9000/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
进阶操作,可按照参照此文设置前端缓存,注意以下内容须放入http{}内
client_body_buffer_size 512k; proxy_connect_timeout 5; proxy_read_timeout 60; proxy_send_timeout 5; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; proxy_temp_path D:/nginx/temp; proxy_cache_path D:/nginx/cache levels=1:2 keys_zone=cache_one:256m inactive=7d max_size=1g;
再修改server中location{}的缓存设置如下
proxy_cache cache_one; proxy_cache_valid 200 304 3d; expires 10d;
参考链接:
nginx做为反向代理实现负载均衡的例子
Nginx反向代理&前端全缓存相关配置教程
(总结)Nginx与Apache、Tomcat、Resin动静分离核心配置
Pingback引用通告: CentOS上安装Nginx+PHP-FPM | 勇气