Centos7下nginx服務器搭建

linux-nginx服務器搭建

  • 簡介:

    • Nginx相對於Apache的優勢:
    1.輕量級,採用C進行編寫,同樣的web服務,會佔用更少的內存及資源
    2.抗併發,nginx以epoll and kqueue作爲開發模型,處理請求是異步非阻塞的,多個連接對應一個進程,負載能力比apache高很多,
      而apache則是同步多進程模型,只能一個連接對應一個進程,當壓力過大時,它是會被阻塞型的。
      在高併發下nginx能保持低資源低消耗高性能 ,而apache在PHP處理慢或者前端壓力很大的情況下,很容易出現進程數飆升,從而拒絕服務的現象。
    3.設計高度模塊化,編寫模塊相對簡單
    4.配置簡潔,正則配置讓很多事情變得簡單,而且改完配置能使用 -t 測試配置有沒有問題,apache 配置複雜 ,重啓的時候發現配置出錯了,會很崩潰
    5.一般用於處理靜態文件,靜態處理性能比apache高三倍以上
    6.作爲負載均衡服務器,支持7層負載均衡
    7.本身就是一個反向代理服務器,而且可以作爲非常優秀的郵件代理服務器
    8.nginx啓動特別容易, 並且幾乎可以做到 7*24 不間斷運行,即使運行數個月也不需要重新啓動,
      支持熱部署,比如:實現不間斷服務的情況下進行軟件版本的升級與版本的回退
    9.社區活躍,各種高性能模塊出品迅速
    
    • Apache相對於Nginx的優勢:
    1.apache的rewrite比nginx強大,在rewrite頻繁的情況下,用apache
    2.apache發展到現在,模塊超多,基本想到的都可以找到
    3.apache更爲成熟,少bug ,nginx的bug相對較多
    4.apache超穩定,一個進程死掉時,會影響到多個用戶的使用,穩定性差
    5.apache對PHP支持比較簡單,nginx需要配合其他後端用
    6.apache在處理動態請求有優勢,nginx在這方面是雞肋,一般動態請求要apache去做,nginx適合靜態和反向。
    7.apache仍然是目前的主流,擁有豐富的特性,成熟的技術和開發社區
    
    • 總結
    兩者最核心的區別在於:
    Apache是同步多進程模型,一個連接對應一個進程,而Nginx是異步的,多個連接(萬級別)可以對應一個進程。
    
    • 使用場景
    一般來說,需要性能的web服務,用Nginx;如果不需要性能只求穩定,更考慮Apache;
    Nginx處理放靜態內容比Apache要好,特別是在可承受壓力、帶寬及資源消耗上都要優於Apache。
    所以更爲通用的方案是,前端Nginx抗併發,後端Apache集羣,配合起來會更好。
    

1.安裝nginx

  1. 檢查網絡環境,查看服務器是否可以上網貴

  2. Centos7配置阿里雲yum源和安裝EPEL源

    1. 對默認原文件進行備份

      #cd /etc/yum.repos.d
      #mkdir bak
      #mv *.repo bak/
      
    2. 配置阿里雲yum源:

      #wget http://mirrors.aliyun.com/repo/Centos-7.repo
      #yum clean all
      #yum makecache
      
    3. 安裝EPEL源:

      #yum install -y epel-release
      
  3. 安裝nginx並配置服務:

    1. 安裝nginx服務:

      #yum install nginx
      
    2. 主配置文件:vim /etc/nginx/nginx.conf

    3. 默認目錄:/usr/share/nginx/html

    4. 日誌文件:

      error_log /var/log/nginx/error.log;
      error_log /var/log/nginx/access.log
      
    5. 日誌格式分析

      安全加固:https://www.cnblogs.com/xiaozi/p/10119062.html
      
  4. 修改nginx配置文件:

    #vim /etc/nginx/nginx.conf
    在文件最後一個}號前添加:
    include vhost/*.conf;
    
  5. 在/etc/nginx目錄下新建vhost目錄,並在下面新建www.test.conf

    # cd /etc/nginx
    # mkdir vhost
    # vim vhost/www.test.conf
    
    • www.test.conf文件寫入的內容:
    server{
            listen 192.168.75.128:80;
            server_name www.test.com;
            location / {
                    root /data/test;
                    index index.html;
    }
    }
    
  6. 將網站文件test拷貝到/data/目錄下

  7. 查看www.test.conf配置文件是否出錯:nginx -t

  8. 重啓服務:systemctl restart nginx

  9. 關閉防火牆:systemctl stop firewalld

  10. 關閉selinux安全機制:setenforce 0

  11. 基於域名的虛擬主機:

    # vim /etc/hosts
    添加:
    192.168.75.128 www.test.com
    
    192.168.75.128:虛擬機ip地址
    
  12. 訪問測試:瀏覽器測試:www.test.com

  13. 不能訪問:

    1. 看看80端口是否被其它服務佔用

      1. lsof -i 80
        netstat -tunlp
        
      2. 如果被佔用:

        kill -9 PID
        
    2. hosts:域名註冊是否成功:ping www.test.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章