nginx安装与配置
1.基本工具安装
1.1配置yum
yum clean all
yum makecache
1.2工具安装
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
yum -y install zlib zlib-devel libtool openssl openssl-devel
yum -y install libevent yum-utils
2.nginx下载与安装
2.1下载
wget -c http://nginx.org/download/nginx-1.16.1.tar.gz
2.2 安装
tar -zvxf nginx-1.16.1.tar.gz -C /usr/local
cd /usr/local/nginx-1.16.1
mkdir -p /var/temp/nginx
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_v2_module
make && make install
2.3 nginx.conf配置
user nobody nobody;
worker_processes 16;
# error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
use epoll;# 设置用于复用客户端线程的轮询方法。如果你使用Linux 2.6+,你应该使用epoll。如果你使用*BSD,你应该使用kqueue。
worker_connections 6000;#每个worker处理的连接数
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 3526;
server_names_hash_max_size 4096;
log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
'$host "$request_uri" $status'
'"$http_referer" "$http_user_agent"';
server_tokens off; #关闭在错误页面中的nginx版本数字
sendfile on;
tcp_nopush on;#告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送
tcp_nodelay on;
keepalive_timeout 30;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 8 4k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;
client_max_body_size 50m;
client_body_buffer_size 256k;
client_body_temp_path /usr/local/nginx/client_body_temp;
proxy_temp_path /usr/local/nginx/proxy_temp;
fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
fastcgi_intercept_errors on;
gzip on;
gzip_disable "MSIE [1-6]\.";#IE6不支持gzip
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_comp_level 5;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascript text/css text/htm application/xml application/javascript text/javascript application/x-httpd-php image/jpeg image/gif image/png;
include vhosts/*.conf;
}
2.4 server负载均衡配置
upstream webUpstream{
#server 127.0.0.1:8180;
server 127.0.0.1:8280;
}
#http配置
server
{
listen 80;
server_name xx.com;
charset utf-8;
access_log logs/xx.com-access.log;
error_log logs/xx.com-error.log;
location /
{
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://webUpstream;
}
#默认跳转页面
location =/ {
rewrite / /xx/xx/login.html;
}
location /error
{
root /usr/local/nginx/html;
}
}
# https配置
server {
listen 443 ssl;
server_name xx.com;
ssl_certificate /home/opt/2941559_xx.com.pem;
ssl_certificate_key /home/opt/2941559_xx.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
location /
{
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://webUpstream;
}
#配置文件访问跳转
location =/zz.txt {
root /home/opt;
}
location /error
{
root /usr/local/nginx/html;
}
location =/ {
rewrite / /admin/public/login.html;
}
}
#禁止IP访问
server {
listen 80 default;
server_name _;
return 403;
}
#域名跳转
server {
listen 80;
server_name xx.com;
rewrite ^/(.*)$ http://www.xx.com/$1 permanent;
}
2.5 https时tomcat添加Valve配置
tomcat/conf/server.xml中
<Host name="localhost" appBase="">
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="x-forwarded-for"
remoteIpProxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto"
/>
<Context path="" docBase="/xx/xxx"/>
</Host>

浙公网安备 33010602011771号