Linux安裝Nginx詳細(xì)教程

一、下載nginx
1、手動(dòng)下載
進(jìn)入nginx下載地址:http://nginx.p2hp.com/en/download.html,點(diǎn)擊 “nginx-1.25.1” 進(jìn)行下載
將下載的文件 nginx-1.25.1.tar.gz 通過Xftp工具或者通過其他工具上傳至Linux 服務(wù)器 /root 目錄。

2、自動(dòng)下載
也可以使用下載命令獲取安裝包
wget https://nginx.org/download/nginx-1.25.1.tar.gz二、拷貝壓縮包并解壓
創(chuàng)建prod目錄命令:mkdir /usr/local/prod/
拷貝命令:cp nginx-1.25.1.tar.gz /usr/local/prod/
進(jìn)入prod目錄命令:cd /usr/local/prod/
解壓命令:tar -zxvf nginx-1.25.1.tar.gz
三、檢查配置并指定安裝參數(shù)
進(jìn)入nginx-1.25.1目錄命令:cd nginx-1.25.1/
安裝工具命令:yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
編譯前檢查命令: ./configure --prefix=/usr/local/prod/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/prod/pcre-8.45拆解一下上面的命令:
./configure 是編譯前檢查的命令;
--prefix=/usr/local/prod/nginx 是安裝到指定目錄;
--with-http_stub_status_module --with-http_ssl_module 是安裝ssl證書的兩個(gè)模塊;
--with-pcre=/usr/local/prod/pcre-8.35 是**PCRE**的安裝位置(https相關(guān),可選項(xiàng),后面有說明)
注:如果沒有安裝過 gcc、ssl等,執(zhí)行檢查步驟可能會(huì)報(bào)錯(cuò),需要先安裝以下工具
# 安裝工具
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
# 重新檢查
./configure --prefix=/usr/local/prod/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/prod/pcre-8.45四、編譯和安裝
編譯和安裝命令:make && make install注:安裝完成后,會(huì)在 /usr/local/prod/ 目錄下生成一個(gè) nginx 的目錄,這是我們指定的位置。安裝后生成的 nginx 里面有四個(gè)目錄 (conf html logs sbin),配置文件在 conf/nginx.conf, 啟動(dòng)文件在 sbin/nginx,先別著急啟動(dòng),我們先完成http的配置。

五、完成后可以按需刪除安裝包和解壓目錄
此時(shí),/usr/local/prod/nginx-1.25.1 目錄 就不會(huì)再用到了,可以對(duì)無用目錄和文件進(jìn)行刪除。
命令:rm -f /usr/local/prod/pcre-8.45.tar.gz
命令:rm -f /usr/local/prod/nginx-1.25.1.tar.gz
# 安裝后解壓目錄也可以刪除,因?yàn)槭俏募A,加上 -r 遍歷刪除
命令:rm -rf /usr/local/prod/nginx-1.25.1六、設(shè)置軟鏈
設(shè)置軟鏈后,就可以在任何目錄使用nginx命令。
命令:ln -s /usr/local/webserver/nginx/sbin/nginx /usr/bin/
# 設(shè)置軟鏈后,可以嘗試在其他目錄使用以下命令看是否成功
查看nginx版本命令:nginx -v七、創(chuàng)建專屬組和用戶
/usr/sbin/groupadd nginx
/usr/sbin/useradd -g nginx nginx八、配置nginx.conf
nginx.conf 文件內(nèi)默認(rèn)是有基礎(chǔ)配置的,建議把配置文件下載到本地,用其他編輯器(例如 VS code)修改完后,再上傳覆蓋掉原來的文件,不用擔(dān)心,同目錄下有一個(gè)原始文件的備份(nginx.conf.default)。
也可以使用命令修改:
vim /usr/local/prod/nginx/conf/nginx.conf注意:
可操作項(xiàng),根據(jù)實(shí)際項(xiàng)目修改,https不需要的可以注釋掉。
如果有Apache占用了80端口,將端口號(hào)改成其他端口。
重點(diǎn)項(xiàng)在里面都標(biāo)記了出來,http中有host配置,https中有host和ssl證書配置。
修改完后,如果服務(wù)器已啟動(dòng)過,使用命令重載一下配置 `nginx -s reload`。
增加`underscores_in_headers on;` Nginx將允許在HTTP響應(yīng)頭中使用下劃線作為字段名。
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
client_max_body_size 50m;
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 128k;
fastcgi_buffers 2 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
underscores_in_headers on; #Nginx將允許在HTTP響應(yīng)頭中使用下劃線作為字段名
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html;
#proxy_redirect off;
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /api/ {
proxy_pass http://localhost:8180/; #代理地址
proxy_connect_timeout 60; #連接超時(shí)時(shí)長
proxy_send_timeout 60; #請(qǐng)求超時(shí)時(shí)長
proxy_read_timeout 60; #響應(yīng)超時(shí)時(shí)長
#以下的配置是防止代理訪問失敗時(shí),瀏覽器暴露服務(wù)的真實(shí)地址
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}九、服務(wù)器防火墻開放80端口
如果系統(tǒng)啟用了防火墻的話,就要在防火墻端開放端口。
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload十、檢查配置、啟動(dòng)、測(cè)試(查看進(jìn)程、網(wǎng)頁訪問)
# 檢查配置
nginx -t(檢查nginx.conf配置是否正確)
nginx -s reload(重新載入配置文件,通常配合-t使用,在修改了nginx.conf且檢查無誤之后)十一、運(yùn)行nginx
#啟動(dòng)
nginx
#查看進(jìn)程命令
ps -ef | grep nginx
# 其他的一些常用命令
#停止
nginx -s stop
#重啟
nginx -s reload
#查看nginx服務(wù)狀態(tài),通常配合-t使用
systemctl status nginx.service























