centos环境配置
安装nginx需要依赖某些包,执行以下命令
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
安装
下载nginx安装包并执行
//可自行更换版本
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
//解压
tar -zxvf nginx-1.10.1.tar.gz
//进入目录
cd nginx-1.10.1
//执行
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
启动命令
cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop
./nginx -s quit
./nginx -s reload
配置
配置nginx.service
//新建service文件
vim /usr/lib/systemd/system/nginx.service
//保存以下内容
[Unit]
Description=nginx-The High-performance HTTP Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStartPre=/data/server/nginx/sbin/nginx -t -c /data/server/nginx/conf/nginx.conf
ExecStart=/data/server/nginx/sbin/nginx -c /data/server/nginx/conf/nginx.conf
ExecReload=/data/server/nginx/sbin/nginx -s reload
ExecStop=/data/server/nginx/sbin/nginx -s stop
ExecQuit=/data/server/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
//赋与操作权限
chmod +x /usr/lib/systemd/system/nginx.service
//启动/关闭/重启/开机自启
systemctl start nginx.service
systemctl stop nginx.service
systemctl restart nginx.service
systemctl enabled nginx.service
nginx配置文件参考
worker_processes 2;
worker_cpu_affinity 01 10;
worker_rlimit_nofile 65535;
events
{
use epoll;
multi_accept on;
accept_mutex on;
accept_mutex_delay 500ms;
worker_connections 1024;
}
http
{
include mime.types;
default_type application/octet-stream;
underscores_in_headers on;
access_log off;
#charset utf-8;
server_names_hash_bucket_size 128;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
# 日志格式
log_format main '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_time"';
log_format time '$remote_addr\t$time_local\t$request_time\t$http_host\t$request\t$status';
# rewrite_log on;
# 处理时间
keepalive_timeout 60;
# 用户请求头的超时时间
client_header_timeout 1m;
# 用户请求体的超时时间
client_body_timeout 1m;
# 此指令设置NGINX能处理的最大请求主体大小。 如果请求大于指定的大小,则NGINX发回HTTP 413(Request Entity too large)错误。 如果服务器处理大文件上传,则该指令非常重要。
client_max_body_size 4m;
# proxy 用
send_timeout 120;
connection_pool_size 256;
#为请求头分配一个缓冲区。 如果请求头大小大于指定的缓冲区,则使用large_client_header_buffers指令分配更大的缓冲区
client_header_buffer_size 16k;
#此指令规定了用于读取大型客户端请求头的缓冲区的最大数量和大小。 这些缓冲区仅在缺省缓冲区不足时按需分配。 当处理请求或连接转换到保持活动状态时,释放缓冲区
large_client_header_buffers 4 32k;
request_pool_size 64k;
output_buffers 4 64k;
postpone_output 1460;
client_body_buffer_size 256k;
fastcgi_intercept_errors on;
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
## 这个不能大小 太小会常出502错误
fastcgi_buffer_size 256k;
fastcgi_buffers 8 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
# fastcgi_temp_path /dev/shm;
# fastcgi_intercept_errors on;
#启用此指令将存储以下信息的缓存: 打开的文件描述符和相关元数据,如大小,修改时间等 文件和目录的存在 与查找相关的任何错误,例如“权限被拒绝”,“文件未找到”等
# open_file_cache max=50000 inactive=20s;
# # NGINX将在非活动时间段之后从高速缓存中清除元素。 此指令可用于配置最小访问次数以将元素标记为活动使用。 默认情况下,最小访问次数设置为1次或更多次
# open_file_cache_min_uses 1;
#NGINX的open_file_cache保存信息的快照, 设置时间后将重新验证open_file_cache中的元素
# open_file_cache_valid 30s;
#NGINX可以缓存在文件访问期间发生的错误。 但是这需要通过设置open_file_cache_errors指令来启用。 如果启用错误缓存,则在访问资源(不查找资源)时,NGINX会报告相同的错误
# open_file_cache_errors on;
gzip on;
gzip_min_length 4k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_vary on;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript image/jpeg image/gif image/png;
limit_conn_zone $binary_remote_addr zone=one:10m;
#隐藏nginx版本信息
server_tokens off;
server {
listen 80 default;
return 403;
location ~ .*.(svn|git|cvs) {
deny all;
}
location / {
root html;
index index.html index.htm;
}
location = /50x.html {
root html;
}
}
#禁用空主机头访问
include /work/server/nginx/sites-enabled/*.conf;
}
实际配置文件参考
upstream nwpt-jenkins {
server 127.0.0.1:9999;
}
server{
#监听443端口
listen 443 ssl;
server_name jenkins.yasirit.top;
#ssl on;
ssl_certificate /work/server/ssl/yasirit.top/fullchain.crt;
ssl_certificate_key /work/server/ssl/yasirit.top/private.pem;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_protocols SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://nwpt-jenkins;
}
}
server {
listen 80;
server_name jenkins.yasirit.top;
return 301 https://$server_name$request_uri;
}