溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

少年郎,我這里有一份nginx配置,你拿走吧

發(fā)布時(shí)間:2020-04-08 20:41:22 來(lái)源:網(wǎng)絡(luò) 閱讀:95 作者:java架構(gòu)師1 欄目:編程語(yǔ)言

首先,直接上干貨:

user  root;
worker_processes  4;

error_log  /var/log/nginx/error.log;
#pid        logs/nginx.pid;

events {
    use  epoll;
    worker_connections  65536;
    accept_mutex on;
    multi_accept on;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    limit_conn_zone $binary_remote_addr zone=addr:20m;
    #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  logs/access.log  main;

    sendfile        on;
    sendfile_max_chunk 100k;
    tcp_nopush     on;

    keepalive_timeout  30;
    client_header_buffer_size 128k;
    large_client_header_buffers 4 128k;
    client_max_body_size 30m;
    client_body_buffer_size 128k;
    underscores_in_headers on;
    server_name_in_redirect off;
    gzip  on;
    #fastcgi_intercept_errors on;
    #error_page 403 404 500 502 504 = https://test.xyh-health.cn/nginx/err/;
    include /etc/nginx/conf.d/*.conf;

    upstream gateway {
        server 127.0.0.1:8308;
    }
    server {
        listen    80;
        keepalive_requests 120;
        server_name 127.0.0.1;

        location / {
            root /opt/html/;
        }
    }       
    server {
        listen 443 ssl  http2 default_server;
        server_name test.xyh-health.cn test.xyh.tk;
        add_header X-Frame-Options "SAMEORIGIN";
       # proxy_intercept_errors on;
        charset utf-8;

    location ^~ /yx/ {
        root /opt/html/;
    }
    location /hys-cms/ {
        proxy_pass http://localhost:8082/hys-cms/;
    }
    location / {
        proxy_pass   http://gateway/;
        proxy_set_header Host      $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # limit_conn addr 30;
        fastcgi_intercept_errors on;
        error_page 404 /opt/html/nginx/err/error.html;
     }
        ssl_certificate /etc/letsencrypt/live//fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live//privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot

        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    }

}

然后,咱們挨個(gè)看這幾個(gè)模塊:
核心模塊
user root:配置用戶或者用戶組。
worker_processes 4;:用來(lái)設(shè)置 Nginx 服務(wù)的進(jìn)程數(shù)。該值推薦使用 CPU 內(nèi)核數(shù)。
pid:指定 nginx 進(jìn)程運(yùn)行文件存放地址。
error_log:錯(cuò)誤日志路徑,級(jí)別。
事件模塊:events{}

use epoll;:事件驅(qū)動(dòng)模型select|poll|kqueue|epoll|resig。epoll 是 Nginx 支持的高性能事件驅(qū)動(dòng)庫(kù)之一。是公認(rèn)的非 常優(yōu)秀的事件驅(qū)動(dòng)模型。它比select模型高效很多。主要表現(xiàn)在:
1,每個(gè)進(jìn)程能夠打開的fd的個(gè)數(shù)是沒(méi)有限制的 2,由于網(wǎng)絡(luò)延遲等原因,任一時(shí)間只有部分的socket是"活躍"的,而select/poll每次調(diào)用都會(huì)線性掃描全部的集合(輪詢方式),導(dǎo)致效率呈現(xiàn)線性下降。但是epoll不存在這個(gè)問(wèn)題,它只會(huì)對(duì)"活躍"的socket進(jìn)行操作---這是因?yàn)樵趦?nèi)核實(shí)現(xiàn)中epoll是根據(jù)每個(gè)fd上面的callback函數(shù)實(shí)現(xiàn)的,如果fd就緒就會(huì)通知進(jìn)程,增加了效率。于是,只有"活躍"的socket才會(huì)主動(dòng)去調(diào)用callback函數(shù),其他idle狀態(tài)的socket則不會(huì)。
worker_rlimit_nofile:設(shè)置毎個(gè)進(jìn)程的最大文件打開數(shù)。如果不設(shè)的話上限就是系統(tǒng)的 ulimit–n 的數(shù)字,一般為65535。
worker_connections 65536;:設(shè)置一個(gè)進(jìn)程理論允許的最大連接數(shù),理論上越大越好,但不可以超過(guò) worker_rlimit_nofile 的值。
accept_mutex:當(dāng)其設(shè)置為開啟的時(shí)候,將會(huì)對(duì)多個(gè) Nginx 進(jìn)程接受連接進(jìn)行序列化,防止多個(gè)進(jìn)程對(duì)連接的爭(zhēng)搶。當(dāng)服務(wù)器連接數(shù)不多時(shí),開啟這個(gè)參數(shù)會(huì)讓負(fù)載有一定程度的降低。但是當(dāng)服務(wù)器的吞吐量很大時(shí),為了效率,請(qǐng)關(guān)閉這個(gè)參數(shù);并且關(guān)閉這個(gè)參數(shù)的時(shí)候也可以讓請(qǐng)求在多個(gè) worker 間的分配更均衡。
multi_accept:設(shè)置一個(gè)進(jìn)程可同時(shí)接受多個(gè)網(wǎng)絡(luò)連接。
http模塊:http{}

include:文件擴(kuò)展名與文件類型映射表。
default_type:默認(rèn)文件類型,默認(rèn)為text/plain。
limit_conn_zone:訪問(wèn)限制模塊。
log_format:日志格式化。
sendfile:Sendfile 是 Linux2.0 以后的推出的一個(gè)系統(tǒng)調(diào)用,它能簡(jiǎn)化網(wǎng)絡(luò)傳輸過(guò)程中的步驟,提高服務(wù)器性能。
sendfile_max_chunk:每個(gè)進(jìn)程每次調(diào)用傳輸數(shù)量不能大于設(shè)定的值,默認(rèn)為0,即不設(shè)上限。
tcp_nopush:設(shè)置數(shù)據(jù)包會(huì)累積一下再一起傳輸,可以提高一些傳輸效率。 tcp_nopush 必須和 sendfile 搭配使用。
**tcp_nodelay :小的數(shù)據(jù)包不等待直接傳輸。默認(rèn)為on??瓷先ナ呛?tcp_nopush 相反的功能,但是兩邊都為 on 時(shí) nginx 也可以平衡這兩個(gè)功能的使用。
keepalive_timeout:HTTP 連接的持續(xù)時(shí)間。
client_header_buffer_size:客戶端請(qǐng)求頭部的緩沖區(qū)大小,這個(gè)可以根據(jù)你的系統(tǒng)分頁(yè)大小來(lái)設(shè)置,一般一個(gè)請(qǐng)求的頭部大小不會(huì)超過(guò)1k,不過(guò)由于一般系統(tǒng)分頁(yè)都要大于1k,所以這里設(shè)置為分頁(yè)大小。分頁(yè)大小可以用命令getconf PAGESIZE取得。
large_client_header_buffers:設(shè)置客戶端請(qǐng)求的Header頭緩沖區(qū)大小,默認(rèn)為4K??蛻舳苏?qǐng)求行不能超過(guò)設(shè)置的第一個(gè)數(shù),請(qǐng)求的Header頭信息不能大于設(shè)置的第二個(gè)數(shù),否則會(huì)報(bào)"Request URI too large"(414)或“Bad request”(400)錯(cuò)誤。如果客戶端的Cookie信息較大,則需增加緩沖區(qū)大小
client_max_body_size:設(shè)置客戶端請(qǐng)求的Header頭緩沖區(qū)大小,默認(rèn)為4K??蛻舳苏?qǐng)求行不能超過(guò)設(shè)置的第一個(gè)數(shù),請(qǐng)求的Header頭信息不能大于設(shè)置的第二個(gè)數(shù),否則會(huì)報(bào)"Request URI too large"(414)或“Bad request”(400)錯(cuò)誤。如果客戶端的Cookie信息較大,則需增加緩沖區(qū)大小。
client_body_buffer_size:設(shè)定了request body的緩沖大小。
underscores_in_headers:果header name中包含下劃線,則忽略掉。默認(rèn)off。
server_name_in_redirect:如果server_name_in_redirect為off時(shí),那么將會(huì)以當(dāng)前服務(wù)器的IP地址進(jìn)行拼接URL;如果該命令為on,那么首先查找server_name,如果沒(méi)有找到,查找請(qǐng)求頭的HOST字段,如果沒(méi)有,則以當(dāng)前服務(wù)器的IP進(jìn)行拼接。
gzip:開啟gzip壓縮功能,對(duì)用戶請(qǐng)求的頁(yè)面進(jìn)行壓縮處理,以達(dá)到節(jié)省網(wǎng)絡(luò)帶寬,提高網(wǎng)站速度的作用。
include:包含配置文件,并且支持文件名的匹配。
upstream:負(fù)載均衡配置。
server
listen:監(jiān)聽端口。
keepalive_requests **:?jiǎn)芜B接請(qǐng)求上限次數(shù)。
server_name:監(jiān)聽地址 。
接著,還剩下location的匹配規(guī)則,下次再來(lái)個(gè)詳細(xì)的說(shuō)明吧~

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI