1、安装nginx
yum install -y nginx
2、启动nginx
#nginx默认使用80端口,查看是否需要改变
firewall-cmd --zone=public --add-port=80/tcp --permanent
systemctl restart firewalld
systemctl start nginx
systemctl status nginx
3、修改nginx配置文件
vim /etc/nginx/nginx.conf
添加gzip,提高浏览速度,删除server
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# 502 bad gateway 错误解决配置 start
proxy_buffer_size 64k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
# 502 bad gateway 错误解决配置 end
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
#开启压缩,提高浏览速度
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
include /etc/nginx/conf.d/*.conf;
}
(2)、在/etc/nginx/conf.d/添加default.conf监听80端口
#默认轮训方式
#IPHash(有时存在分片下载时,服务器需要存储信息,使用IPHash),第一行添加(ip_hash;)
#URLHash(URLHash多用于某个方法或某一类方法指定某些路径,比如下载时,有的下载服务器配置更高,或者大数据缓存只想缓存一份,省内 #存),第一行添加(hash $request_uri;)
#最少连接(防止存在空闲服务器),第一行加上(least_conn;)
#IPhash
upstream admin-cluster{
ip_hash;
server 10.0.0.196:8080 weight=5;
server 10.0.0.198:8080 weight=5;
}
#IPhash
upstream push-cluster{
ip_hash;
server 10.0.0.196:8081 weight=2;
server 10.0.0.195:8081 weight=8;
}
server {
#监听80端口
listen 80;
#监听IP
server_name 10.0.0.63;
#根目录http://10.0.0.63/*
index index.html portal.html index.htm;
#根据路对应的真实路径http://10.0.0.63//opt/front/book
root /opt/front/book;
#静态路径
#路径为http://10.0.0.63/login/*,真实路径为服务器/opt/front/book/*
location /login {
alias /opt/front/book;
index index.html portal.html index.htm;
}
#静态路径
#路径为http://10.0.0.63/bigScreen/*,真实路径为服务器/opt/front/bigScreen/*
location /bigScreen {
alias /opt/front/bigScreen;
index index.html index.htm;
}
#静态路径
#路径为http://10.0.0.63/rfdmas/*,真实路径为服务器/opt/front/rfdmas/*
location /rfdmas {
alias /opt/front/rfdmas;
index index.html index.htm;
}
#默认代理admin-cluster
#负载均衡
#路径为http://10.0.0.196/*,真实路径为http://admin-cluster/*
location /admin {
proxy_pass http://admin-cluster;
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://10.0.0.196/a/aftersale/*,真实路径为http://10.0.0.199:8005/a/aftersale/*
location /a/aftersale/ {
proxy_pass http://10.0.0.199:8005/a/aftersale/;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X_Real_IP $remote_addr;
proxy_set_header X-Scheme $scheme;
client_max_body_size 1000m;
}
#路径为http://10.0.0.196/a/bigscreen/aftersale/*,真实路径为http://10.0.0.199:8005/a/bigscreen/aftersale/*
location /a/bigscreen/aftersale/ {
proxy_pass http://10.0.0.199:8005/a/bigscreen/aftersale/;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X_Real_IP $remote_addr;
proxy_set_header X-Scheme $scheme;
client_max_body_size 1000m;
}
#负载均衡
#路径为http://10.0.0.196/ws/*,真实路径为http://push-cluster/ws/*
location /ws {
proxy_pass http://push-cluster/ws/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header x-forwarded-for $remote_addr;
}
#路径为http://10.0.0.196/master/*,真实路径为http://10.0.0.196:8081/master/*
location /master {
proxy_pass http://10.0.0.196:8081/master/;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X_Real_IP $remote_addr;
proxy_set_header X-Scheme $scheme;
client_max_body_size 1000m;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
access_log /var/log/nginx/access.log main;
}
(3)、添加监听81端口
server {
listen 81;
server_name 10.0.0.63;
#使用正则表达式
location / {
# if ($request_uri ~* '^/([b-zA-Z0-9]).*$') {
# rewrite ^(.*)$ http://a.org break;
# }
location ~* .*\.(html|php|mp4)$ {
#return 403;
rewrite ^(.*)$ http://a.org break;
}
proxy_pass http://10.0.0.196:8001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /a/ {
proxy_pass http://10.0.0.196;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /f/ {
proxy_pass http://10.0.0.196:8001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /monitor/ {
proxy_pass http://10.0.0.196:8003;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /monitorCompany {
alias /opt/front/monitoCompany/;
index index.html portal.html index.htm;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
access_log /var/log/nginx/access.log main;
}
4、开放81端口,重启nginx
firewall-cmd --zone=public --add-port=81/tcp --permanent
systemctl restart firewalld
systemctl reload nginx