1. 程式人生 > >CentOS 7下安裝部署nginx

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類型相