1.Nginx安裝
nginx 簡介
nginx因具有高併發(特別是靜態資源)、佔用系統資源少等,且功能豐富
在功能應用方面,nginx不但是一個優秀的web服務軟體,還具有反向代理負載均衡和快取服務功能,在反向代理、負載均衡方面,它類似於大名鼎鼎的LVS負載均衡及HAPROXY等專業代理軟體,但是NGINX部署起來更方便,在快取服務功能方面,它又類似於Squid等專業的快取服務軟體
總結一下nginx的幾大功能:
- www web服務
- 負載均衡(也可以叫做反向代理,也可以叫做proxy)
- web 快取(相當於squid,CDN主要使用squid)
nginx版本選擇
nginx的軟體有三種版本,穩定版、開發版、及歷史穩定版
選擇標準如下:
- 開發版更新快,新功能多,但bug多
- 穩定版的更新很慢,但是bug較少,可以做為企業生產環境的首選。
但是在實際工作中,儘量避免使用最新的穩定版,應該選擇比已出版本來的最新版本晚6-10個月的版本比較好
官網的解釋是這樣的:
- Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以說是開發版
- Stable version:最新穩定版,生產環境上建議使用的版本
- Legacy versions:遺留的老版本的穩定版
nginx 安裝之RPM安裝
關於使用rpm還是原始碼安裝nginx的思考
rpm安裝極為簡單,下載一個yum源,然後yum install即可
原始碼最大的好處就是可以定製模組,並可以在安裝過後重新編譯增加新模組。
而rpm則不行,這也是一大劣勢
我們這裡還是選擇rpm安裝,因為rpm安裝主要的包其實已經安裝好了,也就基本夠我們使用了
進入官網
右側欄選擇download,那麼你就看到了最近的nginx版本
也看到了nginx 的幾種安裝方式,有原始碼安裝,還有rpm安裝,我們選擇rpm安裝
nginx之所以強大,是因為它具有眾多的功能模組,rpm安裝不能定製化安裝你需要的功能模組,但是一般的都已經新增了
按照官網:
[root@bogon ~]# cat /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
gpgcheck=0
enabled=1
之後
yum install -y nginx
Installed:
nginx.x86_64 1:1.12.2-1.el7_4.ngx
至此nginx 安裝完畢
rpm 安裝之後 nginx 簡單命令
nginx 命令檢視
nginx -h
檢視命令,或者man nginxnginx 啟動
直接輸入nginxnginx 檢查配置檔案有無錯誤
nginx -t
在啟動或者重啟nginx之前一定要nginx -t
檢查配置檔案
- nginx 關閉
nginx -s stop 關閉
nginx -s reload 重啟
- nginx 預設啟動 80埠
[root@bogon ~]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 11887 root 6u IPv4 1168066 0t0 TCP *:http (LISTEN)
nginx 11888 nginx 6u IPv4 1168066 0t0 TCP *:http (LISTEN)
- 使用curl 命令檢查
[root@bogon ~]# curl 127.0.0.1
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
rpm 安裝 nginx 主要配置檔案
[root@bogon opt]# rpm -ql nginx
/etc/logrotate.d/nginx #Nginx 日誌輪轉,用於logrotate服務的日誌切割
/etc/nginx
/etc/nginx/conf.d #主配置檔案目錄
/etc/nginx/conf.d/default.conf #主配置檔案
/etc/nginx/fastcgi_params
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/modules #nginx 模組目錄
/etc/nginx/nginx.conf
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/etc/nginx/win-utf
/etc/sysconfig/nginx
/etc/sysconfig/nginx-debug
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx
/usr/lib64/nginx/modules #nginx 模組目錄
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx #nginx 啟動程式
/usr/sbin/nginx-debug #nginx 啟動程式
/usr/share/doc/nginx-1.12.2 #幫助手冊等
/usr/share/doc/nginx-1.12.2/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx #nginx 快取目錄
/var/log/nginx #nginx 日誌目錄
rpm 安裝的nginx的模組
nginx之所以強大,是因為它具有眾多的功能模組
nginx -V 可以看出你rpm編譯時使用了哪些引數,但是注意這是不全的,因為有一些模組是預設安裝的,rpm安裝nginx有一個不好的地方就是不能夠再次新增新module了
[root@bogon ~]# nginx -V
nginx version: nginx/1.12.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx
--modules-path=/usr/lib64/nginx/modules
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--pid-path=/var/run/nginx.pid
--lock-path=/var/run/nginx.lock
--http-client-body-temp-path=/var/cache/nginx/client_temp
--http-proxy-temp-path=/var/cache/nginx/proxy_temp
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
--http-scgi-temp-path=/var/cache/nginx/scgi_temp
--user=nginx --group=nginx --with-compat --with-file-aio
--with-threads --with-http_addition_module
--with-http_auth_request_module
--with-http_dav_module
--with-http_flv_module
--with-http_gunzip_module
--with-http_gzip_static_module
--with-http_mp4_module
--with-http_random_index_module
--with-http_realip_module
--with-http_secure_link_module
--with-http_slice_module
--with-http_ssl_module
--with-http_stub_status_module
--with-http_sub_module
--with-http_v2_module
--with-mail
--with-mail_ssl_module
--with-stream
--with-stream_realip_module
--with-stream_ssl_module
--with-stream_ssl_preread_module
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
nginx 配置檔案詳解
[root@bogon ~]# cat /etc/nginx/nginx.conf
user nginx; #nginx服務的系統使用使用者
worker_processes 1; #worker程式的數量
error_log /var/log/nginx/error.log warn; #nginx的錯誤日誌
pid /var/run/nginx.pid; #nginx服務啟動時的pid檔案
---以上叫做nginx 的核心區---
events {
worker_connections 1024; #每個worker程式支援的最大連線數
}
---以上叫做events區-------
http {
include /etc/nginx/mime.types;
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 /var/log/nginx/access.log main;
sendfile on; #開啟高效傳輸模式
#tcp_nopush on;
keepalive_timeout 65; #連線超時
#gzip on;
include /etc/nginx/conf.d/*.conf; #這個意思就是我們可以在這個目錄下面寫很多nginx 的配置檔案,nginx 會先讀/etc/nginx/nginx.conf 主配置檔案,再去讀這個目錄下的配置檔案。
}
----以上是nginx http核心模組區域,裡面可以巢狀server虛擬主機---
配置調優
work_process 8
一般來說擁有幾個邏輯cpu,work_process 就設定為幾
nginx doesn't benefit from more than one worker per CPU.
但是worker_processes最多開啟8個,8個以上效能提升不會再提升了,而且穩定性變得更低,所以8個程式夠用了。
配置完畢後,重啟nginx ,執行/etc/init.d/nginx restart
我們的cpu核數是32個,所以我們就設定個最大值8就可以了
在伺服器上執行top,然後按1,就可以看到CPU核心的工作情況。如果多個CPU核心的利用率都相差不多,證明nginx己經成功的利用了多核CPU。
worker_connections 10000;
這個一般在做企業調優時是必須要改的一個引數
這個一般調節到10000個左右就可以滿足企業需求了,最大應該可以到65535
理論上每臺nginx伺服器的最大連線數為
worker_processes*worker_connections
相關文章
- codis安裝 (java 安裝 + zookeeper 安裝 + go 安裝 + codis 安裝JavaGo
- 安裝npm 解除安裝npm 安裝apidocNPMAPI
- mysql安裝 (yum 安裝)MySql
- MMM安裝、MHA安裝
- mysql安裝------RPM包安裝及解除安裝MySql
- oracle安裝:OUI安裝Oracle(圖形介面安裝)OracleUI
- ffmpeg安裝之mac安裝Mac
- docker安裝及解除安裝Docker
- 02 安裝git、安裝TortoiseGitGit
- Ubuntu解除安裝和安裝Ubuntu
- Orace RAC安裝-DNS安裝DNS
- caffe安裝系列——安裝OpenCVOpenCV
- SPARK 安裝之scala 安裝Spark
- mac 安裝opencv homebrew安裝MacOpenCV
- Oracle 安裝與解除安裝Oracle
- solaris mysql 安裝 解除安裝MySql
- BiocManager安裝,devtools安裝dev
- JDK安裝和解除安裝JDK
- 安裝HomeBrew提示已安裝並無法解除安裝
- SQL Server 2012 安裝——安裝 OR 解除安裝SQLServer
- win10安裝版怎麼安裝_安裝版win10安裝教程Win10
- mysql安裝-----二進位制包安裝及解除安裝MySql
- cocoapods安裝/解除安裝/使用
- Mac Redis安裝與解除安裝MacRedis
- [ 安裝 ] Zeppelin安裝步驟!
- Ubuntu安裝和解除安裝mongodbUbuntuMongoDB
- linux 安裝yum 安裝phpLinuxPHP
- [雲原生]Docker - 安裝&解除安裝Docker
- JDK的安裝與解除安裝JDK
- selenium 安裝與 chromedriver安裝Chrome
- ORACLE TEXT安裝與解除安裝Oracle
- Centos 安裝yum,安裝ansibleCentOS
- zabbix安裝—–nginx安裝和配置Nginx
- LAMP原始碼安裝+wordpress安裝LAMP原始碼
- mysql非安裝包安裝教程MySql
- kratos安裝及依賴安裝
- Linux安裝解除安裝MySQLLinuxMySql
- MySQL 5.7 原始碼安裝、Yum倉庫安裝、RPM安裝、二進位制安裝MySql原始碼