1、在centos7上安裝 nginx
1.1奉狈、下載
進(jìn)入官網(wǎng)下載我們需要的版本,復(fù)制下載鏈接唯欣,使用wget工具下載嘹吨,
wget http://nginx.org/download/nginx-1.16.1.tar.gz
1.2、解壓
tar -xzf nginx-1.16.1.tar.gz
1.3境氢、安裝依賴
? 在你不清楚服務(wù)器有沒(méi)有安裝這些依賴的情況下蟀拷,可以先跳過(guò)碰纬,報(bào)錯(cuò)再回來(lái),或者直接都安裝一下也沒(méi)壞處问芬。
1.3.1悦析、gcc 源碼的編依賴 于gcc 環(huán)境
yum install gcc
1.3.2、PCRE(Perl Compatible Regular Expressions) Perl庫(kù)此衅,包括 perl 兼容的正則表達(dá)式庫(kù)
yum install -y pcre pcre-devel
1.3.3强戴、zlib 庫(kù)提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對(duì) http 包的內(nèi)容進(jìn)行 gzip
yum install -y zlib zlib-devel
1.3.4挡鞍、OpenSSL是一個(gè)開(kāi)放源代碼的軟件庫(kù)包骑歹,應(yīng)用程序可以使用這個(gè)包來(lái)進(jìn)行安全通信,避免竊聽(tīng)墨微,同時(shí)確認(rèn)另一端連接者的身份道媚。這個(gè)包廣泛被應(yīng)用在互聯(lián)網(wǎng)的網(wǎng)頁(yè)服務(wù)器上
yum install -y openssl openssl-devel
比較懶的可以直接執(zhí)行這個(gè)命令:
yum install gcc openssl-devel pcre-devel -y
查看依賴安裝:
pcre-config --version
1.4、配置
先進(jìn)入解壓文件目錄:
cd nginx-1.16.1
查看自己需要得配置翘县,建議看看官網(wǎng)的參數(shù)說(shuō)明根據(jù)你需要的情景使用配置
./configure --help
這里我只設(shè)置了安裝目錄最域,其他均采用了默認(rèn)
./configure --prefix=/server/nginx
出現(xiàn)這個(gè)證明已經(jīng)配置成功
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ using system zlib library
nginx path prefix: "/server/nginx"
nginx binary file: "/server/nginx/sbin/nginx"
nginx modules path: "/server/nginx/modules"
nginx configuration prefix: "/server/nginx/conf"
nginx configuration file: "/server/nginx/conf/nginx.conf"
nginx pid file: "/server/nginx/logs/nginx.pid"
nginx error log file: "/server/nginx/logs/error.log"
nginx http access log file: "/server/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
1.5、編譯和安裝
make && make install
看到這個(gè)界面證明已經(jīng)安裝成功了
cp conf/nginx.conf '/server/nginx/conf/nginx.conf.default'
test -d '/server/nginx/logs' \
|| mkdir -p '/server/nginx/logs'
test -d '/server/nginx/logs' \
|| mkdir -p '/server/nginx/logs'
test -d '/server/nginx/html' \
|| cp -R html '/server/nginx'
test -d '/server/nginx/logs' \
|| mkdir -p '/server/nginx/logs'
make[1]: Leaving directory `/root/nginx-1.16.1'
[root@iZxz5n6q7bcnqgZ nginx-1.16.1]#
1.6锈麸、測(cè)試啟動(dòng)
cd /server/nginx/sbin //這個(gè)是配置安裝包時(shí)候的目錄
./nginx //啟動(dòng)
./nginx -s stop //停止
./nginx -s quit //退出
./nginx -s reload //重啟
1.7镀脂、其它相關(guān)配置
1.7.1、主機(jī)瀏覽器無(wú)法訪問(wèn)問(wèn)題
?云服務(wù)器Linux忘伞,安裝配置完成nginx后薄翅,如果主機(jī)無(wú)法訪問(wèn)。則虛擬機(jī)沒(méi)有放行Nginx默認(rèn)端口80
解決辦法:
(1)虑省、查看防火墻對(duì)外開(kāi)放的端口
firewall-cmd --zone=public --list-ports
(2)匿刮、開(kāi)啟 web 端口
firewall-cmd --permanent --add-port=80/tcp
(3)、重啟 firewall
firewall-cmd --reload
1.7.2探颈、配置 systemctl 命令
?centos7服務(wù)管理都是通過(guò)systemctl命令的,所以我們可以添加一下對(duì)應(yīng)nginx的service服務(wù)训措,systemctl服務(wù)儲(chǔ)存地址 :/usr/lib/systemd/system/
執(zhí)行以下命令新建nginx服務(wù):
vim /usr/lib/systemd/system/nginx.service
并錄入以下內(nèi)容:
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/server/nginx/sbin/nginx
ExecReload=/server/nginx/sbin/nginx -s reload
ExecStop=/server/nginx/sbin/nginx -s stop
配置說(shuō)明:
[Unit]:服務(wù)的說(shuō)明
Description:描述服務(wù)
After:描述服務(wù)類別
[Service]服務(wù)運(yùn)行參數(shù)的設(shè)置
Type=forking是后臺(tái)運(yùn)行的形式
ExecStart為服務(wù)的具體運(yùn)行命令
ExecReload為重啟命令
ExecStop為停止命令
PrivateTmp=True表示給服務(wù)分配獨(dú)立的臨時(shí)空間
注意:?jiǎn)?dòng)伪节、重啟、停止命令全部要求使用絕對(duì)路徑
[Install]服務(wù)安裝的相關(guān)設(shè)置绩鸣,可設(shè)置為多用戶
要服務(wù)生效怀大,需要重新加載服務(wù)
systemctl daemon-reload
現(xiàn)在可以使用systemctl命令來(lái)對(duì)nginx進(jìn)行操作了
systemctl start nginx //啟動(dòng)
systemctl stop nginx //停止
systemctl reload nginx //重啟 可以不用停止nginx服務(wù),使修改的配置生效
systemctl restart nginx //重啟
systemctl enable nginx //設(shè)置開(kāi)機(jī)啟動(dòng)
systemctl disable nginx //禁用開(kāi)機(jī)啟動(dòng)
systemctl status nginx //查看服務(wù)狀態(tài)
獲取所有正在運(yùn)行的服務(wù)
systemctl list-units --type=service
啟動(dòng)后可以訪問(wèn)一下看到這個(gè)界面就證明安裝成功了
2、nginx常用命令
使用 nginx 命令前提條件:必須進(jìn)入 nginx 得目錄中
/server/nginx/sbin(自己的目錄)
2.1呀闻、查看 niginx 的版本
./nginx -v
2.2化借、啟動(dòng) niginx
./nginx
2.1、關(guān)閉niginx
./nginx -s stop
2.1捡多、重新加載 niginx
./nginx -s reload
3蓖康、nginx配置文件
3.1铐炫、配置文件位置
?在nginx目錄下的conf文件里面,即 */nginx/conf/nginx.conf
/server/nginx/conf
3.2蒜焊、配置文件組成
nginx 的配置文件由三部分組成:全局塊倒信、events 塊、http 塊泳梆。
3.2.1鳖悠、第一部分:全局塊
?? 從配置文件開(kāi)始到 events 塊之間的內(nèi)容,主要設(shè)置一些影響 nginx 服務(wù)器整體運(yùn)行的配置指令优妙,只有包括配置運(yùn)行 nginx 服務(wù)器的用戶(組)乘综,允許生成的 worker process 數(shù),進(jìn)程 PID 存放路徑套硼、日志存放路徑瘾带、類型以及配置文件的引入等
worker_processes 1;
??這是 Nginx 服務(wù)器并發(fā)處理服務(wù)的關(guān)鍵配置,值越大熟菲,可以支持的并發(fā)處理量越多看政,但是會(huì)受到硬件、軟件等設(shè)備的制約抄罕。
3.2.2允蚣、第二部分:events 塊
?? events塊涉及的指令主要影響 Nginx 服務(wù)器與用戶的網(wǎng)絡(luò)連接,常用的設(shè)置包括是否開(kāi)啟對(duì)多 work process 下的網(wǎng)絡(luò)連接進(jìn)行序列化呆贿,是否允許同時(shí)接收多個(gè)網(wǎng)絡(luò)連接嚷兔,選取哪種事件驅(qū)動(dòng)模型來(lái)處理連接請(qǐng)求,每個(gè) word process 可以同時(shí)支持的最大連接數(shù)等做入。
events {
worker_connections 1024;
}
??表示每個(gè) work process 支持的最大連接數(shù)為 1024冒晰。
??這部分的配置對(duì) Nginx 的性能影響較大,在實(shí)際中應(yīng)該靈活配置竟块。
3.2.3壶运、第三部分:http 塊
?? 這算是 Nginx 服務(wù)器配置中最頻繁的部分,代理浪秘、緩存和日志定義等絕大多數(shù)功能和第三方模塊的配置都在這里蒋情。
?? http 塊也可以包括 http全局塊、server 塊耸携。
(1)棵癣、http 全局塊
?? http 全局塊配置的指令包括文件引入、MIME-TYPE 定義夺衍、日志自定義狈谊、連接超時(shí)時(shí)間、但鏈接請(qǐng)求數(shù)上線等。
(2)河劝、server 塊
?? 這塊和虛擬主機(jī)有密切關(guān)系壁榕,虛擬主機(jī)從用戶角度看,和一臺(tái)獨(dú)立的硬件主機(jī)是完全一樣的丧裁,該技術(shù)的產(chǎn)生是為了節(jié)省互聯(lián)網(wǎng)服務(wù)器硬件成本护桦。
?? 每個(gè) http 塊可以包括多個(gè) server 塊,而每個(gè) server 塊就相當(dāng)于一個(gè)虛擬主機(jī)煎娇。而每個(gè) server 塊也分為全局 server 塊二庵,以及可以同時(shí)包含多個(gè) location 塊。
①缓呛、全局 server 塊
?? 最常見(jiàn)的配置是本虛擬機(jī)主機(jī)的監(jiān)聽(tīng)配置和本虛擬機(jī)主機(jī)的名稱或 IP 配置催享。
②、location 塊
?? 一個(gè) server 塊可以配置多個(gè) location 塊哟绊。
?? 這塊的主要作用是基于 Nginx 服務(wù)器接收到的請(qǐng)求字符串(例如 server_name/uri-string),對(duì)虛擬主機(jī)名稱(也可以是 IP 別名)之外的字符串(例如 前面 /uri_string)進(jìn)行匹配因妙,對(duì)待定的請(qǐng)求進(jìn)行處理。地址定向票髓、數(shù)據(jù)緩存和應(yīng)答控制等功能攀涵,還有許多第三方模塊的配置也在這里進(jìn)行。