準(zhǔn)備安裝Nginx環(huán)境部分
安裝編譯工具以及庫(kù)文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
安裝 PCRE(讓 Nginx 支持 Rewrite 功能)
#下載最新版本的,注意不要用pcre2
wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz
tar -xvf pcre-8.42.tar.gz
cd pcre-8.42
#安裝編譯
./configure
make && make install
#查看pcre版本
pcre-config --version
注意:在下載過(guò)程肯會(huì)遇到證書(shū)問(wèn)題導(dǎo)致無(wú)法下載肖粮,在末尾加入--no-check-certificate
#完整命令
wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz --no-check-certificate*
開(kāi)始安裝nginx
#下載
wget https://nginx.org/download/nginx-1.15.9.tar.gz
tar -xvf nginx-1.15.9.tar.gz
cd nginx-1.15.9
#編譯安裝
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.42
make && make install
#查看版本
/usr/local/webserver/nginx/sbin/nginx -v
在 /usr/local/webserver/nginx/sbin/ 這個(gè)路徑下會(huì)出現(xiàn)nginx執(zhí)行程序,在該目錄下可以使用nginx命令表示安裝成功
環(huán)境變量
vim /etc/profile
#添加到配置中
export PATH=$PATH:/usr/local/webserver/nginx/sbin/
在任何位置都可以對(duì)nginx進(jìn)行啟動(dòng)、重啟目派、停止然低。
nginx 配置
#創(chuàng)建 Nginx 運(yùn)行使用的用戶 www
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
#設(shè)置包含多個(gè)配置文件,在nginx.conf底部添加
include vhost/*.conf;
#nginx基本指令
nginx #啟動(dòng)
nginx -s reload # 重新載入配置文件
nginx -s reopen # 重啟 Nginx
nginx -s stop # 停止 Nginx
nginx -t # 修改配置后掷伙,可以通過(guò)下面的命令測(cè)試是否有語(yǔ)法錯(cuò)誤
# /usr/local/webserver/nginx/conf/vhost/demo.tilesrow.com.conf
默認(rèn)配置說(shuō)明
#user nobody;
##定義擁有和運(yùn)行Nginx服務(wù)的Linux系統(tǒng)用戶
worker_processes 1;
##定義單進(jìn)程是己。通常將其設(shè)成CPU的個(gè)數(shù)或者內(nèi)核數(shù)
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
##定義Nginx在哪里打日志
#pid logs/nginx.pid;
##Nginx寫入主進(jìn)程ID(PID)
events {
worker_connections 1024;
##通過(guò)worker_connections和worker_processes計(jì)算maxclients。
##max_clients = worker_processes * worker_connections
}
http {
include mime.types;
##在/opt/nginx/conf/mime.types寫的配置將在http模塊中解析
default_type application/octet-stream;
#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 logs/access.log main;
sendfile on;
##如果是為了獲取本地存儲(chǔ)的靜態(tài)化文件任柜,sendfile可以加速服務(wù)端卒废,但是如果是反向代理,那么該功能就失效了宙地。
#tcp_nopush on;
##在 nginx 中摔认,tcp_nopush 配置和 tcp_nodelay "互斥"。它可以配置一次發(fā)送數(shù)據(jù)的包大小宅粥。也就是說(shuō)参袱,它不是按時(shí)間累計(jì) 0.2 秒后發(fā)送包,而是當(dāng)包累計(jì)到一定大小后就發(fā)送。在 nginx 中抹蚀,tcp_nopush 必須和sendfile 搭配使用剿牺。
#keepalive_timeout 0;
keepalive_timeout 65;
##設(shè)置保持客戶端連接時(shí)間
#gzip on;
##告訴服務(wù)端用gzip壓縮
server {
##如果你想對(duì)虛擬主機(jī)進(jìn)行配置,可以在單獨(dú)的文件中配置server模塊环壤,然后include進(jìn)來(lái)
listen 80;
##告訴Nginx TCP端口晒来,監(jiān)聽(tīng)HTTP連接。listen 80; 和 listen *:80;是一樣的
server_name localhost;
##定義虛擬主機(jī)的名字
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
##location模塊可以配置nginx如何反應(yīng)資源請(qǐng)求
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
include vhost/*.conf;
}
整體模塊如下
#全局模塊
events {
#events模塊
}
http
{
#http全局模塊
server
{
#server全局模塊
location [PATTERN]{
#location模塊
}
}
}
1镐捧、全局塊:配置影響nginx全局的指令潜索。一般有運(yùn)行nginx服務(wù)器的用戶組,nginx進(jìn)程pid存放路徑懂酱,日志存放路徑竹习,配置文件引入,允許生成worker process數(shù)等列牺。
2整陌、events塊:配置影響nginx服務(wù)器或與用戶的網(wǎng)絡(luò)連接。有每個(gè)進(jìn)程的最大連接數(shù)瞎领,選取哪種事件驅(qū)動(dòng)模型處理連接請(qǐng)求泌辫,是否允許同時(shí)接受多個(gè)網(wǎng)路連接,開(kāi)啟多個(gè)網(wǎng)絡(luò)連接序列化等九默。
3震放、http塊:可以嵌套多個(gè)server,配置代理驼修,緩存殿遂,日志定義等絕大多數(shù)功能和第三方模塊的配置。如文件引入乙各,mime-type定義墨礁,日志自定義,是否使用sendfile傳輸文件耳峦,連接超時(shí)時(shí)間恩静,單連接請(qǐng)求數(shù)等。
4蹲坷、server塊:配置虛擬主機(jī)的相關(guān)參數(shù)驶乾,一個(gè)http中可以有多個(gè)server。
5循签、location塊:配置請(qǐng)求的路由轻掩,以及各種頁(yè)面的處理情況。
希望以上內(nèi)容對(duì)大家有所幫助懦底。
內(nèi)容參考以下兩位老師:
http://www.reibang.com/p/734ef8e5a712
http://www.reibang.com/p/97cdbeebef96