最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx服務(wù)器部署詳細(xì)代碼實例

 更新時間:2025年12月08日 11:14:56   作者:G_Cloudpipe  
Nginx是一個高性能的HTTP和反向代理web服務(wù)器,同時也提供了 IMAP/POP3/SMTP服務(wù),這篇文章主要介紹了Nginx服務(wù)器部署的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

Nginx 服務(wù)器

Nginx是一個‌高性能、高并發(fā)、輕量級‌的開源 ‌Web 服務(wù)器‌軟件;

Nginx 高性能和高并發(fā)的核心就在于其‌事件驅(qū)動和‌異步非阻塞I/O模型;Nginx 通信可分為4個階段:

  1. 主進(jìn)程啟動:啟動 Nginx 時,首先運(yùn)行的是‌主進(jìn)程;主要負(fù)責(zé)讀取并驗證配置文件,‌創(chuàng)建和管理子進(jìn)程‌,綁定端口等;主進(jìn)程本身不處理客戶端連接或請求
  2. 創(chuàng)建工作進(jìn)程:主進(jìn)程會創(chuàng)建一或多個‌工作進(jìn)程‌,工作進(jìn)程的數(shù)量通常會根據(jù) CPU 核心數(shù)自動設(shè)置;工作進(jìn)程是真正處理客戶端連接和請求的實體;所有工作進(jìn)程獨立且平等,都運(yùn)行在‌單線程‌中;工作進(jìn)程的核心是使用一個‌事件驅(qū)動循環(huán);
  3. 事件驅(qū)動循環(huán):每個工作進(jìn)程內(nèi)部都有一個持續(xù)的循環(huán),稱為事件循環(huán);該模型允許一個‌單線程的工作進(jìn)程同時管理數(shù)萬個并發(fā)連接;
  4. 連接處理:當(dāng)Nginx監(jiān)聽的端口出現(xiàn)新TCP請求時,主進(jìn)程本身監(jiān)聽了這些端口,但它‌不會‌處理連接;內(nèi)核會將這個新建立的連接‌交給其中一個工作進(jìn)程,該工作進(jìn)程開始在這個連接上處理 HTTP 請求/響應(yīng)或其他協(xié)議;

Nginx 使用‌共享內(nèi)存區(qū)域‌來實現(xiàn)工作進(jìn)程間的數(shù)據(jù)共享,主進(jìn)程負(fù)責(zé)創(chuàng)建這些共享內(nèi)存區(qū)域;

[root@server ~]# yum -y install nginx | tail -n 1
Complete!
[root@server ~]# systemctl enable nginx --now
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@server ~]# firewall-cmd --add-service=http --permanent
success
[root@server ~]# firewall-cmd --reload
success

在瀏覽器地址欄輸入Nginx服務(wù)器的IP地址或域名,如http://10.1.8.10;瀏覽器會發(fā)送HTTP請求到Nginx,Nginx處理請求并返回HTML內(nèi)容;

默認(rèn)返回/usr/share/nginx/html/index.html

使用該方法連接Nginx需配置監(jiān)聽80端口(HTTP)或443端口(HTTPS);

Nginx的主配置文件/etc/nginx/nginx.conf/etc/nginx/目錄下包含了所有nginx的配置文件;

/etc/nginx/nginx.conf包含全局配置域、網(wǎng)絡(luò)連接配置域HTTP配置域;其中HTTP配置域內(nèi)的server塊是虛擬主機(jī)配置;

# 全局配置域
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# 網(wǎng)絡(luò)連接配置域
events {
    worker_connections 1024;
}
# HTTP配置域
http {
    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;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    # 虛擬主機(jī)配置
    server {
        listen       80;
        listen       [::]:80;
        server_name  www.gc.cloud;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

# 測試配置文件
[root@server ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

server塊中主要參數(shù)作用如下:

  • listen 80;:監(jiān)聽80端口;下方的 listen [::]:80; 是監(jiān)聽IPv6端口;
  • server_name:域名;
  • root:網(wǎng)站根目錄;
  • index:默認(rèn)首頁文件;
  • location:location塊;決定了‌如何處理不同的客戶端請求路徑‌;
# location塊語法
location [匹配模式] [匹配路徑] {
    [配置指令]
}

location包含5種路徑匹配模式:

  • location = /path:精確匹配;
  • location ^~ /path:前綴匹配(優(yōu)先于正則);
  • location ~ .php$:正則匹配(區(qū)分大小寫);
  • location ~* .(jpg|png)$:正則匹配(不區(qū)分大小寫);
  • location /:通用匹配;
location塊內(nèi)常用指令作用
root設(shè)置文件根目錄
alias路徑別名
try_files嘗試多個文件路徑
proxy_pass反向代理到后端
index設(shè)置默認(rèn)索引文件
rewriteURL 重寫
add_header添加 HTTP 響應(yīng)頭
deny / allow訪問控制

SSL/TLS 配置

SSL/TLS是加密通信的安全協(xié)議,在客戶端和服務(wù)器之間建立‌加密通道;證書是服務(wù)器的數(shù)字身份證‌;

Nginx是SSL/TLS的‌執(zhí)行者;

證書生成流程如下:

[root@server ~]# openssl genrsa -out www.key 2048
Generating RSA private key, 2048 bit long modulus
....+++
....+++
e is 65537 (0x10001)
[root@server ~]# openssl req -new -key www.key -out www.csr -subj "/C=CN/ST=JS/L=NJ/O=LM/OU=DEVOPS/CN=www.gc.cloud/emailAddress=gc@gc.cloud"
[root@server ~]# openssl x509 -req -days 3650 -in www.csr -signkey www.key -out www.crt
Signature ok
subject=/C=CN/ST=JS/L=NJ/O=LM/OU=DEVOPS/CN=www.gc.cloud/emailAddress=gc@gc.cloud
Getting Private key

openssl genrsa -out www.key 2048‌生成一個2048位的RSA私鑰文件(www.key),用于SSL/TLS加密通信的基礎(chǔ)密鑰;
openssl req -new -key www.key -out www.csr -subj "/C=CN/ST=JS/L=NJ/O=LM/OU=DEVOPS/CN=www.gc.cloud/emailAddress=gc@gc.cloud"‌用于創(chuàng)建證書簽名請求文件(www.csr);subj參數(shù)定義了證書主體信息,其中CN參數(shù)必須與域名一致;
openssl x509 -req -days 3650 -in www.csr -signkey www.key -out www.crt使用私鑰(www.key)對CSR簽名,生成有效期為3650天的自簽名證書;

站點配置文件一般需要獨立創(chuàng)建,以便于管理;一般位于/etc/nginx/sites-available/目錄下;
首先配置證書相關(guān)參數(shù)

  • ssl_certificate:證書路徑;
  • ssl_certificate_key:私鑰路徑;

之后還需在站點配置文件中配置啟用HTTP重定向到HTTPS

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  www.gc.cloud;
    root         /usr/share/nginx/html;

    ssl_certificate /www.crt;
    ssl_certificate_key /www.key;
}

server {
    listen       80;
    server_name  www.gc.cloud;
    root         /usr/share/nginx/html;
    return 301 https://$host$request_uri; # 重定向到HTTPS
}

443是HTTPS的默認(rèn)端口,專門用于加密數(shù)據(jù)傳輸,而80端口用于明文HTTP

ssl參數(shù)用于啟用SSL/TLS加密模塊,使Nginx能處理加密請求;若省略ssl,即使監(jiān)聽443端口,Nginx也‌不會啟用加密‌;

配置完成后重啟服務(wù)即可;

動態(tài)腳本

Nginx本身只能處理‌靜態(tài)資源‌(HTML/CSS/圖片),而PHP能給Nginx帶來‌動態(tài)內(nèi)容處理能力;

PHP是為Web而生的服務(wù)器端腳本語言;通過與Nginx進(jìn)行協(xié)同工作,能讓靜態(tài)網(wǎng)站變成可交互的智能應(yīng)用;

# 安裝php與其擴(kuò)展包
[root@server ~]# yum install -y php php-fpm | tail -n 1
Complete!
[root@server ~]# yum install -y php-gd php-common php-pear php-mbstring php-mcrypt | tail -n 1
Complete!

之后在站點配置文件中配置支持php;

location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
  • fastcgi_pass:指定PHP-FPM監(jiān)聽的地址和端口;上述寫法適用于同一服務(wù)器環(huán)境,也可使用fastcgi_pass 127.0.0.1:9000; 配置支持跨服務(wù)器部署,但需保證在php-fpm.conf配置PHP-FPM監(jiān)聽該端口;
  • try_files:按順序檢查文件/目錄;當(dāng)訪問的文件不存在時返回配置的文件地址,通常和fastcgi_index協(xié)同工作;
  • fastcgi_index:指定默認(rèn)的PHP入口文件;‌優(yōu)先級低于try_files
  • fastcgi_param SCRIPT_FILENAME:指定PHP腳本的完整路徑;$document_root為網(wǎng)站根目錄,$fastcgi_script_name為請求的PHP文件路徑;
  • include fastcgi_params:包含預(yù)定義的FastCGI參數(shù);

配置完成后就可以使用了;

反向代理

反向代理用于隱藏真實服務(wù)器;它接收用戶請求,再轉(zhuǎn)交給后端真實服務(wù)器,使用戶不直接和真實服務(wù)器進(jìn)行交互;

Nginx可以在站點配置文件中配置實現(xiàn)反向代理;

location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

通過語法檢查并重啟服務(wù)‌后就可以使用了;

總結(jié)

到此這篇關(guān)于Nginx服務(wù)器部署的文章就介紹到這了,更多相關(guān)Nginx服務(wù)器部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決Nginx + PHP(FastCGI)遇到的502 Bad Gateway錯誤

    解決Nginx + PHP(FastCGI)遇到的502 Bad Gateway錯誤

    昨日,有朋友問我,他將Web服務(wù)器換成Nginx 0.6.31 + PHP 4.4.7(FastCGI)后,有時候訪問會出現(xiàn)“502 Bad Gateway”錯誤,如何解決。
    2009-10-10
  • Nginx負(fù)載均衡算法之輪詢(默認(rèn))詳解

    Nginx負(fù)載均衡算法之輪詢(默認(rèn))詳解

    輪詢負(fù)載均衡算法是Nginx的默認(rèn)策略,通過將請求依次分配給后端服務(wù)器,實現(xiàn)負(fù)載均衡,該算法簡單易用,但無法考慮服務(wù)器性能差異,不支持動態(tài)負(fù)載調(diào)整,通過配置權(quán)重、健康檢查和動態(tài)負(fù)載均衡策略,可以優(yōu)化輪詢算法,以應(yīng)對更復(fù)雜的需求
    2026-03-03
  • 詳解Nginx Location配置

    詳解Nginx Location配置

    本篇文章給大家分享了Nginx Location配置的相關(guān)步驟以及具體方法,有需要的朋友參考學(xué)習(xí)下。
    2018-05-05
  • Nginx與安全相關(guān)的幾個配置小結(jié)

    Nginx與安全相關(guān)的幾個配置小結(jié)

    Nginx提供了一系列的安全相關(guān)參數(shù),可以幫助加固網(wǎng)站安全性,本文主要介紹了Nginx與安全相關(guān)的幾個配置小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • nginx常用命令放入shell腳本詳解

    nginx常用命令放入shell腳本詳解

    這篇文章主要介紹了nginx常用命令放入shell腳本詳解,文章講解的很清晰,有感興趣的同學(xué)可以研究下
    2021-02-02
  • Linux版本中Nginx平滑升級與回退

    Linux版本中Nginx平滑升級與回退

    這篇文章主要介紹了Linux中的Nginx平滑升級與回退,詳細(xì)介紹了平滑升級概念和思路講解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • nginx反向代理下的長連接實現(xiàn)

    nginx反向代理下的長連接實現(xiàn)

    本文主要介紹了Nginx反向代理下的長連接實現(xiàn),包括客戶端到Nginx和Nginx到后端服務(wù)器之間的長連接設(shè)置,具有一定的參考價值,感興趣的可以了解一下
    2024-11-11
  • 網(wǎng)頁502?Bad?Gateway?nginx/1.20.1報錯的原因與解決方法

    網(wǎng)頁502?Bad?Gateway?nginx/1.20.1報錯的原因與解決方法

    502 bad gateway nginx/1.20.1 是一個錯誤提示,通常出現(xiàn)在訪問網(wǎng)站時出現(xiàn)問題,這篇文章主要給大家介紹了關(guān)于網(wǎng)頁502?Bad?Gateway?nginx/1.20.1報錯的原因與解決方法,需要的朋友可以參考下
    2024-03-03
  • Nginx 服務(wù)器安裝及配置文件詳解介紹

    Nginx 服務(wù)器安裝及配置文件詳解介紹

    這篇文章主要介紹了Nginx 服務(wù)器安裝及配置文件詳解介紹,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-11-11
  • nginx-ingress-controller日志持久化方案的解決

    nginx-ingress-controller日志持久化方案的解決

    這篇文章主要介紹了nginx-ingress-controller日志持久化方案的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03

最新評論

得荣县| 富宁县| 双牌县| 樟树市| 平潭县| 连南| 南宁市| 仪征市| 许昌市| 基隆市| 伊金霍洛旗| 开远市| 彰化市| 潞城市| 西峡县| 安宁市| 伊宁市| 平泉县| 兴隆县| 中超| 宜阳县| 拉萨市| 松原市| 舞阳县| 砀山县| 凤凰县| 青岛市| 芜湖市| 东至县| 中宁县| 海口市| 祁阳县| 辽中县| 双江| 武威市| 新化县| 铁岭市| 兴文县| 梅河口市| 固原市| 三门峡市|