在Linux系統上配置Nginx,不僅可以提升Web服務器的性能,還能通過反向代理、負載均衡等功能增強網站的可用性和安全性
本文將詳細介紹如何在Linux系統上安裝、配置Nginx,并附帶一些高級配置示例
一、安裝Nginx 1. 下載Nginx安裝包 首先,前往Nginx官網下載所需版本的安裝包
Nginx的官方網站提供了各個版本的下載鏈接,可以根據需要選擇最新版本或穩定版本
如果Linux系統聯網,可以直接使用wget命令下載
wget http://nginx.org/download/nginx-1.24.0.tar.gz 如果系統中沒有安裝wget,需要先進行安裝,例如在CentOS系統上可以使用以下命令: yum install -y wget 2. 安裝Nginx相關依賴 在編譯安裝Nginx之前,需要安裝一些必要的依賴包
這些依賴包包括gcc-c++、zlib、zlib-devel、openssl、openssl-devel和pcre、pcre-devel等
在線環境下,可以直接使用yum命令進行安裝: yum install -y gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel 如果是離線環境,則需要下載這些依賴包的安裝包,然后解壓并安裝
3. 編譯安裝Nginx 下載并安裝完依賴包后,可以開始編譯安裝Nginx
首先解壓下載的Nginx安裝包: tar -zxvf nginx-1.24.0.tar.gz 然后進入解壓后的目錄,執行配置腳本: cd nginx-1.24.0 ./configure --prefix=/usr/local/nginx 如果配置腳本報錯提示缺少C編譯器,可以安裝gcc和gcc-c++: yum -y install gcc gcc-c++ autoconf automake make 配置成功后,使用make命令進行編譯和安裝: make && make install 編譯安裝完成后,Nginx會自動創建必要的文件和目錄,包括配置文件、日志文件等,默認位于/usr/local/nginx目錄下
二、啟動與停止Nginx 1. 啟動Nginx 進入Nginx的安裝目錄,執行啟動腳本: cd /usr/local/nginx/sbin ./nginx -c /usr/local/nginx/conf/nginx.conf 也可以直接使用絕對路徑啟動Nginx: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 啟動后,可以使用以下命令檢查Nginx是否成功啟動: ps -ef | grep nginx 如果Nginx成功啟動,可以通過瀏覽器訪問服務器的IP地址或域名(默認端口為80)來驗證Nginx是否正常工作
2. 停止Nginx 停止Nginx的命令如下: /usr/local/nginx/sbin/nginx -s stop 也可以使用系統服務命令停止Nginx(如果已將Nginx配置為系統服務): systemctl stop nginx 3. 重新加載配置 修改Nginx配置文件后,需要重新加載配置使其生效
可以使用以下命令重新加載配置: /usr/local/nginx/sbin/nginx -s reload 或者使用系統服務命令重新加載配置: systemctl reload nginx 三、配置Nginx Nginx的配置文件通常位于/usr/local/nginx/conf/nginx.conf(源碼編譯安裝)或/etc/nginx/nginx.conf(包管理器安裝)
Nginx的配置文件采用模塊化設計,包含多個上下文(context),每個上下文定義了一組相關的配置指令
1. 全局塊 全局塊是Nginx配置文件的開始部分,主要設置一些影響Nginx服務器整體運行的配置指令,包括配置運行Nginx服務器的用戶(組)、允許生成的worker process數、進程PID存放路徑、日志存放路徑和類型以及配置文件的引入等
user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /run/nginx.pid; 2. events塊 events塊定義事件模塊的配置,影響Nginx的并發處理能力
主要配置指令包括worker_connections(指定每個工作進程的最大并發連接數)和use(指定事件模型,通常使用默認值即可)
events { worker_connections 1024; use epoll; } 3. http塊 http塊定義HTTP模塊的配置,包含全局HTTP配置和虛擬主機配置
主要配置指令包括include(包含其他配置文件)、default_type(指定默認的MIME類型)、sendfile(啟用sendfile系統調用,提高靜態文件傳輸效率)、keepalive_timeout(指定長連接的超時時間)和gzip(啟用Gzip壓縮,減少傳輸數據量)等
http { include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; gzip on; include /etc/nginx/conf.d/.conf; include /etc/nginx/sites-enabled/; } 4. server塊 server塊定義虛擬主機的配置,每個虛擬主機可以獨立配置不同的域名、端口和目錄
主要配置指令包括listen(指定監聽的端口和IP地址)、server_name(指定虛擬主機的主機名)、root(指定虛擬主機的根目錄)、index(指定默認的索引文件)和error_page(指定錯誤頁面的路徑)等
server { listen 80; server_name example.com www.example.com; root /var/www/example.com; index index.html index.htm; error_page 404 /404.html; location/ { root /var/www/example.com; index index.html index.htm; } location /static/ { alias /var/www