安裝編譯環(huán)境
1片橡、安裝編譯環(huán)境
yum -y install gcc gcc-c++
2喇潘、安裝pcre軟件包(使nginx支持http rewrite模塊)
yum install -y pcre pcre-devel gd-devel
3再登、安裝openssl-devel(使nginx支持ssl)
yum install -y openssl openssl-devel
4、安裝zlib
yum install -y zlib zlib-devel
5捷枯、創(chuàng)建用戶nginx
useradd nginx
passwd nginx
安裝nginx
#可自行到nginx官網(wǎng)下載包
[root@localhost ~]# wget http://nginx.org/download/nginx-1.16.0.tar.gz
[root@localhost ~]# tar xzf nginx-1.16.0.tar.gz -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/nginx-1.16.0/
[root@localhost nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --group=nginx --user=nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/tmp/nginx/client_body --http-proxy-temp-path=/tmp/nginx/proxy --http-fastcgi-temp-path=/tmp/nginx/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre --with-http_realip_module --with-stream
[root@localhost nginx-1.16.0]# make -j 2 && make install
nginx 編譯參數(shù)
查看 nginx 安裝的模塊
[root@localhost ~]#/usr/local/nginx/sbin/nginx -V
//指定程序的安裝目錄
--prefix=/usr/local/nginx
//指定配置文件路徑
--conf-path=/etc/nginx/nginx.conf
//指定訪問日志
--http-log-path=/var/log/nginx/access.log
//指定錯誤日志
--error-log-path=/var/log/nginx/error.log
//指定lock文件
--lock-path=/var/lock/nginx.lock
//指定pid文件
--pid-path=/run/nginx.pid
//設定http客戶端請求臨時文件路徑
--http-client-body-temp-path=/var/lib/nginx/body
//設定http fastcgi 模塊文件路徑
//用于轉(zhuǎn)發(fā) PHP 編寫的 web 應用程序的請求(動態(tài)網(wǎng)站)
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
//設定http代理臨時文件路徑
--http-proxy-temp-path=/var/lib/nginx/proxy
//設定http scgi臨時文件路徑
--http-scgi-temp-path=/var/lib/nginx/scgi
//設定 http uwsgi 模塊的文件路徑
//用于轉(zhuǎn)發(fā) Python 編寫的 web 應用程序的請求(動態(tài)網(wǎng)站)
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi
//啟用debug日志
--with-debug
//編譯PCRE包含“just-in-time compilation”
--with-pcre-jit
//啟用ipv6支持
--with-ipv6
//啟用ssl支持
--with-http_ssl_module
//獲取nginx自上次啟動以來的狀態(tài)
--with-http_stub_status_module
//允許從請求標頭更改客戶端的IP地址值,默認為關
--with-http_realip_module
//實現(xiàn)基于一個子請求的結果的客戶端授權。
// 如果該子請求返回的2xx響應代碼虎忌,所述接入是允許的归粉。
//如果它返回401或403中椿疗,訪問被拒絕與相應的錯誤代碼。
//由子請求返回的任何其他響應代碼被認為是一個錯誤糠悼。
--with-http_auth_request_module
//作為一個輸出過濾器届榄,支持不完全緩沖,分部分響應請求
--with-http_addition_module
//增加PUT,DELETE,MKCOL:創(chuàng)建集合,COPY和MOVE方法 默認關閉倔喂,需編譯開啟
--with-http_dav_module
//使用預編譯的MaxMind數(shù)據(jù)庫解析客戶端IP地址铝条,得到變量值
--with-http_geoip_module
//它為不支持“gzip”編碼方法的客戶端解壓具有“Content-Encoding: gzip”頭的響應靖苇。
--with-http_gunzip_module
//在線實時壓縮輸出數(shù)據(jù)流
--with-http_gzip_static_module
//傳輸JPEG/GIF/PNG 圖片的一個過濾器)(默認為不啟用。gd庫要用到)
--with-http_image_filter_module
//SPDY可以縮短網(wǎng)頁的加載時間
--with-http_spdy_module
//允許用一些其他文本替換nginx響應中的一些文本
--with-http_sub_module
//過濾轉(zhuǎn)換XML請求
--with-http_xslt_module
//啟用POP3/IMAP4/SMTP代理模塊支持
--with-mail
//啟用ngx_mail_ssl_module支持啟用外部模塊支持
--with-mail_ssl_module
檢測nginx配置文件是否正確
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] mkdir() "/tmp/nginx/client_body" failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed
[root@localhost ~]# mkdir -p /tmp/nginx
啟動nginx服務
[root@localhost ~]# /usr/local/nginx/sbin/nginx
nginx通用配置優(yōu)化
#將nginx進程設置為普通用戶班缰,為了安全考慮
user nginx;
#當前啟動的worker進程贤壁,官方建議是與系統(tǒng)核心數(shù)一致
worker_processes 2;
#方式一,就是自動分配綁定
worker_cpu_affinity auto;
#日志配置成warn
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
#針對 nginx 句柄的文件限制
worker_rlimit_nofile 35535;
#事件模型
events {
#使用epoll內(nèi)核模型
user epoll;
#每一個進程可以處理多少個連接埠忘,如果是多核可以將連接數(shù)調(diào)高 worker_processes * 1024
worker_connections 10240;
}
http {
server_tokens off; #隱藏nginx的版本號
include /etc/nginx/mime.types;
default_type application/octet-stream;
charset utf-8; #設置字符集,服務端返回給客戶端報文的時候脾拆,Nginx強行將報文轉(zhuǎn)碼為utf-8
#設置日志輸出格式,根據(jù)自己的情況設置
log_format main '$http_user_agent' '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'"$args" "$request_uri"';
access_log /var/log/nginx/access.log main;
sendfile on; #對靜態(tài)資源的處理比較有效
#tcp_nopush on; #如果做靜態(tài)資源服務器可以打開
keepalive_timeout 65;
########
#Gzip module
gzip on; #文件壓縮默認可以打開.告訴nginx采用gzip壓縮的形式發(fā)送數(shù)據(jù)莹妒。這將會減少發(fā)送的數(shù)據(jù)量名船。
gzip_disable "MSIE [1-6]\."; #對于有些瀏覽器不能識別壓縮,需要過濾如ie6
gzip_http_version 1.1; #設置識別 http 協(xié)議版本旨怠,默認是 1.1
include /etc/nginx/conf.d/*.conf;
}