Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务反向代理(Reverse Proxy)指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将服务器上得到的结果返回给Internet上请求的客户端,即为反向代理服务器。
下载&安装
首先去Nginx官网下载:
解压文件:
配置代理服务器
nginx的配置是在 conf/nginx.conf 文件中进行配置
反向代理一个服务器
upstream nodeserver {
# 服务器所在的地址
server localhost:8080;
}
server {
# 监听的端口号
listen 80;
# 指定nginx服务器对应的ip地址
server_name www.wujingchang.com;
# 设置网页的默认编码格式
charset utf-8;
# 设置反向代理服务器访问模式
location / {
#用于指定访问根目录时
root html;
#在不指定访问具体资源时,默认展示的资源文件列表
index index.html index.htm;
#应用前面定义的nodeserver
proxy_pass http://nodeserver;
#Proxy Settings
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
反向代理多个服务器
upstream nodeserver {
# 服务器1所在的地址
server localhost:8080;
# 服务器2所在的地址
server localhost:8081;
}
server {
# 监听的端口号
listen 80;
# 指定nginx服务器对应的ip地址
server_name www.wujingchang.com;
# 设置网页的默认编码格式
charset utf-8;
# 设置反向代理服务器访问模式
location / {
#用于指定访问根目录时
root html;
#在不指定访问具体资源时,默认展示的资源文件列表
index index.html index.htm;
#应用前面定义的nodeserver
proxy_pass http://nodeserver;
#Proxy Settings
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
代理不同的工程
不同的工程即指不同的项目,默认的nginx代理服务器是通过80端口访问,但是如果是多个不同的工程,如果仍然通过相同的端口访问,这样明显会影响性能。
解决方法:
upstream nodeserver1 {
ip_hash;
# 工程1所在的地址
server localhost:8080;
}
upstream nodeserver2 {
ip_hash;
# 工程1所在的地址
server localhost:8081;
}
server {
# 监听的端口号
listen 80;
# 指定nginx服务器对应的ip地址
server_name www.wujingchang.com;
# 设置网页的默认编码格式
charset utf-8;
# 设置反向代理服务器访问模式
location ^~ /process1/ {
#用于指定访问根目录时
root html;
#在不指定访问具体资源时,默认展示的资源文件列表
index index.html index.htm;
#应用前面定义的nodeserver
proxy_pass http://nodeserver1;
#Proxy Settings
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
location ^~ /process2/ {
#用于指定访问根目录时
root html;
#在不指定访问具体资源时,默认展示的资源文件列表
index index.html index.htm;
#应用前面定义的nodeserver
proxy_pass http://nodeserver2;
#Proxy Settings
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
运行访问Nginx
运行nginx,打开终端,输入:
start nginx
打开浏览器,访问server中配置的servername对应的域名(如果不是实际的域名,可以直接去host文件中配置),nginx则会代理请求到相应的服务器。