實驗環境javascript
OS: debian_version_8.11 64位 CPU: Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz Mem: 8GB Kernel: 3.16.0-10-amd64 Nginx: nginx-1.15.12
簡要說明php
一、安裝包內網中已下載好,此文檔中不演示 二、全部的源碼包都在/apps/apps_src/ 三、全部的服務安裝路徑都在/apps/xxxxx
編譯安裝過程
一、安裝相關依賴包css
apt update && apt -y install gcc make zlib1g* libssl-dev libpcre+*
二、解壓縮下載包html
tar zxvf nginx-1.15.12 && cd nginx-1.15.12
三、建立運行nginx的用戶java
groupadd -r -g 200 nginx useradd -r -g 200 -u 200 -s /bin/false -d /dev/null -M nginx
四、查看可編譯的選項node
./configure --help
五、配置選項linux
./configure \ --prefix=/apps/nginx \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/apps/nginx/logs/error.log \ --http-log-path=/apps/nginx/logs/access.log \ --pid-path=/apps/nginx/run/nginx.pid \ --lock-path=/apps/nginx/lock/nginx.lock \ --http-client-body-temp-path=/apps/nginx/tmp/client \ --http-proxy-temp-path=/apps/nginx/tmp/proxy \ --http-fastcgi-temp-path=/apps/nginx/tmp/fastcgi \ --user=nginx --group=nginx \ --with-poll_module --with-threads \ --with-file-aio --with-pcre \ --with-http_realip_module \ --with-http_ssl_module \ --with-http_sub_module \ --with-http_dav_module \ --with-http_gunzip_module \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_mp4_module 2> ../nginx-1.15.12-configure.err
configure命令的做用是檢測系統環境,配置nginx設置,最後成功後會生成Makefile文件。nginx
六、編譯web
make -j 4 2> ../nginx-1.15.12-make.err
make是把剛生成的Makefile文件中的指令編譯成計算機識別的二進制文件瀏覽器
七、安裝
make -j 4 install 2> ../nginx-1.15.12-install.err
八、配置全局變量
echo "export PATH=$PATH:/apps/nginx/sbin" >> /etc/profile.d/nginx.sh source /etc/profile.d/nginx.sh
九、進入安裝目錄檢查目錄建立缺乏目錄
mkdir -v /apps/nginx/{lock,tmp}
十、修改nginx配置文件 /etc/nginx/nginx.conf
worker_processes 4; #nginx進程數, 一般設置爲和CPU核數同樣 pid /apps/nginx/run/nginx.pid; use epoll; #多路複用IO中的一種方式,可提升nginx性能。僅適用於linux2.6以上內核 worker_connections 1024; #單個後臺worker_processes進程的最大併發鏈接數,系統優化後可調整 server_tokens off; #隱藏響應header和錯誤(404等)通知中的版本號 sendfile on; #開啓高效傳輸模式 tcp_nopush on; #減小網絡報文段的數量 tcp_nodelay on; #內核會等待將更多的字節組成一個數據包,從而提升I/O性能 gzip on; #開啓壓縮功能 gzip_min_length 1k; #容許壓縮的頁面最小字節,建議大於1k,若是小於1k可能會越壓越大 gzip_types text/plain application/x-javascript text/css application/xml; #指定「text/html」類型老是會被壓縮 #如下參數是爲了改善網站性能,減小資源佔用,提升訪問速度 fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; listen 192.168.1.146:80; #修改監聽本機內網地址(此處舉例) server_name host12.i.super.org; #修改name,若是有域名解析能夠設置主機名(此處舉例) location / { root html; index index.php index.html index.htm; #新增index.php } location ~ \.php$ { root html; #網站的根目錄 fastcgi_pass 127.0.0.1:9000; #經過fastcgi接口將請求發送給這個IP fastcgi_index index.php; #設置首頁 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #在瀏覽器中訪問.php的文件時,實際讀取的是$document_root(網站根目錄)下的.php文件 include fastcgi_params; } #如下參數爲設定查看nginx狀態的地址 location /nginx_status { stub_status on; access_log off; }
十一、檢測nginx配置文件是否有錯誤
nginx -t #執行結果以下 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
十二、啓動/關閉/重載nginx服務
/apps/nginx/sbin/nginx /apps/nginx/sbin/nginx -s stop #關閉 /apps/nginx/sbin/nginx -s reload #從新加載 /apps/nginx/sbin/nginx -h #查看幫助
1三、編寫nginx服務腳本加入systemd服務 /etc/systemd/system/nginx.service
[Unit] Description=A high performance web server and a reverse proxy server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/apps/nginx/run/nginx.pid ExecStart=/apps/nginx/sbin/nginx -c /etc/nginx/nginx.conf ExecReload=/apps/nginx/sbin/nginx -s reload ExecStop=/apps/nginx/sbin/nginx -s stop TimeoutStopSec=5 [Install] WantedBy=multi-user.target #按 Esc 鍵退出編輯模式,輸入 :wq 保存並關閉nginx.service文件。 chmod 754 /etc/systemd/system/nginx.service systemctl start nginx && systemctl enable nginx