-Nginx简介
Nginx简介
Nginx是一款高性能的HTTP和反向代理服务器,主要有以下优点
支持高并发
配置简单
占用的资源少
nginx作为代理服务器主要用来实现反向代理和负载均衡。
要理解反想代理首先介绍一下正向代理,如下图正向代理是代理客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。
反向代理则是代理的服务端,以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器,用户不需要也不关心到底是哪台服务器为自己服务,反向代理是负载均衡实现的基础。
负载均衡:简单的理解就是将客户端的请求分发到不同的服务器,由不同的服务器做出响应,减轻服务器的压力。更加快速的响应客户端的请求。
Linux环境安装Nginx
参考文章:http://www.runoob.com/linux/nginx-install-setup.html
由于Nginx的启动端口是80小于1024,所以使用root用户安装
1. 安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
- 安装PCRE
PCRE 作用是让 Nginx 支持 Rewrite 功能。
解压安装包
tar zxvf pcre-8.35.tar.gz
进入pcre目录执行以下命令进行编译安装
cd pcre-8.35
./configure
make && make install
安装完成之后查看PCRE的版本
pcre-config --version
下载Nginx
下载地址:http://nginx.org/download/nginx-1.9.9.tar.gz
wget http://nginx.org/download/nginx-1.9.9.tar.gz
解压目录
tar -zxvf nginx-1.9.9.tar.gz
编译安装
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.35
make && make install
到此Nginx安装完成。
备注:nginx 常用命令
命令执行路径在nginx/sbin目录下
./nginx -? //nginx命令帮助
./nginx -v //查看nginx 版本
./nginx -t //检查配置文件是否正确
./nginx //启动nginx
./nginx -s reopen //重启nginx
./nginx -s reload //重新加载配置文件
./nginx -s stop //关闭nginx
启动Nginx使用浏览器访问,出现以下地址代表安装正确。http默认端口80,如果配置文件中监听的不是80端口,则需要加上端口号。
nginx.conf 配置
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log warn;
#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 main
' $remote_user [$time_local] $http_x_Forwarded_for $remote_addr $request '
'$http_x_forwarded_for '
'$upstream_addr '
'ups_resp_time: $upstream_response_time '
'request_time: $request_time' ' request_body: $request_body';
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 105;
client_max_body_size 10m;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
tcp_nopush on;
tcp_nodelay on;
#gzip on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 4;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
proxy_buffers 8 8k;
proxy_cache_path data/cache levels=1:2 keys_zone=one:10m;
proxy_cache_min_uses 4;
proxy_cache_valid 10m;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
fastcgi_buffers 8 128k;
server_tokens off;
server {
listen 80;
server_name localhost;
location / {
rewrite ^/(.*) https://$host/$1;
}
location /mweb {
proxy_pass http://222.85.230.6:8080/mweb;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_ignore_client_abort on;
client_max_body_size 10m;
client_body_buffer_size 128k;
}
location /mca {
proxy_pass http://127.0.0.1/mca;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_ignore_client_abort on;
client_max_body_size 10m;
client_body_buffer_size 128k;
}
location /mrbui {
proxy_pass http://127.0.0.1/mrbui;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_ignore_client_abort on;
client_max_body_size 10m;
client_body_buffer_size 128k;
}
location /bkg {
proxy_pass http://127.0.0.1/bkg;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_ignore_client_abort on;
client_max_body_size 10m;
client_body_buffer_size 128k;
}
location /mrpos {
proxy_pass http://127.0.0.1/mrpos;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_ignore_client_abort on;
client_max_body_size 10m;
client_body_buffer_size 128k;
}
location /mercStandard {
proxy_pass http://222.85.230.6:8080/mercStandard;
}
location /sysmng {
deny all;
}
location /console {
deny all;
}
location /admin-console {
deny all;
}
location /management {
deny all;
}
location /jmx-console {
deny all;
}
location /invoker {
deny all;
}
location /web-console {
deny all;
}
# location /status {
# check_status;
# access_log off;
# allow 100.126.54.0/24;
# deny all;
# }
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}