nginx 編譯安裝與配置使用

•王富貴•發表於2020-12-14
1、安裝編譯環境
yum -y install gcc gcc-c++
2、安裝pcre軟體包(使nginx支援http rewrite模組)
yum install -y pcre pcre-devel gd-devel
3、安裝openssl-devel(使nginx支援ssl)
yum install -y openssl openssl-devel 
4、安裝zlib
yum install -y zlib zlib-devel
5、建立使用者nginx
useradd nginx 

passwd nginx

6、安裝nginx

[root@localhost ~]# wget http://nginx.org/download/nginx-1.19.5.tar.gz
[root@localhost ~]# tar xzf nginx-1.16.0.tar.gz -C /usr/local/src/nginx-1.19.5
[root@localhost ~]# cd /usr/local/src/nginx-1.19.5
[root@localhost nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --group=nginx --user=nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/tmp/nginx/client_body --http-proxy-temp-path=/tmp/nginx/proxy --http-fastcgi-temp-path=/tmp/nginx/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre --with-http_realip_module --with-stream
[root@localhost nginx-1.16.0]# make && make install

7、修改配置檔案/etc/nginx/nginx.conf

# 全域性引數設定
user nginx;  #設定nginx使用的使用者

#設定nginx啟動程式的數量,一般設定成與邏輯cpu數量相同,新版本支援 auto ,Nginx 將自動檢測CPU核心數,並將worker process 數量設定成等同CPU核心數量
worker_processes  auto;          
error_log  logs/error.log;    #指定錯誤日誌 
worker_rlimit_nofile 1024;  #設定一個nginx程式能開啟的最大檔案數
pid        /var/run/nginx.pid; 
events { 
    worker_connections  1024; #設定一個程式的最大併發連線數 
}
# http 服務相關設定 
http { 
    include      mime.types; 
    default_type  application/octet-stream; 
    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; #是否呼叫sendfile函式輸出檔案,一般設定為on,若nginx是用來進行磁碟IO負載應用時,可以設定為off,降低系統負載 
    # sendfile系統呼叫在兩個檔案描述符之間直接傳遞資料(完全在核心中操作),從而避免了資料在核心緩衝區和使用者緩衝區之間的拷貝,操作效率很高,被稱之為零拷貝
    gzip              on;      #是否開啟gzip壓縮,將註釋去掉開啟 
    keepalive_timeout  65;     #設定長連線的超時時間
# 虛擬伺服器的相關設定 
    server { 
        listen      80;        #設定監聽的埠 
        server_name  localhost;        #設定繫結的主機名、域名或ip地址 
        charset koi8-r;        # 設定編碼字元 
        location / { 
            root  /var/www/nginx;           #設定伺服器預設網站的根目錄位置,需要手動建立
            index  index.html index.htm;    #設定預設開啟的文件 
            } 
        error_page  500 502 503 504  /50x.html; #設定錯誤資訊返回頁面 
        location = /50x.html { 
            root  html;        #這裡的絕對位置是/usr/local/nginx/html
        } 
    } 
 }
nginx.conf的組成:nginx.conf一共由三部分組成,分別為:全域性塊、events塊、http塊。在http塊中又包含http全域性塊、多個server塊。每個server塊中又包含server全域性塊以及多個location塊。在統一配置塊中巢狀的配置快,各個之間不存在次序關係。

8.檢測nginx配置檔案是否正確

[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
[root@localhost ~]# mkdir -p /tmp/nginx

9、啟動nginx服務

[root@localhost ~]# /usr/local/nginx/sbin/nginx

10、啟動nginx服務

[root@localhost ~]# ss -patl | grep nginx
LISTEN     0      128        *:http                     *:*                     users:(("nginx",pid=14388,fd=6),("nginx",pid=13918,fd=6))

相關文章