日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CentOS7下安装nginx1.99

發布時間:2025/3/19 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOS7下安装nginx1.99 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1、前期準備
    • 1.1 安裝gcc
    • 1.2 安裝其他依賴包
    • 1.3 下載安裝包
  • 2、安裝nginx
    • 2.1 解壓nginx
    • 2.2 編譯安裝
    • 2.3 啟動
    • 2.4 常用命令
  • 3、Nginx配置
    • use epoll 配置說明
    • log_format日志格式設置
    • nginx的upstream的幾種分配方式
      • 1、輪詢(默認)
      • 2、weight(加權輪詢)
      • 3、ip_hash
      • 4、fair(第三方)
      • 5、url_hash(第三方)

1、前期準備

1.1 安裝gcc

首先檢查是否安裝了gcc

[root@hadoop-master test]# gcc -v bash: gcc: 未找到命令...

本機沒有安裝gcc,因此使用一下命令安裝gcc

[root@hadoop-master test]# yum -y install gcc gcc-c++ autoconf automake make

安裝完成之后再檢查gcc版本

1.2 安裝其他依賴包

其他依賴包如下,我們一次安裝:pcre-devel、zlib-devel、openssl-devel

[root@hadoop-master test]# yum -y install pcre-devel zlib-devel openssl openssl-devel

1.3 下載安裝包

可以在官網直接下載:http://nginx.org/download/
也可以通過如下命令行進行下載

[root@hadoop-master test]# wget http://nginx.org/download/nginx-1.9.9.tar.gz

2、安裝nginx

2.1 解壓nginx

文中將nginx-1.9.9.tar.gz放在目錄:/usr/local
解壓nginx-1.9.9.tar.gz

[root@hadoop-master local]# cd /usr/local [root@hadoop-master local]# tar zxvf nginx-1.9.9.tar.gz

2.2 編譯安裝

配置

[root@hadoop-master local]# cd nginx-1.9.9/ [root@hadoop-master nginx-1.9.9]# ./configure --prefix=/usr/local/nginx

編譯、安裝

[root@hadoop-master nginx-1.9.9]# make [root@hadoop-master nginx-1.9.9]# make install

檢查是否安裝成功

[root@hadoop-master nginx-1.9.9]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

2.3 啟動

啟動我們的nginx

/usr/local/nginx/sbin/nginx

訪問我們虛擬機的ip地址

http://192.168.223.131/

正常的情況是如下頁面:

如果訪問不了,大概率的情況還是防火墻沒開端口

[root@hadoop-master nginx-1.9.9]# firewall-cmd --query-port=80/tcp no

將80端口加入到防火墻中

[root@hadoop-master nginx-1.9.9]# firewall-cmd --add-port=80/tcp --permanent #重啟防火墻 [root@hadoop-master nginx-1.9.9]# systemctl restart firewalld

再次查看端口狀態

[root@hadoop-master nginx-1.9.9]# firewall-cmd --query-port=80/tcp yes

至此,CentOS7下安裝nginx結束。

2.4 常用命令

我本地的nginx命令位置:/usr/local/nginx/sbin/nginx

啟動nginx,默認監聽80端口

nginx

啟動指定配置文件的nginx:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

快速停止服務器:

nginx -s stop

停止服務器,但要等到請求處理完畢后關閉:

nginx -s quit

重新加載配置文件:

nginx -s reload

指定配置文件重啟

/usr/local/nginx/sbin/nginx -s reload -c /usr/local/nginx/conf/nginx.conf

3、Nginx配置

配置文件位置/usr/local/nginx/conf/nginx.conf 配置文件結構如下:

配置內容省略... #全局塊events { #events塊配置內容省略... }http #http塊 {配置內容省略... #http全局塊server #server塊{配置內容省略... #server全局塊location [PATTERN] #location塊{配置內容省略...}location [PATTERN]{配置內容省略...}}server { 配置內容省略... } 配置內容省略... #http全局塊 }

1、全局塊:配置影響nginx全局的指令。一般有運行nginx配置器的用戶組,nginx進程pid存放路徑,日志存放路徑,配置文件引入,允許生成worker process數等。
2、events塊:配置影響nginx服務器或與用戶的網絡連接。有每個進程的最大連接數,選取哪種事件驅動模型處理連接請求,是否允許同時接收多個網絡連接,開啟多個網絡連接序列化等。
3、http塊:可以嵌套多個server,配置代理,緩存,日志定義等絕大多數功能和第三方模塊的配置。如文件引入,mime-type定義,日志自定義,是否使用sendfile傳輸文件,連接超時時間,但連接請求數等。
4、server塊:配置虛擬機主機的相關參數,一個http中可以有多個server
5、location:配置請求路由,以及各種頁面的處理情況

# 配置用戶及組,默認是nobody nobody #user nobody; # 工作進程:數據。根據硬件調整,通常等于CPU數量或者2倍于CPU。 worker_processes 1;# 錯誤日志:日志路徑,級別。這個設置可以放入全局塊,http塊,server塊,級別以此為:debug|info|notice|warn|error|crit|alert|emerg #error_log logs/error.log; #error_log logs/error.log notice; error_log logs/error.log info;# pid(進程標識符):存放路徑。 pid logs/nginx.pid;# 指定進程可以打開的最大描述符:數目。這個指令是指當一個nginx進程打開的最多文件描述符數目,理論值應該是最多打開文件數(ulimit -n)與nginx進程數相除,但是nginx分配請求并不是那么均勻,所以最好與ulimit -n 的值保持一致。如果總并發量超過這個數據可能會返回502錯誤。 worker_rlimit_nofile 102400;events {accept_mutex on; # 設置網路連接序列化,防止驚群現象發生,默認為on multi_accept on; # 設置一個進程是否同時接受多個網絡連接,默認為off use epoll; # 事件驅動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport worker_connections 102400; # 每個工作進程的最大連接數量。根據硬件調整,和前面工作進程配合起來用,盡量大,但是別把cpu跑到100%就行。每個進程允許的最多連接數,理論上每臺nginx服務器的最大連接數為。 }http {include mime.types; # 文件或站名與文件類型映射表default_type application/octet-stream; # 默認文件類型,默認為text/plain#access_log off; # 取消服務日志log_format myFormat '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';log_format log404 '$status [$time_local] $remote_addr $host$request_uri $sent_http_location'; # 自定義格式# 用了log_format指令設置了日志格式之后,需要用access_log指令指定日志文件的存放路徑;access_log logs/access.log myFormat;# 用了log_format指令設置了日志格式之后,需要用access_log指令指定日志文件的存放路徑;access_log logs/host.access.404.log log404;# 保存服務器名字的hash表是由指令server_names_hash_max_size和server_names_hash_bucket_size所控制的。# 參數hash bucket size總是等于hash表的大小,并且是一路處理器緩存大小的倍數。# 在減少了在內存中的存取次數后,使在處理器中加速查找hash表鍵值成為可能。# 如果hash bucket size等于一路處理器緩存的大小,那么在查找鍵的時候,最壞的情況下在內存中查找的次數為2# 第一次是確定存儲單元的地址,第二次是在存儲單元中查找鍵值。# 因此,如果Nginx給出需要增大hash max size 或 hash bucket size的提示,那么首要的是增大前一個參數的大小.server_names_hash_bucket_size 128;# 客戶端請求頭部的緩沖區大小。這個可以根據你的系統分頁大小來設置,一般一個請求的頭部大小不會超過1k,不過由于一般系統分頁都要大于1k,所以這里設置為分頁大小。分頁大小可以用命令getconf PAGESIZE取得。client_header_buffer_size 4k;# 客戶請求頭緩沖大小。nginx默認會用client_header_buffer_size這個buffer來讀取header值,如果header過大,它會使用large_client_header_buffers來讀取。large_client_header_buffers 8 128k;# 這個指令指定緩存是否啟用open_file_cache max=102400 inactive=20s; open_file_cache_valid 30s; # 語法:open_file_cache_valid time 默認值:open_file_cache_valid 60 使用字段:http, server, location 這個指令指定了何時需要檢查open_file_cache中緩存項目的有效信息.open_file_cache_min_uses 2; # 語法:open_file_cache_min_uses number 默認值:open_file_cache_min_uses 1 使用字段:http, server, location 這個指令指定了在open_file_cache指令無效的參數中一定的時間范圍內可以使用的最小文件數,如果使用更大的值,文件描述符在cache中總是打開狀態.open_file_cache_errors on; # 語法:open_file_cache_errors on | off 默認值:open_file_cache_errors off 使用字段:http, server, location 這個指令指定是否在搜索一個文件是記錄cache錯誤.# 設定通過nginx上傳文件的大小(如果上傳文件比較大可以修改這個值)client_max_body_size 300m;# sendfile指令指定 nginx 是否調用sendfile 函數(zero copy 方式)來輸出文件,對于普通應用,必須設為on。# 如果用來進行下載等應用磁盤IO重負載應用,可設置為off,以平衡磁盤與網絡IO處理速度,降低系統uptime。sendfile on;# 此選項允許或禁止使用socke的TCP_CORK的選項,此選項僅在使用sendfile的時候使用tcp_nopush on;# 后端服務器連接的超時時間_發起握手等候響應超時時間proxy_connect_timeout 90;# 連接成功后_等候后端服務器響應時間_其實已經進入后端的排隊之中等候處理(也可以說是后端服務器處理請求的時間)proxy_read_timeout 180;# 后端服務器數據回傳時間_就是在規定時間之內后端服務器必須傳完所有的數據proxy_send_timeout 180;# 設置從被代理服務器讀取的第一部分應答的緩沖區大小,通常情況下這部分應答中包含一個小的應答頭,默認情況下這個值的大小為指令proxy_buffers中指定的一個緩沖區的大小,不過可以將其設置為更小proxy_buffer_size 256k;# 設置用于讀取應答(來自被代理服務器)的緩沖區數目和大小,默認情況也為分頁大小,根據操作系統的不同可能是4k或者8kproxy_buffers 4 256k;# 忙時buffer 的最大值。 一個客戶端一次只能從一個buffer 中讀取數據的同時,剩下的buffer 會被放到隊列中,等待發送到客戶端,這個directive 指定在這個狀態下的buffer 的大小proxy_busy_buffers_size 256k;# 設置在寫入proxy_temp_path時數據的大小,預防一個工作進程在傳遞文件時阻塞太長proxy_temp_file_write_size 256k;# proxy_temp_path和proxy_cache_path指定的路徑必須在同一分區proxy_temp_path /usr/local/nginx/data0/proxy_temp_dir;# 設置內存緩存空間大小為200MB,1天沒有被訪問的內容自動清除,硬盤緩存空間大小為10GB。proxy_cache_path /usr/local/nginx/data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=10g;#keepalive超時時間keepalive_timeout 120;# 也是一個 socket 選項,啟用后會禁用 Nagle 算法,盡快發送數據,某些情況下可以節約 200ms#(Nagle 算法原理是:在發出去的數據還未被確認之前,新生成的小數據先存起來,湊滿一個 MSS 或者等到收到確認后再發送)。# Nginx 只會針對處于 keep-alive 狀態的 TCP 連接才會啟用 tcp_nodelay。# 可以看到 TCP_NOPUSH 是要等數據包累積到一定大小才發送,TCP_NODELAY 是要盡快發送,二者相互矛盾。實際上,它們確實可以一起用,最終的效果是先填滿包,再盡快發送。tcp_nodelay on;# 如果把它設置為比較大的數值,例如256k,那么,無論使用firefox還是IE瀏覽器,來提交任意小于256k的圖片,都很正常。# 如果注釋該指令,使用默認的client_body_buffer_size設置,也就是操作系統頁面大小的兩倍,8k或者16k,問題就出現了。# 無論使用firefox4.0還是IE8.0,提交一個比較大,200k左右的圖片,都返回500 Internal Server Error錯誤client_body_buffer_size 512k;# 我們在上線前,代碼(JS、CSS 和 HTML)會做壓縮,圖片也會做壓縮(PNGOUT、Pngcrush、JpegOptim、Gifsicle 等)。# 對于文本文件,在服務端發送響應之前進行 GZip 壓縮也很重要,通常壓縮后的文本大小會減小到原來的 1/4 - 1/3#gzip on;# 表示使nginx阻止HTTP應答代碼為400或者更高的應答。proxy_intercept_errors on;# nginx的upstream配置upstream bakend {ip_hash;server hadoop-master:8001;server hadoop-master:8002;server hadoop-master:8003;}server {# 配置監聽端口listen 80;# 配置訪問域名server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;index index.html index.htm;}# 這是個springboot項目/helloworld-demo就是上下文路徑,指定800180028003三個端口啟動location /helloworld-demo {proxy_pass http://bakend;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {# proxy_pass http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {# deny all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {# listen 8000;# listen somename:8080;# server_name somename alias another.alias;# location / {# root html;# index index.html index.htm;# }#}# HTTPS server##server {# listen 443 ssl;# server_name localhost;# ssl_certificate cert.pem;# ssl_certificate_key cert.key;# ssl_session_cache shared:SSL:1m;# ssl_session_timeout 5m;# ssl_ciphers HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers on;# location / {# root html;# index index.html index.htm;# }#}}

use epoll 配置說明

使用epoll的I/O 模型。linux建議epoll,FreeBSD建議采用kqueue,window下不指定。
補充說明:
與apache相類,nginx針對不同的操作系統,有不同的事件模型
A)標準事件模型
Select、poll屬于標準事件模型,如果當前系統不存在更有效的方法,nginx會選擇select或poll
B)高效事件模型
Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用雙處理器的MacOS X系統使用kqueue可能會造成內核崩潰。
Epoll:使用于Linux內核2.6版本及以后的系統。
/dev/poll:使用于Solaris 7 11/99+,HP/UX 11.22+ (eventport),IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。
Eventport:使用于Solaris 10。 為了防止出現內核崩潰的問題, 有必要安裝安全補丁。

log_format日志格式設置

$remote_addr 與 $http_x_forwarded_for用以記錄客戶端的ip地址:

$remote_user: 用來記錄客戶端用戶名稱;
$time_local: 用來記錄訪問時間與時區;
$request: 用來記錄請求的url與http協議;
$status: 用來記錄請求狀態;成功是200,
$body_bytes_sent : 記錄發送給客戶端文件主體內容大小;
$http_referer: 用來記錄從那個頁面鏈接訪問過來的;
$http_user_agent: 記錄客戶瀏覽器的相關信息;

通常web服務器放在反向代理的后面,這樣就不能獲取到客戶的IP地址了,通過$remote_add拿到的IP地址是反向代理服務器的iP地址。反向代理服務器在轉發請求的http頭信息中,可以增加x_forwarded_for信息,用以記錄原有客戶端的IP地址和原來客戶端的請求的服務器地址。

nginx的upstream的幾種分配方式

1、輪詢(默認)

每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。

upstream bakend {server 192.168.0.14;server 192.168.0.15; }

2、weight(加權輪詢)

指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況。
例如:

upstream bakend {server 192.168.0.14 weight=10;server 192.168.0.15 weight=10; }

3、ip_hash

每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題。
例如:

upstream bakend {ip_hash;server 192.168.0.14:88;server 192.168.0.15:80; }

ip_hash使用的是ip地址前三位作為hash的key,如果是內網情況下會發現所有機器都映射到一臺機器,如果想實現內網的ip_hash參考《Nginx在局域網內實現真正的ip_hash負載均衡》

4、fair(第三方)

按后端服務器的響應時間來分配請求,響應時間短的優先分配。

upstream backend {server server1;server server2;fair; }

5、url_hash(第三方)

按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存時比較有效。
例:在upstream中加入hash語句,server語句中不能寫入weight等其他的參數,hash_method是使用的hash算法

upstream backend {server squid1:3128;server squid2:3128;hash $request_uri;hash_method crc32; }

注意:

upstream bakend{ # 定義負載均衡設備的Ip及設備狀態ip_hash;server 127.0.0.1:9090 down;server 127.0.0.1:8080 weight=2;server 127.0.0.1:6060;server 127.0.0.1:7070 backup; }

在需要使用負載均衡的server中增加:

proxy_pass http://bakend/;

每個設備的狀態設置為:

  • down表示單前的server暫時不參與負載
  • weight為weight越大,負載的權重就越大。
  • max_fails:允許請求失敗的次數默認為1.當超過最大次數時,返回proxy_next_upstream模塊定義的錯誤
  • fail_timeout:max_fails次失敗后,暫停的時間。
  • backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這臺機器壓力會最輕。
  • nginx支持同時設置多組的負載均衡,用來給不用的server來使用。
    client_body_in_file_only設置為On 可以講client post過來的數據記錄到文件中用來做debug
    client_body_temp_path設置記錄文件的目錄 可以設置最多3層目錄
    location對URL進行匹配可以進行重定向或者進行新的代理 負載均衡

    參考:
    本博客 Nginx 配置之性能篇(https://imququ.com/post/my-nginx-conf-for-wpo.html)

    總結

    以上是生活随笔為你收集整理的CentOS7下安装nginx1.99的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 受虐m奴xxx在线观看 | 黑人100部av解禁片 | 日本黄色片. | 性高潮在线观看 | 色校园| 成人免费看片网站 | 日本人妻不卡一区二区三区中文字幕 | 日日夜夜撸撸 | 日韩中文字幕亚洲精品欧美 | 午夜精品福利一区二区蜜股av | 9色视频在线观看 | 日本男女激情视频 | 欧美精品久久久久久久久老牛影院 | 欧美亚洲另类在线 | 一区二区三区视频免费在线观看 | 国产精品自在线 | 欧美日韩黄色一区二区 | 宿舍女女闺蜜调教羞辱 | 99re伊人| 精品盗摄一区二区三区 | www.操.com| 国产免费一区二区 | 中文字幕亚洲国产 | av免费不卡 | 欧美精品卡一卡二 | 女同在线视频 | 色女孩综合网 | 打白嫩屁屁网站视频短裙 | 久久久无码18禁高潮喷水 | 亚欧在线视频 | 麻豆精品免费观看 | 色爽交| 俺来也av | 精品国产一区二区三区四区精华 | 免费的污网站 | 亚洲欧美日韩在线一区二区 | 国产一卡二卡在线播放 | 欧美日韩成人精品 | 日韩大片在线免费观看 | 夜夜操操操 | 9·1·黄·色·视·频 | 亚洲综合站 | 免费观看的毛片 | 久久久久a | 亚洲麻豆精品 | 亚洲精品视频久久久 | 99色这里只有精品 | 亚洲精品中文字幕在线播放 | 中国女人内谢69xxxx免费视频 | 国产一区二区欧美日韩 | 黄色最新网址 | 91se在线| 泰剧19禁啪啪无遮挡 | 国产三级91 | 欧美mv日韩mv国产 | 中文字幕av无码一区二区三区 | 国产一区二区片 | 中文字幕久久熟女蜜桃 | 姑娘第5集高清在线观看 | 久久精品国产av一区二区三区 | 男人的天堂视频 | 无码国产69精品久久久久同性 | 精品国产成人av | 香蕉视频在线观看网站 | 男生和女生一起差差差很痛的视频 | 日本a级一区 | 欧美午夜一区二区 | 伊人网视频在线 | 欧美成人免费在线视频 | 十八禁视频网站在线观看 | 视频一区三区 | 日韩国产一区 | 国产精品一区在线观看你懂的 | 久久精品一日日躁夜夜躁 | 日日夜夜一区 | 午夜视频在线观看国产 | 欧美做受| 欧美在线三区 | 国产成人精品在线观看 | 毛片黄色片 | 国产91精品看黄网站在线观看 | 午夜两性网 | 欧美激情精品 | 欧美小视频在线观看 | 国产精品vip | 国产视频一区二区不卡 | av在线首页| 好紧好爽再浪一点视频 | 五月激情小说 | 日韩一区在线视频 | 欧美在线视频第一页 | 偷偷操不一样的久久 | 女的高潮流时喷水图片大全 | 91av高清| 丰满人妻一区二区三区53号 | 国产成年网站 | 成人瑟瑟| 精品黄色在线观看 | 欧美巨大另类极品videosbest |