CentOS 7下安裝部署nginx
一、 Nginx 簡介
Nginx 是由俄羅斯軟體工程師 Igor Sysoev 開發的一個高效能的 HTTP 和反向代理伺服器,具備 IMAP/POP3 和 SMTP 伺服器功能。
作為 Web 伺服器:相比較與 Apache, Nginx 使用更少的資源,支援更多的併發連線,體現更高的效率,這點使 Nginx 尤為受到虛擬主機提供商的歡迎,能夠支援高達 50000 個併發的連線數的響應。
作為負載均衡伺服器: Nginx 既可以在內部直接支援 Rails 和 PHP,也可以支援作為 HTTP代理伺服器對外驚醒服務, Nginx 用 C 語言編寫,不論是系統資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。
作為郵件代理伺服器: Nginx 同時也是一個非常優秀的郵件代理伺服器。(最早開發這個產品的目的之一也是作為郵件代理伺服器)
二、CentOS 7下安裝部署
配置epel yum 源
wget https://dl.Fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh epel-release-latest-7.noarch.rpm
yum install nginx -y
檢視確認 是否安裝
[[email protected] ~]# rpm -qa | grep nginx nginx-1.10.2-1.el7.x86_64 nginx-mod-stream-1.10.2-1.el7.x86_64 nginx-mod-http-geoip-1.10.2-1.el7.x86_64 nginx-all-modules-1.10.2-1.el7.noarch nginx-mod-http-perl-1.10.2-1.el7.x86_64 nginx-mod-http-image-filter-1.10.2-1.el7.x86_64 nginx-mod-mail-1.10.2-1.el7.x86_64 nginx-filesystem-1.10.2-1.el7.noarch nginx-mod-http-xslt-filter-1.10.2-1.el7.x86_64
檢視 安裝nginx 所生成的檔案
[[email protected] ~]# rpm -ql nginx /etc/logrotate.d/nginx /etc/nginx/fastcgi.conf /etc/nginx/fastcgi.conf.default /etc/nginx/fastcgi_params /etc/nginx/fastcgi_params.default /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/mime.types /etc/nginx/mime.types.default /etc/nginx/nginx.conf /etc/nginx/nginx.conf.default /etc/nginx/scgi_params /etc/nginx/scgi_params.default /etc/nginx/uwsgi_params /etc/nginx/uwsgi_params.default /etc/nginx/win-utf /usr/bin/nginx-upgrade /usr/lib/systemd/system/nginx.service /usr/lib64/nginx/modules /usr/sbin/nginx /usr/share/doc/nginx-1.10.2 /usr/share/doc/nginx-1.10.2/CHANGES /usr/share/doc/nginx-1.10.2/README /usr/share/doc/nginx-1.10.2/README.dynamic /usr/share/doc/nginx-1.10.2/UPGRADE-NOTES-1.6-to-1.10 /usr/share/licenses/nginx-1.10.2 /usr/share/licenses/nginx-1.10.2/LICENSE /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx-upgrade.8.gz /usr/share/man/man8/nginx.8.gz /usr/share/nginx/html/404.html /usr/share/nginx/html/50x.html /usr/share/nginx/html/index.html /usr/share/nginx/html/nginx-logo.png /usr/share/nginx/html/poweredby.png /usr/share/vim/vimfiles/ftdetect/nginx.vim /usr/share/vim/vimfiles/indent/nginx.vim /usr/share/vim/vimfiles/syntax/nginx.vim /var/lib/nginx /var/lib/nginx/tmp /var/log/nginx
三、測試nginx
#啟動nginx
systemctl start nginx
#設定開機啟動
systemctl enable nginx
#強制關閉nginx
pkill -9 nginx
#檢視nginx 啟動狀態
systemctl status nginx
#檢視是否監聽
ss -tnl | grep 80
LISTEN 0 128 *:80 *:*
LISTEN 0 128 :::80 :::*
測試 nginx
在瀏覽器中輸入 nginx 伺服器的ip 地址
備註:如果不能正常訪問,關閉防火牆
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
firewall-cmd --state #檢視預設防火牆狀態(關閉後顯示notrunning,開啟後顯示running)
四、nginx 的配置檔案說明
配置檔案路徑 /etc/nginx/nginx.conf
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
#啟動程序,通常設定成和 cpu 的數量相等
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
#單個後臺 worker process 程序的最大併發連結數
# 併發總數是 worker_processes 和 worker_connections 的乘積
# 即 max_clients = worker_processes * worker_connections
# 在設定了反向代理的情況下, max_clients = worker_processes * worker_connections / 4
# 為什麼上面反向代理要除以 4,應該說是一個經驗值
# 根據以上條件,正常情況下的 Nginx Server 可以應付的最大連線數為: 4 * 8000 = 32000
# worker_connections 值的設定跟實體記憶體大小有關
# 因為併發受 IO 約束, max_clients 的值須小於系統可以開啟的最大檔案數
# 而系統可以開啟的最大檔案數和記憶體大小成正比,一般 1GB 記憶體的機器上可以開啟的檔案數大約是10 萬左右
# 我們來看看 360M 記憶體的 VPS 可以開啟的檔案控制代碼數是多少:
# $ cat /proc/sys/fs/file-max
# 輸出 34336
# 32000 < 34336,即併發連線總數小於系統可以開啟的檔案控制代碼總數,這樣就在作業系統可以承受
# 的範圍之內
# 所以, worker_connections 的值需根據 worker_processes 程序數目和系統可以開啟的最大文
# 件總數進行適當地進行設定
# 使得併發總數小於作業系統可以開啟的最大檔案數目
# 其實質也就是根據主機的物理 CPU 和記憶體進行配置
# 當然,理論上的併發總數可能會和實際有所偏差,因為主機還有其他的工作程序需要消耗系統資源。
}
http {
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;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
upstream mycluster{
#負載均衡配置
#叢集有幾臺伺服器即可配置幾臺,weight表示權重,權重越大被訪問到的機率越大
#這裡新增的是上面啟動好的兩臺Tomcat伺服器
server 192.168.8.225:8080 weight=50;
server 192.168.8.231:8080 weight=50;
#nginx的upstream目前支援4種方式的分配
#1、輪詢(預設)
#每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。
#2、weight
#指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。
#例如:
#upstream bakend {
# server 192.168.0.14 weight=10;
# server 192.168.0.15 weight=10;
#}
#2、ip_hash
#每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決session的問題。
#例如:
#upstream bakend {
# ip_hash;
# server 192.168.0.14:88;
# server 192.168.0.15:80;
#}
#3、fair(第三方)
#按後端伺服器的響應時間來分配請求,響應時間短的優先分配。
#upstream backend {
# server server1;
# server server2;
# fair;
#}
#4、url_hash(第三方)
#按訪問url的hash結果來分配請求,使每個url定向到同一個後端伺服器,後端伺服器為快取時比較有效。
#例:在upstream中加入hash語句,server語句中不能寫入weight等其他的引數,hash_method是使用的hash演算法
#upstream backend {
# server squid1:3128;
# server squid2:3128;
# hash $request_uri;
# hash_method crc32;
#}
#tips:
#upstream bakend{#定義負載均衡裝置的Ip及裝置狀態}{
# ip_hash;
# server 127.0.0.1:9090 down;
# server 127.0.0.1:8080 weight=2;
# server 127.0.0.1:6060;
# server 127.0.0.1:7070 backup;
#}
#在需要使用負載均衡的server中增加 proxy_pass http://bakend/;
#每個裝置的狀態設定為:
#1.down表示單前的server暫時不參與負載
#2.weight為weight越大,負載的權重就越大。
#3.max_fails:允許請求失敗的次數預設為1.當超過最大次數時,返回proxy_next_upstream模組定義的錯誤
#4.fail_timeout:max_fails次失敗後,暫停的時間。
#5.backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這臺機器壓力會最輕。
#nginx支援同時設定多組的負載均衡,用來給不用的server來使用。
#client_body_in_file_only設定為On 可以講client post過來的資料記錄到檔案中用來做debug
#client_body_temp_path設定記錄檔案的目錄 可以設定最多3層目錄
#location對URL進行匹配.可以進行重定向或者進行新的代理 負載均衡
}
server {
#設定虛擬主機配置
listen 80 default_server;
#偵聽 80 埠
listen [::]:80 default_server;
server_name 192.168.8.221;
#可以用IP也可以用域名,域名可以有多個,用空格隔開
charset utf-8;
# root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://mycluster;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
# Settings for a TLS enabled server.
#
# server {
# listen 443 ssl http2 default_server;
# listen [::]:443 ssl http2 default_server;
# server_name _;
# root /usr/share/nginx/html;
#
# ssl_certificate "/etc/pki/nginx/server.crt";
# ssl_certificate_key "/etc/pki/nginx/private/server.key";
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 10m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# location / {
# }
#
# error_page 404 /404.html;
# location = /40x.html {
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
}
相關推薦
CentOS 7下安裝部署nginx
一、 Nginx 簡介 Nginx 是由俄羅斯軟體工程師 Igor Sysoev 開發的一個高效能的 HTTP 和反向代理伺服器,具備 IMAP/POP3 和 SMTP 伺服器功能。 作為 Web 伺服器:相比較與 Apache, Nginx 使用更少的資源,支援更多的併發連
CentOS 7下安裝部署Zabbix3.4
zabbix zabbix3.4 centos7 Zabbix安裝: 環境: 系統環境:CentOS 7Zabbix版本:Zabbix 3.4 安裝步驟: 關閉防火墻和SELINUXsystemctl stop firewalld && setenforce 0 安裝zabb
CentOS 7 下安裝 Nginx
表達 dev 默認 tro 二次 編譯 stc style idc CentOS 7 下安裝 Nginx [日期:2016-09-05] 來源:Linux社區 作者:mafly [字體:大 中 小] 轉載:http://www.linu
centos 7 下安裝nginx-1.15.7
安裝所需環境 Nginx 是 C語言 開發,建議在 Linux 上執行,當然,也可以安裝 Windows 版本,本篇則使用 CentOS 7 作為安裝環境。 一. gcc 安裝安裝 nginx 需要先將官網下載的原始碼進行編譯,編譯依賴 gcc 環境,如果沒有 gcc 環境,則需要安裝
Centos 7下安裝nginx
1 nginx安裝環境 nginx是C語言開發,建議在linux上執行,本教程使用Centos7作為安裝環境。 1. 安裝gcc 安裝nginx需要先將官網下載的原始碼進行編譯,編譯依賴gcc環境,如果沒有gcc環境, 需要安裝gcc:y
CentOS 7下安裝使用Github
git push 文件 rep ica not 使用 管理系統 非root oba 在虛擬機安裝了QT以後,想把工程代碼放在版本管理系統軟件裏面,免得一遍遍創建checkpoint麻煩的要死。又因為虛擬機跟物理機數據很難交互,只好借助github了。搜了搜安裝配置方法,記錄
centos 7 下安裝Matplotlib
matplotlib[[email protected]/* */ bin]# [[email protected]/* */ bin]# [[email protected]/* */ bin]# [[email protected]/* */ bin]# p
Centos 7 下安裝 samba 服務
創建 oba art man rect 匿名訪問 登陸 sys 工作站 yum install samba 配置文件在:/etc/samba/smb.conf [global] #添加下面這句 map to guest = Bad User #這個選項是保證匿名
Centos 7 下安裝強大的視頻播放器Smplayer
mplayer sha lease 如果 是否 mpeg yum 因此 .com Centos雖然 默認帶有視頻播放器,但特別垃圾,幾乎所有格式的視頻都不能打開,也下載不了解碼庫,因此為你的電腦安裝一個強大的視頻播放器顯得有為重要,這裏推薦的是Smplayer 第一步 :
CentOS 7下安裝Python3.6.4
編譯 python str CA 目錄 wget gdbm grep www. CentOS 7下安裝Python3.6.4 •安裝python3.6可能使用的依賴 yum install -y openssl-devel bzip2-devel expat-
Centos 7下安裝Docker並采用加速器進行鏡像下載加速
docker 安裝 docker拉取鏡像慢 系統版本:[root@c720120 _data]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) 在Centos 7上安裝Docker$sudo yum u pdate$sudo
centos7 下 安裝部署nginx
res install pack conf pms 就會 service 根目錄 http centos7 下 安裝部署nginx 1.nginx安裝依賴於三個包,註意安裝順序 a.SSL功能需要openssl庫,直接通過yum安裝: #yum install
centos 7下安裝pycharm專業版
targe ofo get 添加 count host blank target har 1.下載pycharm的linux版本的軟件包,下載地址: http://www.jetbrains.com/pycharm/download/#section=linux 2.解壓
Centos 7下安裝Oracle 12c 以及裝後優化(附軟件包)
strong 當前 unix kernel immediate .so 大數 相等 圖形化 Oracle 12c 數據庫概述 ORACLE數據庫系統是美國ORACLE公司(甲骨文)提供的以分布式數據庫為核心的一組軟件產品,是目前最流行的客戶/服務器(CLIENT/SERV
centos 7下安裝tomcat
準備工作,啟動centos 7 並且使用xshell 連線好centos7 1、在網上查詢到tomcat,點選右鍵複製連線,如圖所示: 2、在urs目錄下下載tomcat,命令為: wget http://mirrors.hust.edu.cn/apache
CentOS 7下安裝Python3.6
•安裝python3.6可能使用的依賴 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel •到python官網找到下載路徑, 用wget下載 wget http
CentOS 7.2 安裝部署 Ceph 及新增 PG
前期準備:準備三臺CentOS 7.2系統,每臺機器三塊硬碟,關閉selinux,關閉iptables,做好時間同步,做好本地域名解析,並對每臺機器做互信。192.168.10.101 ceph-node1192.168.10.22 ceph-node2192.168.10.33 ceph-node3每臺機器
CentOS 7.2 安裝部署 Ceph 及添加 PG
狀況 告警 通過 健康狀況 pub sort network check 多文件 前期準備:準備三臺CentOS 7.2系統,每臺機器三塊硬盤,關閉selinux,關閉iptables,做好時間同步,做好本地域名解析,並對每臺機器做互信。192.168.10.101 ce
CentOS 7下安裝nexus 3
安裝nexus 3的幾個注意事項: 1、nexus 3和nexus 2不一樣,nexus 2可以搜尋Maven主倉庫的包,但在nexus 3不能,只能搜尋快取過的包。 2、安裝時關心的點在於執行環境,倉庫地址修改,執行使用者,JVM引數 下面是安裝步驟: 1、執行環境為Java 8,很多網上說要Mav
Centos 7.5安裝部署redis 5.0.0集群
per 追加 onf redis3 分享圖片 c-c 防火墻 conf tcp Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。和Memcached類似,但它支持存儲的value類型相