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

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

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

Nginx 服務(wù)器

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

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

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

Nginx 使用‌共享內(nèi)存區(qū)域‌來(lái)實(shí)現(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;瀏覽器會(huì)發(fā)送HTTP請(qǐng)求到Nginx,Nginx處理請(qǐng)求并返回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 {
        }
    }

# 測(cè)試配置文件
[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)聽I(yíng)Pv6端口;
  • server_name:域名;
  • root:網(wǎng)站根目錄;
  • index:默認(rèn)首頁(yè)文件;
  • location:location塊;決定了‌如何處理不同的客戶端請(qǐng)求路徑‌
# location塊語(yǔ)法
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嘗試多個(gè)文件路徑
proxy_pass反向代理到后端
index設(shè)置默認(rèn)索引文件
rewriteURL 重寫
add_header添加 HTTP 響應(yīng)頭
deny / allow訪問(wèn)控制

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‌生成一個(gè)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)建證書簽名請(qǐng)求文件(www.csr);subj參數(shù)定義了證書主體信息,其中CN參數(shù)必須與域名一致;
openssl x509 -req -days 3650 -in www.csr -signkey www.key -out www.crt使用私鑰(www.key)對(duì)CSR簽名,生成有效期為3650天的自簽名證書;

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

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

之后還需在站點(diǎn)配置文件中配置啟用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能處理加密請(qǐng)求;若省略ssl,即使監(jiān)聽443端口,Nginx也‌不會(huì)啟用加密‌;

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

動(dòng)態(tài)腳本

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

PHP是為Web而生的服務(wù)器端腳本語(yǔ)言;通過(guò)與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!

之后在站點(diǎn)配置文件中配置支持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)訪問(wèn)的文件不存在時(shí)返回配置的文件地址,通常和fastcgi_index協(xié)同工作;
  • fastcgi_index:指定默認(rèn)的PHP入口文件;‌優(yōu)先級(jí)低于try_files;
  • fastcgi_param SCRIPT_FILENAME:指定PHP腳本的完整路徑;$document_root為網(wǎng)站根目錄,$fastcgi_script_name為請(qǐng)求的PHP文件路徑;
  • include fastcgi_params:包含預(yù)定義的FastCGI參數(shù);

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

反向代理

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

Nginx可以在站點(diǎn)配置文件中配置實(shí)現(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;
    }

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

總結(jié)

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

相關(guān)文章

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

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

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

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

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

    詳解Nginx Location配置

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

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

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

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

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

    Linux版本中Nginx平滑升級(jí)與回退

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

    nginx反向代理下的長(zhǎng)連接實(shí)現(xiàn)

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

    網(wǎng)頁(yè)502?Bad?Gateway?nginx/1.20.1報(bào)錯(cuò)的原因與解決方法

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

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

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

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

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

最新評(píng)論

武陟县| 柞水县| 沁阳市| 根河市| 辽中县| 花莲市| 通河县| 余干县| 敦化市| 通州区| 沅陵县| 河北省| 蒙城县| 望都县| 石楼县| 马山县| 容城县| 陵川县| 舒城县| 开化县| 临湘市| 会泽县| 澄江县| 板桥市| 洛浦县| 肃南| 河西区| 宁海县| 页游| 北宁市| 房产| 新宾| 航空| 淮北市| 弋阳县| 本溪| 鹤峰县| 汕尾市| 文昌市| 桐柏县| 开原市|