CentOS 7.2安裝Nginx 1.10.2的詳細教程_Linux

來源:互聯網
上載者:User

一、使用Yum安裝(推薦)

使用Yum安裝是推薦的方式,整體的流程非常的簡單,也不容易出錯,如果不需要什麼特殊配置,建議使用Yum盡進行安裝。

1、安裝epel-release源並進行安裝

yum install epel-releaseyum updateyum install nginx

2、執行相關的應用操作

systemctl start nginx #啟動systemctl stop nginx #停止systemctl restart nginx #重啟systemctl status nginx #查看運行狀態systemctl enable nginx #開機啟動

3、設定防火牆

在啟動完以後可能無法通過IP訪問,需要進一步設定防火牆

firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=httpsfirewall-cmd --reload

至此,安裝完畢。

參考文章:https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7

二、通過源碼編譯安裝

1、安裝編譯所需工具

yum groupinstall "Development Tools"yum install wget

2、到官網下載最新的原始碼(https://nginx.org/en/)

cd /usr/local/srcwget http://nginx.org/download/nginx-1.10.2.tar.gztar zxvf nginx-1.10.2.tar.gz

3、安裝依賴包

yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel

      zlib: 為nginx提供gzip模組,需要zlib庫支援,傳輸資料打包,省流量(但消耗資源)

      openssl: 為nginx提供ssl功能

      pcre: 為支援地址修正rewrite功能

4、建立用來運行nginx的使用者及組

groupadd nginxuseradd -g nginx -M nginx –s /sbin/nologin

-g參數為nginx使用者指定了一個組。-M參數保證其不自動產生home目錄。

5、編譯原始碼

先使用./configure –help 查看編譯協助:

[root@localhost nginx-1.10.2]# ./configure --help  --help        print this message  --prefix=PATH      set installation prefix #Nginx安裝的根路徑,預設為 /usr/local/nginx。 --sbin-path=PATH     set nginx binary pathname #指定nginx二進位檔案的路徑,預設為PATH/sbin/nginx。 --modules-path=PATH    set modules path #Perl模組位置 --conf-path=PATH     set nginx.conf pathname #設定nginx設定檔地址,預設為PATH/conf/nginx.conf。 --error-log-path=PATH    set error log pathname #錯誤檔案路徑,預設為 PATH/logs/error.log。 --pid-path=PATH     set nginx.pid pathname # master進程pid寫入的檔案位置,通常在var/run下,預設為 PATH/logs/nginx.pid。 --lock-path=PATH     set nginx.lock pathname #共用儲存空間互斥鎖檔案路徑  --user=USER      set non-privileged user for worker processes #指定程式運行時的非特權使用者 --group=GROUP      set non-privileged group for worker processes #指定程式運行時的非特權使用者組  --build=NAME      set build name #編譯名稱 --builddir=DIR      set build directory #指向編譯目錄  --with-select_module    enable select module 允許或不允許開啟SELECT模式,如果configure沒有找到合適的模式,比如,kqueue(sun os)、epoll(linux kenel 2.6+)、rtsig(即時訊號) --without-select_module   disable select module 禁用select模組支援 --with-poll_module     enable poll module 啟用poll模組支援(功能與select相同,與select特性相同,為一種輪詢模式,不推薦在高負載環境下使用) --without-poll_module    disable poll module 禁用poll模組支援  --with-threads      enable thread pool support  --with-file-aio     enable file AIO support #為freeBSD4.3+和linux2.6.22+系統啟用非同步io  --with-ipv6      enable IPv6 support #啟用ipv6支援 #預設禁用的模組 --with-http_ssl_module    enable ngx_http_ssl_module #使支援https請求,需已安裝openssl --with-http_v2_module    enable ngx_http_v2_module #啟用HTTP V2 --with-http_realip_module   enable ngx_http_realip_module #此模組支援顯示真實來源IP地址,主要用於NGINX做前端負載平衡伺服器使用 --with-http_addition_module  enable ngx_http_addition_module #輸出過濾器,使你能夠在請求經過一個location前或後時在該location本身新增內容 --with-http_xslt_module   enable ngx_http_xslt_module #這個模組是一個過濾器,它可以通過XSLT模板轉換XML應答 --with-http_xslt_module=dynamic enable dynamic ngx_http_xslt_module  --with-http_image_filter_module enable ngx_http_image_filter_module #映像過濾器,在將映像投遞到客戶之前進行處理(需要libgd庫) --with-http_image_filter_module=dynamic          enable dynamic ngx_http_image_filter_module  --with-http_geoip_module   enable ngx_http_geoip_module #建立基於與MaxMind GeoIP相配的用戶端地址 --with-http_geoip_module=dynamic enable dynamic ngx_http_geoip_module --with-http_sub_module    enable ngx_http_sub_module #這個模組可以能夠在nginx的應答中搜尋並替換文本 --with-http_dav_module    enable ngx_http_dav_module #為檔案和目錄指定許可權,限制不同類型的使用者對於頁面有不同的操作許可權 --with-http_flv_module    enable ngx_http_flv_module #這個模組支援對FLV(flash)檔案的拖動播放 --with-http_mp4_module    enable ngx_http_mp4_module #支援H.264/AAC檔案為偽流媒體 --with-http_gunzip_module   enable ngx_http_gunzip_module #對於不支援gzip編碼的客戶,該模組用於為客戶解壓縮預壓縮內容 --with-http_gzip_static_module  enable ngx_http_gzip_static_module #這個模組在一個預壓縮檔傳送到開啟Gzip壓縮的用戶端之前檢查是否已經存在以“.gz”結尾的壓縮檔,這樣可以防止檔案被重複壓縮 --with-http_auth_request_module enable ngx_http_auth_request_module  --with-http_random_index_module enable ngx_http_random_index_module #從目錄中選擇一個隨機首頁 --with-http_secure_link_module  enable ngx_http_secure_link_module #該模組提供一種機制,它會將一個雜湊值連結到一個url中,因此,只有那些使用正確的密碼能夠計算連結 --with-http_degradation_module  enable ngx_http_degradation_module #允許在記憶體不足的情況下返回204或444碼 --with-http_slice_module   enable ngx_http_slice_module  --with-http_stub_status_module  enable ngx_http_stub_status_module #取得一些nginx的運行狀態,輸出的狀態資訊可使用RRDtool或類似的工具繪製成圖#預設啟用的模組 --without-http_charset_module  disable ngx_http_charset_module #重新編碼web頁面 --without-http_gzip_module   disable ngx_http_gzip_module #同-with-http_gzip_static_module功能一樣 --without-http_ssi_module   disable ngx_http_ssi_module #提供在輸入端處理處理伺服器包含檔案(SSI)的過濾器,目前支援SSI命令的列表是不完整的 --without-http_userid_module  disable ngx_http_userid_module #用來處理用來確定用戶端後續請求的cookies --without-http_access_module  disable ngx_http_access_module #供了一個簡單的基於主機的存取控制。允許/拒絕基於ip地址 --without-http_auth_basic_module disable ngx_http_auth_basic_module #可以使用使用者名稱和密碼基於http基本認證方法來保護你的網站或其部分內容 --without-http_autoindex_module disable ngx_http_autoindex_module #自動組建目錄列表,只在ngx_http_index_module模組未找到索引檔案時發出請求。 --without-http_geo_module   disable ngx_http_geo_module #建立一些變數,其值依賴於用戶端的IP地址 --without-http_map_module   disable ngx_http_map_module #使用任意的鍵/值對設定組態變數 --without-http_split_clients_module disable ngx_http_split_clients_module #用來基於某些條件劃分使用者。條件如:ip地址、前序、cookies等等 --without-http_referer_module  disable ngx_http_referer_module #用來過濾請求,拒絕前序中Referer值不正確的請求 --without-http_rewrite_module  disable ngx_http_rewrite_module #允許使用Regex改變URI,並且根據變數來轉向以及選擇配置 --without-http_proxy_module  disable ngx_http_proxy_module #有關Proxy 伺服器 --without-http_fastcgi_module  disable ngx_http_fastcgi_module #允許Nginx 與FastCGI 進程互動,並通過傳遞參數來控制FastCGI 進程工作。 --without-http_uwsgi_module  disable ngx_http_uwsgi_module #用來使用uwsgi協議,uWSGI伺服器相關 --without-http_scgi_module   disable ngx_http_scgi_module #用來啟用SCGI協議支援,SCGI協議是CGI協議的替代。 --without-http_memcached_module disable ngx_http_memcached_module #用來提供簡單的緩衝,以提高系統效率 --without-http_limit_conn_module disable ngx_http_limit_conn_module #允許你對於一個地址進行串連數的限制用一個給定的session或一個特定的事件 --without-http_limit_req_module disable ngx_http_limit_req_module #允許你對於一個地址進行請求數量的限制用一個給定的session或一個特定的事件 --without-http_empty_gif_module disable ngx_http_empty_gif_module #在記憶體中常駐了一個1*1的透明GIF映像,可以被非常快速的調用 --without-http_browser_module  disable ngx_http_browser_module #用來建立依賴於請求前序的值 --without-http_upstream_hash_module          disable ngx_http_upstream_hash_module #用於簡單的負載平衡 --without-http_upstream_ip_hash_module          disable ngx_http_upstream_ip_hash_module  --without-http_upstream_least_conn_module          disable ngx_http_upstream_least_conn_module  --without-http_upstream_keepalive_module          disable ngx_http_upstream_keepalive_module --without-http_upstream_zone_module          disable ngx_http_upstream_zone_module  --with-http_perl_module   enable ngx_http_perl_module #這個模組允許nginx使用SSI調用perl或直接執行perl(使用會降低效能) --with-http_perl_module=dynamic enable dynamic ngx_http_perl_module --with-perl_modules_path=PATH  set Perl modules path #設定perl模組路徑 --with-perl=PATH     set perl binary pathname #設定perl庫檔案路徑  --http-log-path=PATH    set http access log pathname #設定access log路徑 --http-client-body-temp-path=PATH set path to store http client request body temporary files #設定http用戶端請求臨時檔案路徑 --http-proxy-temp-path=PATH  set path to store http proxy temporary files #設定http代理臨時檔案路徑 --http-fastcgi-temp-path=PATH  set path to store http fastcgi temporary files #設定http fastcgi臨時檔案路徑 --http-uwsgi-temp-path=PATH  set path to store http uwsgi temporary files #設定http uwsgi臨時檔案路徑 --http-scgi-temp-path=PATH   set path to store http scgi temporary files #設定http scgi臨時檔案路徑  --without-http      disable HTTP server #完全禁用http模組,如果只想支援mall,可以使用此項設定 --without-http-cache    disable HTTP cache #在使用upstream模組時,nginx能夠配置本機快取內容,此選項可禁用緩衝  --with-mail      enable POP3/IMAP4/SMTP proxy module #啟用POP3/IMAP4/SMTP代理模組,預設未啟用 --with-mail=dynamic    enable dynamic POP3/IMAP4/SMTP proxy module --with-mail_ssl_module    enable ngx_mail_ssl_module #SMTP可以使用SSL/TLS.配置已經定義了HTTP SSL模組,但是不支援用戶端認證檢測 --without-mail_pop3_module   disable ngx_mail_pop3_module #啟用mail模組後,單獨禁用pop3模組 --without-mail_imap_module   disable ngx_mail_imap_module #啟用mail模組後,單獨禁用imap模組 --without-mail_smtp_module   disable ngx_mail_smtp_module #啟用mail模組後,單獨禁用smtp模組  --with-stream      enable TCP/UDP proxy module --with-stream=dynamic    enable dynamic TCP/UDP proxy module --with-stream_ssl_module   enable ngx_stream_ssl_module --without-stream_limit_conn_module disable ngx_stream_limit_conn_module --without-stream_access_module  disable ngx_stream_access_module --without-stream_upstream_hash_module          disable ngx_stream_upstream_hash_module --without-stream_upstream_least_conn_module          disable ngx_stream_upstream_least_conn_module --without-stream_upstream_zone_module          disable ngx_stream_upstream_zone_module  --with-google_perftools_module  enable ngx_google_perftools_module #調試用,剖析程式效能瓶頸 --with-cpp_test_module    enable ngx_cpp_test_module  --add-module=PATH     enable external module #啟用外部模組支援 --add-dynamic-module=PATH   enable dynamic external module#編譯相關的參數 --with-cc=PATH      set C compiler pathname #如果想設定一個不在預設path下的c編譯器 --with-cpp=PATH     set C preprocessor pathname #設定c前置處理器的相對路徑 --with-cc-opt=OPTIONS    set additional C compiler options #設定C編譯器參數 --with-ld-opt=OPTIONS    set additional linker options #包含串連庫的路徑和運行路徑 --with-cpu-opt=CPU     build for the specified CPU, valid values:pentium, pentiumpro, pentium3, pentium4,athlon, opteron, sparc32, sparc64, ppc64 #指定編譯的CPU  --without-pcre      disable PCRE library usage #禁用pcre庫 --with-pcre      force PCRE library usage #啟用pcre庫 --with-pcre=DIR     set path to PCRE library sources #指向pcre庫檔案目錄 --with-pcre-opt=OPTIONS   set additional build options for PCRE #在編譯時間為pcre庫設定附加參數 --with-pcre-jit     build PCRE with JIT compilation support  --with-md5=DIR      set path to md5 library sources #指向md5庫檔案目錄 --with-md5-opt=OPTIONS    set additional build options for md5 #在編譯時間為md5庫設定附加參數 --with-md5-asm      use md5 assembler sources #使用md5彙編源  --with-sha1=DIR     set path to sha1 library sources #指向sha1庫目錄 --with-sha1-opt=OPTIONS   set additional build options for sha1 #在編譯時間為sha1庫設定附加參數 --with-sha1-asm     use sha1 assembler sources #使用sha1彙編源  --with-zlib=DIR     set path to zlib library sources #指向zlib庫目錄 --with-zlib-opt=OPTIONS   set additional build options for zlib #在編譯時間為zlib設定附加參數 --with-zlib-asm=CPU    use zlib assembler sources optimized for the specified CPU, valid values: pentium, pentiumpro #為指定的CPU使用zlib彙編源進行最佳化  --with-libatomic     force libatomic_ops library usage # 為原子記憶體的更新操作的實現提供一個架構 --with-libatomic=DIR    set path to libatomic_ops library sources #指向libatomic_ops安裝目錄  --with-openssl=DIR     set path to OpenSSL library sources #指向openssl安裝目錄 --with-openssl-opt=OPTIONS   set additional build options for OpenSSL #在編譯時間為openssl設定附加參數  --with-debug      enable debug logging #啟用debug日誌

設定編譯參數:

./configure \--prefix=/usr/local/nginx \--sbin-path=/usr/sbin/nginx \--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 \--user=nginx \--group=nginx \--with-http_ssl_module \--with-pcre \--with-http_v2_module \--with-http_realip_module \--with-http_addition_module \--with-http_sub_module \--with-http_dav_module \--with-http_gunzip_module \--with-http_gzip_static_module \--with-http_random_index_module \--with-http_secure_link_module \--with-http_stub_status_module \--with-http_auth_request_module

然後執行 make && make install  完成安裝後在 centos7 中為nginx的啟動、重啟、重載配置添加指令碼:

vi /usr/lib/systemd/system/nginx

新增內容:

[Unit]Description=nginx - high performance web serverDocumentation=http://nginx.org/en/docs/After=network.target remote-fs.target nss-lookup.target [Service]Type=forkingPIDFile=/var/run/nginx.pidExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.confExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.confExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true [Install]WantedBy=multi-user.target

相關操作:

systemctl is-enabled nginx.service #查詢nginx是否開機啟動systemctl enable nginx.service #開機運行nginxsystemctl disable nginx.service #取消開機運行nginxsystemctl start nginx.service #啟動nginxsystemctl stop nginx.service #停止nginxsystemctl restart nginx.service #重啟nginxsystemctl reload nginx.service #重新載入nginx設定檔systemctl status nginx.service #查詢nginx運行狀態systemctl --failed #顯示啟動失敗的服務

總結

以上就是CentOS 7.2安裝Nginx 1.10.2的詳細教程,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.