nginx安装部署文档
1、安装nginx的依赖包
yum install -y gcc curl vim iotop make rsync lrzsz tree ntpdate pcre pcre-devel zlib zlib-devel openssl openssl-devel
2、下载nginx源码包文件
见同级目录下nginx安装目录,上传到/usr/local/src/
3、编译安装
cd /usr/local/src/
tar xvfz nginx-1.20.1.tar.gz
#编译
cd nginx-1.20.1
./configure --prefix=/opt/server/nginx \
--sbin-path=/opt/server/nginx/sbin/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_realip_module
make && make install
#配置文件目录
统一放在/opt/server/nginx/conf/vhosts目录下面:
#配置文件参考
1、nginx.conf
user root;
worker_processes auto;
#nginx进程数,建议按照cpu数目来指定,一般为它的倍数。
worker_cpu_affinity
0001
0010
#0100
#1000
;
#nginx输出日志
error_log /opt/logs/nginx/error.log error;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid /opt/server/logs/nginx.pid;
events {
use epoll;
#使用epoll的I/O模型
worker_connections 51200;
#Nginx worker单个进程允许的客户端最大连接数
#最大连接数Max_client = worker_processes * worker_connections
#进程的最大连接数收Linux系统进程的最大打开文件数限制,在执行操作系统命令“ulimit -HSn 65535”后,才能生效
#连接数并不是越大越好,要在系统性能能接受的范围内
}
http {
underscores_in_headers on;
include mime.types;
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
fastcgi_intercept_errors on;
default_type application/octet-stream;
client_header_timeout 600;
client_body_timeout 600;
send_timeout 60;
set_real_ip_from 100.125.0.0/16;
real_ip_header X-Forwarded-For;
log_format main '$remote_addr $server_addr $remote_user [$time_local] $host '
'"$request" $status $body_bytes_sent $request_time "$upstream_addr" "$upstream_response_time" "$http_x_forwarded_for" '
'"$http_referer" "$http_user_agent" ';
access_log /opt/logs/nginx/access.log main; #默认时间输出格式
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 40m;
#上传文件大小设置(全局配置),具体数字要根据业务需求决定
#此指令设置NGINX能处理的最大请求主体大小。
#如果请求大于指定的大小,则NGINX发回HTTP如果请求大于指定的大小,
#则NGINX发回HTTP 413(Request Entity too large)错误。 如果服务器处理大文件上传,则该指令非常重要。
sendfile on;
#开启文件的高效传输模式
tcp_nopush on;
#激活tcp_nodelay,提高I/O性能,在包含keepalive参数时才有效
server_tokens off;
#控制http response header内的服务版本信息的显示,以及错误信息中web服务版本信息
keepalive_timeout 60;
#设置客户端连接保持会话的超时时间
tcp_nodelay on;
#gzip模块设置
gzip on;
#开启gzip压缩
gzip_min_length 1k;
#最小压缩文件大小
gzip_buffers 4 16k;
#设置缓冲区的个数以及每个缓冲区的大小,当前配置共32个缓冲区,每个缓冲区16KB
gzip_http_version 1.0;
#压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_comp_level 4;
#设置gzip的压缩级别,取值[1-9],数值越大压缩率越高,压缩时消耗的资源越多,通常合理取值是3-5
gzip_types text/plain application/javascript application/x-javascript text/css application/xml image/jpeg image/gif image/png image/x-icon;
#分别表示对css js json xml进行压缩,多个用空格分开,注意:text/html类型总会被压缩,不需要指定
gzip_vary on;
#表示是否添加"Vary: Accept-Encoding"响应头
proxy_ignore_client_abort on;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
proxy_next_upstream off;
proxy_next_upstream_timeout 0;
proxy_next_upstream_tries 1;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
include hosts.conf;
server {
listen 80;
server_name localhost;
location / {
root html;
add_header Set-Cookie "HttpOnly";
add_header Set-Cookie "Secure";
add_header X-Frame-Options "SAMEORIGIN";
index index.html index.htm;
}
location /nginx_status{
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
include vhosts/*.conf;
#引用http的配置文件
}