1. 程式人生 > 其它 >5個關鍵指標 教你如何選擇可靠的信創國產化傳輸軟體

5個關鍵指標 教你如何選擇可靠的信創國產化傳輸軟體

一.nginx的安裝與配置

1.安裝nginx依賴包

yum install gcc gcc-c++  pcre pcre-devel zlib zlib-devel openssl-devel -y

2.下載nginx安裝

(1).nginx官網:

http://nginx.org/en/download.html

(2).nginx下載:

http://nginx.org/download/nginx-1.20.2.tar.gz

wget http://nginx.org/download/nginx-1.20.2.tar.gz

(3).解壓縮

tar -xzf nginx-1.20.2.tar.gz 

(4).編輯配置

# 進入檔案
cd nginx-1.20.2
# 編輯配置
./configure \
--prefix=/etc/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-http_v2_module \
--with-http_dav_module \ --with-http_stub_status_module \ --with-threads \ --with-file-aio
--prefix=  指向安裝目錄。
--sbin-path=  指定執行程式檔案存放位置。
--modules-path=  指定第三方模組的存放路徑。
--conf-path= 指定配置檔案存放位置。
--error-log-path=  指定錯誤日誌存放位置。
--pid-path=  指定pid檔案存放位置。
--lock-path=  指定lock檔案存放位置。
--user=  指定程式執行時的非特權使用者。
--group= 指定程式執行時的非特權使用者組。 --builddir= 指向編譯目錄。 --with-rtsig_module 啟用rtsig模組支援。 --with-select_module 啟用select模組支援,一種輪詢處理方式,不推薦在高併發環境中使用,禁用:--without-select_module。 --with-poll_module 啟用poll模組支援,功能與select相同,不推薦在高併發環境中使用。 --with-threads 啟用thread pool支援。 --with-file-aio 啟用file aio支援。 --with-http_ssl_module 啟用https支援。 --with-http_v2_module 啟用ngx_http_v2_module支援。 --with-ipv6 啟用ipv6支援。 --with-http_realip_module 允許從請求報文頭中更改客戶端的ip地址,預設為關。 --with-http_addition_module 啟用ngix_http_additon_mdoule支援(作為一個輸出過濾器,分部分響應請求)。 --with -http_xslt_module 啟用ngx_http_xslt_module支援,過濾轉換XML請求 。 --with-http_image_filter_mdoule 啟用ngx_http_image_filter_module支援,傳輸JPEG\GIF\PNG圖片的一個過濾器,預設不啟用,需要安裝gd庫。 --with-http_geoip_module 啟用ngx_http_geoip_module支援,用於建立基於MaxMind GeoIP二進位制檔案相配的客戶端IP地址的ngx_http_geoip_module變數。 --with-http_sub_module 啟用ngx_http_sub_module支援,允許用一些其他文字替換nginx響應中的一些文字。 --with-http_dav_module 啟用ngx_http_dav_module支援,增加PUT、DELETE、MKCOL建立集合,COPY和MOVE方法,預設為關閉,需要編譯開啟。 --with-http_flv_module 啟用ngx_http_flv_module支援,提供尋求記憶體使用基於時間的偏移量檔案。 --with-http_mp4_module 啟用ngx_http_mp4_module支援,啟用對mp4類視訊檔案的支援。 --with-http_gzip_static_module 啟用ngx_http_gzip_static_module支援,支援線上實時壓縮輸出資料流。 --with-http_random_index_module 啟用ngx_http_random_index_module支援,從目錄中隨機挑選一個目錄索引。 --with-http_secure_link_module 啟用ngx_http_secure_link_module支援,計算和檢查要求所需的安全連結網址。 --with-http_degradation_module 啟用ngx_http_degradation_module 支援允許在記憶體不足的情況下返回204或444程式碼。 --with-http_stub_status_module 啟用ngx_http_stub_status_module 支援檢視nginx的狀態頁。 --without-http_charset_module 禁用ngx_http_charset_module這一模組,可以進行字符集間的轉換,從其它字元轉換成UTF-8或者從UTF8轉換成其它字元。它只能從伺服器到客戶端方向,只有一個位元組的字元可以轉換。 --without-http_gzip_module 禁用ngx_http_gzip_module支援,同--with-http_gzip_static_module功能一樣。 --without-http_ssi_module 禁用ngx_http_ssi_module支援,提供了一個在輸入端處理伺服器包含檔案(SSI)的過濾器。 --without-http_userid_module 禁用ngx_http_userid_module支援,該模組用來確定客戶端後續請求的cookies。 --without-http_access_module 禁用ngx_http_access_module支援,提供了基於主機ip地址的訪問控制功能。 --without-http_auth_basic_module 禁用ngx_http_auth_basic_module支援,可以使用使用者名稱和密碼認證的方式來對站點或部分內容進行認證。 --without-http_autoindex_module 禁用ngx_http_authindex_module,該模組用於在ngx_http_index_module模組沒有找到索引檔案時發出請求,用於自動生成目錄列表。 --without-http_geo_module 禁用ngx_http_geo_module支援,這個模組用於建立依賴於客戶端ip的變數。 --without-http_map_module 禁用ngx_http_map_module支援,使用任意的鍵、值 對設定配置變數。 --without-http_split_clients_module 禁用ngx_http_split_clients_module支援,該模組用於基於使用者ip地址、報頭、cookies劃分使用者。 --without-http_referer_module 禁用ngx_http_referer_modlue支援,該模組用來過濾請求,報頭中Referer值不正確的請求。 --without-http_rewrite_module 禁用ngx_http_rewrite_module支援。該模組允許使用正則表示式改變URI,並且根據變數來轉向以及選擇配置。如果在server級別設定該選項,那麼將在location之前生效,但如果location中還有更進一步的重寫規則,location部分的規則依然會被執行。如果這個URI重寫是因為location部分的規則造成的,那麼location部分會再次被執行作為新的URI,這個迴圈會被執行10次,最後返回一個500錯誤。 --without-http_proxy_module 禁用ngx_http_proxy_module支援,http代理功能。 --without-http_fastcgi_module 禁用ngx_http_fastcgi_module支援,該模組允許nginx與fastcgi程序互動,並通過傳遞引數來控制fastcgi程序工作。 --without-http_uwsgi_module 禁用ngx_http_uwsgi_module支援,該模組用來使用uwsgi協議,uwsgi伺服器相關。 --without-http_scgi_module 禁用ngx_http_scgi_module支援,類似於fastcgi,也是應用程式與http服務的介面標準。 --without-http_memcached_module 禁用ngx_http_memcached支援,用來提供簡單的快取,提高系統效率。 --without-http_limit_conn_module 禁用ngx_http_limit_conn_module支援,該模組可以根據條件進行會話的併發連線數進行限制。 --without-http_limit_req_module 禁用ngx_limit_req_module支援,該模組可以實現對於一個地址進行請求數量的限制。 --without-http_empty_gif_module 禁用ngx_http_empty_gif_module支援,該模組在記憶體中常駐了一個1*1的透明gif影象,可以被非常快速的呼叫。 --without-http_browser_module 禁用ngx_http_browser_mdoule支援,建立依賴於請求報頭的值 。如果瀏覽器為modern,則$modern_browser等於modern_browser_value的值;如果瀏覽器為old,則$ancient_browser等於$ancient_browser_value指令分配的值;如果瀏覽器為MSIE,則$msie等於1。 --without-http_upstream_ip_hash_module 禁用ngx_http_upstream_ip_hash_module支援,該模組用於簡單的負載均衡。 --with-http_perl_module 啟用ngx_http_perl_module支援,它使nginx可以直接使用perl或通過ssi呼叫perl。 --with-perl_modules_path= 設定perl模組路徑 --with-perl= 設定perl庫檔案路徑 --http-log-path= 設定access log路徑 --http-client-body-temp-path= 設定http客戶端請求臨時檔案路徑 --http-proxy-temp-path= 設定http代理臨時檔案路徑 --http-fastcgi-temp-path= 設定http fastcgi臨時檔案路徑 --http-uwsgi-temp-path= 設定http scgi臨時檔案路徑 --http-scgi-temp-path= 設定http scgi臨時檔案路徑 --without-http 禁用http server功能 --without-http-cache 禁用http cache功能 --with-mail 啟用POP3、IMAP4、SMTP代理模組 --with-mail_ssl_module 啟用ngx_mail_ssl_module支援 --without-mail_pop3_module 禁用pop3協議。 --without-mail_iamp_module 禁用iamp協議。 --without-mail_smtp_module 禁用smtp協議。 --with-google_perftools_module 啟用ngx_google_perftools_mdoule支援,除錯用,可以用來分析程式效能瓶頸。 --with-cpp_test_module 啟用ngx_cpp_test_module支援。 --add-module= 指定外部模組路徑,啟用對外部模組的支援。 --with-cc= 指向C編譯器路徑。 --with-cpp= 指向C預處理路徑。 --with-cc-opt= 設定C編譯器引數,指定--with-cc-opt="-I /usr/lcal/include",如果使用select()函式,還需要同時指定檔案描述符數量--with-cc-opt="-D FD_SETSIZE=2048"。 (PCRE庫) --with-ld-opt= 設定連線檔案引數,需要指定--with-ld-opt="-L /usr/local/lib"。(PCRE庫) --with-cpu-opt= 指定編譯的CPU型別,如pentium,pentiumpro,...amd64,ppc64... --without-pcre 禁用pcre庫。 --with-pcre 啟用pcre庫。 --with-pcre= 指向pcre庫檔案目錄。 --with-pcre-opt= 在編譯時為pcre庫設定附加引數 。 --with-md5= 指向md5庫檔案目錄。 --with-md5-opt= 編譯時為md5庫設定附加引數。 --with-md5-asm 使用md5彙編源。 --with-sha1= 指向sha1庫檔案目錄。 --with-sha1-opt= 編譯時為sha1庫設定附加引數。 --with-sha1-asm 使用sha1彙編源。 --with-zlib= 指向zlib庫檔案目錄。 --with-zlib-opt= 在編譯時為zlib設定附加引數。 --with-zlib-asm= 為指定的CPU使用匯編源進行優化。 --with-libatomic 為原子記憶體的更新操作的實現提供一個架構。 --with-libatomic= 指向libatomic_ops的安裝目錄。 --with-openssl= 指向openssl安裝目錄。 --with-openssl-opt= 在編譯時為openssl設定附加引數。 --with-debug 啟用debug日誌。
編輯引數說明

(5).編譯並安裝

make && make install

3.啟動nginx

/etc/nginx/sbin/nginx

啟動報錯: nginx: [emerg] getpwnam("nginx") failed  # 沒有nginx使用者

(1).如果啟動失敗則建立使用者

# 建立nginx使用者
useradd -r nginx
# 啟動nginx
/etc/nginx/sbin/nginx

(2).啟動成功訪問預設頁面

4.建立nginx啟動檔案

(1).建立啟動檔案

需要在init.d資料夾中建立nginx啟動檔案。 這樣每次伺服器重新啟動init程序都會自動啟動nginx。

cd /etc/init.d/
vim nginx
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# pidfile:     /var/run/nginx.pid
# user:        nginx

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/etc/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/etc/nginx/nginx.conf"

lockfile=/var/run/nginx.lock

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    configtest || return $?
    stop
    start
}

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

(2).校驗配置檔案

chkconfig --add nginx
chkconfig --level 345 nginx on

(3).給這個檔案新增執行許可權

chmod +x nginx 

(4).啟動nginx服務

# 執行
service nginx start
# 列印
Reloading systemd:  [  確定  ]
Starting nginx (via systemctl):  [  確定  ]
# 檢視啟動狀態
service nginx status

5.允許防火牆通過80埠

Linux 伺服器上防火牆會埠攔截,所以需要在防火牆中開放80 埠,也可以直接關閉防火牆,這兒提供允許80埠方法

# 允許80埠
firewall-cmd --permanent --add-port=80/tcp --zone=public

# 重新載入防火牆配置
firewall-cmd --reload