網站首頁 編程語言 正文
4.2 下載和安裝
4.2.1 下載
在Nginx的官網的下載頁面中(nginx: download),就展示了當前Nginx版本,并提供了下載的連接。 如下:
正在上傳…重新上傳取消
在本項目中,我們所學習的Nginx選擇的是穩定版本的1.16這個版本,我們可以直接從官網下載,當然在我們的課程資料中也已經提供了該版本的安裝包。
正在上傳…重新上傳取消
4.2.2 安裝
1). 安裝依賴包
由于nginx是基于c語言開發的,所以需要安裝c語言的編譯環境,及正則表達式庫等第三方依賴庫。
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
2). 下載Nginx安裝包
yum install wget wget https://nginx.org/download/nginx-1.16.1.tar.gz
wget :
wget命令用來從指定的URL下載文件。wget非常穩定,它在帶寬很窄的情況下和不穩定網絡中有很強的適應性,如果是由于網絡的原因下載失敗,wget會不斷的嘗試,直到整個文件下載完畢。如果是服務器打斷下載過程,它會再次聯到服務器上從停止的地方繼續下載。
執行完wget指令后,就會在當前所在目錄看到下載下來的文件。
3). 解壓nginx壓縮包
tar -zxvf nginx-1.16.1.tar.gz
4). 配置Nginx編譯環境
cd nginx-1.16.1 ./configure --prefix=/usr/local/nginx
說明:
--prefix 指定的目錄,就是我們安裝Nginx的目錄。
5). 編譯&安裝
make & make install
4.3 目錄結構
安裝完Nginx后,我們可以切換到Nginx的安裝目錄(/usr/local/nginx),先來熟悉一下Nginx的目錄結構,如下圖:
正在上傳…重新上傳取消
備注:
上述我們用到的一個指令 tree,該指令可以將我們指定的目錄以樹狀結構展示出來。如果沒有這個指令,可以通過以下指令進行安裝。
yum install tree
重點目錄和文件如下:
目錄/文件 | 說明 | 備注 |
---|---|---|
conf | 配置文件的存放目錄 | |
conf/nginx.conf | Nginx的核心配置文件 | conf下有很多nginx的配置文件,我們主要操作這個核心配置文件 |
html | 存放靜態資源(html, css, ) | 部署到Nginx的靜態資源都可以放在html目錄中 |
logs | 存放nginx日志(訪問日志、錯誤日志等) | |
sbin/nginx | 二進制文件,用于啟動、停止Nginx服務 |
5. Nginx-命令
5.1 常用命令
Nginx中,我們的二進制可執行文件(nginx)存放在sbin目錄下,雖然只有一個可執行文件,但是我們可以通過該指令配合不同的參數達到更加強大的功能。接下來,我們就演示一下Nginx常見指令, 在執行下面的指令時,都需要在/usr/local/nginx/sbin/目錄下執行。
1). 查看版本
./nginx -v
正在上傳…重新上傳取消
2). 檢查配置文件
修改了nginx.conf核心配置文件之后,在啟動Nginx服務之前,可以先檢查一下conf/nginx.conf文件配置的是否有錯誤,命令如下:
./nginx -t
正在上傳…重新上傳取消
3). 啟動
./nginx
啟動之后,我們可以通過ps -ef指令來查看nginx的進程是否存在。
正在上傳…重新上傳取消
注意: nginx服務啟動后,默認就會有兩個進程。
啟動之后,我們可以直接訪問Nginx的80端口, http://192.168.200.200
正在上傳…重新上傳取消
注意:
要想正常訪問Nginx,需要關閉防火墻或開放指定端口號,執行的指令如下:
A. 關閉防火墻
systemctl stop firewalld
B. 開放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
4). 停止
./nginx -s stop
停止之后,我們可以查看nginx的進程:
ps -ef|grep nginx
正在上傳…重新上傳取消
5). 重新加載
當修改了Nginx配置文件后,需要重新加載才能生效,可以使用下面命令重新加載配置文件:
./nginx -s reload
5.2 環境變量配置
在上述我們在使用nginx命令在進行服務的啟動、停止、重新加載時,都需要用到一個指令nginx,而這個指令是在nginx/sbin目錄下的,我們每一次使用這個指令都需要切換到sbin目錄才可以,使用相對繁瑣。那么我們能不能在任意目錄下都可以執行該指令來操作nginx呢?答案是可以的,配置nginx的環境變量即可。
通過vim編輯器,打開/etc/profile文件, 在PATH環境變量中增加nginx的sbin目錄,如下:
正在上傳…重新上傳取消
修改完配置文件之后,需要執行 source /etc/profile 使文件生效。 接下來,我們就可以在任意目錄下執行nginx的指令了,如:
正在上傳…重新上傳取消
6. Nginx-應用
介紹了并安裝了Nginx之后,本章節將要講解的是Nginx的使用,我們主要從以下四個方面進行講解。
6.1 配置文件結構
nginx的配置文件(conf/nginx.conf)整體上分為三部分: 全局塊、events塊、http塊。這三塊的分別配置什么樣的信息呢,看下表:
區域 | 職責 |
---|---|
全局塊 | 配置和nginx運行相關的全局配置 |
events塊 | 配置和網絡連接相關的配置 |
http塊 | 配置代理、緩存、日志記錄、虛擬主機等配置 |
具體結構圖如下:
正在上傳…重新上傳取消
在全局塊、events塊以及http塊中,我們經常配置的是http塊。
在http塊中可以包含多個server塊,每個server塊可以配置多個location塊。
6.2 部署靜態資源
6.2.1 介紹
Nginx可以作為靜態web服務器來部署靜態資源。這里所說的靜態資源是指在服務端真實存在,并且能夠直接展示的一些文件,比如常見的html頁面、css文件、js文件、圖片、視頻等資源。
相對于Tomcat,Nginx處理靜態資源的能力更加高效,所以在生產環境下,一般都會將靜態資源部署到Nginx中。
將靜態資源部署到Nginx非常簡單,只需要將文件復制到Nginx安裝目錄下的html目錄中即可。
server { ? listen 80; #監聽端口 ? server_name localhost; #服務器名稱 ? location / { #匹配客戶端請求url ? ? ? root html; #指定靜態資源根目錄 ? ? ? index index.html; #指定默認首頁 ? } }
6.2.2 測試
在資料中,我們提供了一個靜態的html文件,我們需要將這個文件部署到nginx中,然后通過nginx訪問html靜態資源。
1). 將靜態資源上傳到 /usr/local/nginx/html 目錄
正在上傳…重新上傳取消
2). 啟動nginx
正在上傳…重新上傳取消
3). 訪問
http://192.168.200.200/hello.html
正在上傳…重新上傳取消
http://192.168.200.200 , 訪問該地址,訪問的是nginx的默認首頁
正在上傳…重新上傳取消
4). 配置首頁
正在上傳…重新上傳取消
如果我們需要將hello.html作為nginx的首頁,可以修改location的index指令,配置為hello.html,如下:
正在上傳…重新上傳取消
配置完畢后,我們可以通過指令,來檢查配置文件是否配置正確: nginx -t
正在上傳…重新上傳取消
配置文件修改了,我們需要重新加載一下,才可以生效:
nginx -s reload
5). 訪問
http://192.168.200.200
正在上傳…重新上傳取消
原文鏈接:https://blog.csdn.net/zhangchunw/article/details/125836645
相關推薦
- 2022-03-21 C#中使用CliWrap讓命令行交互舉重若輕_C#教程
- 2022-06-29 python人工智能tensorflow構建循環神經網絡RNN_python
- 2022-11-01 Golang中map的深入探究_Golang
- 2022-09-22 ES6數組新增API
- 2023-01-28 Android?之Preference控件基本使用示例詳解_Android
- 2021-12-05 Android網絡監聽和網絡判斷示例介紹_Android
- 2021-12-01 linux下umask命令用途原理和計算方式詳解_Linux
- 2022-12-12 C語言入門之查找子串問題_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支