柚子快報(bào)邀請(qǐng)碼778899分享:前端 nginx
柚子快報(bào)邀請(qǐng)碼778899分享:前端 nginx
nginx的源碼編譯
[root@nginx-model ~]# wget https://nginx.org/download/nginx-1.24.0.tar.gz
解壓
tar zxf nginx-1.24.0.tar.gz
[root@nginx-node1 nginx-1.24.0]# dnf install gcc -y
[root@nginx-node1 nginx-1.24.0]# ./configure --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_ssl_module \
> --with-http_v2_module \
> --with-http_realip_module \
>? --with-http_gzip_static_module \
>? --with-http_stub_status_module \
>? --with-pcre \
>?? --with-stream? \
>?? --with-stream_ssl_module
出現(xiàn)error
[root@nginx-node1 nginx-1.24.0]# dnf search pcre
?
[root@nginx-node1 nginx-1.24.0]# dnf install pcre-devel.x86_64 -y
?
[root@nginx-node1 nginx-1.24.0]# dnf search openssl
[root@nginx-node1 nginx-1.24.0]# dnf install openssl-devel.x86_64 -y
?[root@nginx-node1 nginx-1.24.0]# dnf install zlib-devel -y
?再次編譯
ok
關(guān)閉debug功能
[root@nginx-node1 nginx-1.24.0]# make && make install
開(kāi)始和停止的代碼
把nginx軟件的命令執(zhí)行路陷進(jìn)添加到環(huán)境變量中
[root@nginx-node1 conf]# dnf list nginx
?nginx平滑審計(jì)以及版本回滾
Wget+地址
?Xshell,用xftp傳輸echo-nginx-module-0.63.tar.gz
解壓
編譯
因?yàn)橹白鲞^(guò),因此只需要make
?備份
[root@nginx-node1 sbin]# cp nginx nginx.old
覆蓋
[root@nginx-node1 sbin]# \cp -f /root/nginx-1.26.2/objs/nginx /usr/local/nginx/sbin
[root@nginx-node1 sbin]# ll
?寫(xiě)個(gè)死循環(huán)
?新的worker
?curl 查看是否更新
激活old,回收新的
curl查看
關(guān)掉舊的
?nginx命令的常用參數(shù)
查看配置
[root@nginx-node1 sbin]# nginx -v
?檢測(cè)配置文件語(yǔ)法
[root@nginx-node1 sbin]# nginx -t
?
[root@nginx-node1 sbin]# systemctl daemon-reload
[root@nginx-node1 sbin]# ps aux | grep nginx
nginx全局配置參數(shù)優(yōu)化調(diào)整
vim /usr/local/nginx/conf/nginx.conf
?查看打開(kāi)文件最大數(shù)量
修改打開(kāi)文件最大數(shù)
進(jìn)入[root@nginx-node1 ~]# vim /usr/local/nginx/conf/nginx.conf
?
[root@nginx-node1 ~]# vim /usr/local/nginx/conf/nginx.conf
[root@nginx-node1 ~]# nginx -s reload
nginx配置中的root和alias
進(jìn)入[root@nginx-node1 ~]# vim /usr/local/nginx/conf/nginx.conf
寫(xiě)新的棧點(diǎn),子配置文件?
[root@nginx-node1 ~]# vim /usr/local/nginx/conf.d/vhost.conf
[root@nginx-node1 ~]# mkdir -p /data/web/html
[root@nginx-node1 ~]# echo www.timinglee.org > /data/web/html/index.html
server{
listen 80;
server_name www.timinglee.org;
root /data/web/html;
index index.html;
}
?刷新
?
[root@nginx-node1 ~]# vim /usr/local/nginx/conf.d/vhost.conf
[root@nginx-node1 ~]# mkdir /data/web/test1 -p
[root@nginx-node1 ~]# mkdir /data/web/test1 > /data/web/test1/index.html
nginx-location用法
[root@nginx-node1 ~]# mkdir /data/web/test -p
[root@nginx-node1 ~]# echo test page > /data/web/test/index.html
[root@nginx-node1 ~]# nginx -s reload
訪問(wèn)?
可以訪問(wèn)
測(cè)試兩者優(yōu)先級(jí)
不加等號(hào)的優(yōu)先級(jí)高?
?nginx下的用戶認(rèn)證
創(chuàng)建日志文件
[root@nginx-node1 ~]# htpasswd -cm /usr/local/nginx/.hrpasswd admin
[root@nginx-node1 ~]# htpasswd -m /usr/local/nginx/.htpasswd lee
?
[root@nginx-node1 ~]# mkdir /data/web/lee
[root@nginx-node1 ~]# echo lee > /data/web/lee/index.html
?編輯文件
[root@nginx-node1 ~]# vim /usr/local/nginx/conf.d/vhost.conf
location /lee {
root /data/web;
}
可以登錄
?添加用戶認(rèn)證
location /lee {
root /data/web;
auth_basic "login password !!";
auth_basic_user_file "/usr/local/nginx/.htpasswd";
}
[root@nginx-node1 ~]# nginx -s reload
?登錄訪問(wèn)
?nginx-自定義日志
[root@nginx-node1 ~]# vim /usr/local/nginx/conf.d/vhost.con
error_page 404 /40x.html;
error_log /var/log/timinglee.org/error.log
access_log /var/log/timinglee.org/access.log
?建文件
刷新
訪問(wèn)?
?錯(cuò)誤訪問(wèn)
?查看日志
?nginx中的文件檢測(cè)
[root@nginx-node1 ~]# vim /usr/local/nginx/conf.d/vhost.conf
try_files $uri $uri.html $uri/index.html /error/default.html;
[root@nginx-node1 ~]# nginx -s reload
?
nginx中的長(zhǎng)鏈接管理
安裝telnet,長(zhǎng)鏈接測(cè)試工具
[root@nginx-node1 ~]# dnf install telnet -y
[root@nginx-node1 ~]# vim /usr/local/nginx/conf/nginx.conf
keepalive_timeout 65;
keepalive_requests 2;
?測(cè)試
?
nginx-下載服務(wù)器的設(shè)定及優(yōu)化?
創(chuàng)建目錄
[root@nginx-node1 ~]# mkdir /data/web/download
[root@nginx-node1 ~]# dd if=/dev/zero of=/data/web/download/leefile bs=1M count=100
?
[root@nginx-node1 ~]# vim /usr/local/nginx/conf.d/vhost.conf
location /download {
root /data/web;
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
limit_rate 1024k;
}
?測(cè)試
?
nginx的數(shù)據(jù)壓縮功能
新建子配置文件
[root@nginx-node1 ~]# vim /usr/local/nginx/conf/nginx.conf
gzip on;
gzip_comp_level 5;
gzip_min_length 1k;
gzip_http_version 1.1;
gzip_vary on;
gzip_types text/plain application/javascript application/x-javascript text/css
application/xml text/javascript application/x-httpd-php image/gif image/png;
?刷新保存
?創(chuàng)建一個(gè)小文件
?大文件
?成功!?。?/p>
nginx中的變量
?
?
[root@nginx-node1 conf.d]# vim vars.conf
server {
listen 80
server_name var.timinglee.org;
root /data/web/html;
index index.html;
location /var {
default_type text/html;
echo $remote_addr;
echo $args;
echo $document_root;
echo $document_uri;
echo $host;
echo $remote_port;
echo $remote_user;
echo $request_method;
echo $request_filename;
echo $request_uri;
echo $scheme;
echo $server_protocol;
echo $server_addr;
echo $server_name,
echo $server_port;
echo $http_user_agent;
echo $http_cookie;
echo $cookie_key2;
echo $name;
}
}
[root@nginx-node1 conf.d]# nginx -s reload
?輸入命令查看
[root@nginx-node1 conf.d]# curl -b "key1=lee,key2=lee1" -u lee:lee var.timinglee.org/var?name=lee&&id=6666
?
防盜鏈
防盜鏈基于客戶端攜帶的referer實(shí)現(xiàn),referer是記錄打開(kāi)一個(gè)頁(yè)面之前記錄是從哪個(gè)頁(yè)面跳轉(zhuǎn)過(guò)來(lái)的標(biāo) 記信息,如果別人只鏈接了自己網(wǎng)站圖片或某個(gè)單獨(dú)的資源,而不是打開(kāi)了網(wǎng)站的整個(gè)頁(yè)面,這就是盜鏈。
當(dāng)我們網(wǎng)頁(yè)中有一個(gè)圖片
他人直接連接到我們網(wǎng)站的圖片,直接不勞而獲
?做一些措施防止此類事情的發(fā)生
?
?
反向代理
nginx主機(jī)
[root@nginx html]# vim /usr/local/nginx/conf.d/vhosts.conf
server {
listen 80;
server_name www.timinglee.org;
location /{
proxy_pass http://192.168.160.110:80;
}
}
?server1主機(jī)
下載httpd
yum install httpd -y
?寫(xiě)入數(shù)據(jù)做測(cè)試
echo server1 192.168.160.110 > /var/www/html/index.html
?server2 主機(jī)
?下載httpd
yum install httpd -y
?創(chuàng)建文件寫(xiě)入數(shù)據(jù)修改端口
[root@server2 ~]# mkdir /var/www/html/static
[root@server~]#echoserver2 192.168.160.120 >/var/www/html/static/index.html
[root@server2 ~]# vim /etc/httpd/conf/httpd.conf
?測(cè)試
?
[root@nginx? html ]# curl www.timinglee.org/static/server2 192.168.160.120
[root@nginx-node1 ~]# curl www.timinglee.orgserver1 192.168.160.110
?
FastCGI
什么是FastCGI?
FastCGI是進(jìn)程管理器。CGI會(huì)將webserver的請(qǐng)求轉(zhuǎn)發(fā)給會(huì)解決請(qǐng)求的人。PHP處于一會(huì)兒上班一會(huì)兒下班的狀態(tài)。PHP-FPM:FastCGI Process Manager。worker進(jìn)程一般會(huì)有多個(gè),每個(gè)進(jìn)程會(huì)嵌入一個(gè)PHP解析器,進(jìn)行PHP代碼的處理。
實(shí)驗(yàn)環(huán)境:
刪掉nginx目錄:
[root@nginx ~]# rm -rf /usr/local/nginx
?解壓
?編譯新的nginx
./configure --prefix=/usr/local/nginx --add-module=/root/echo-nginx-module-0.63 --add-module=/root/memc-nginx-module-0.20 --add-module=/root/srcache-nginx-module-0.33 --user=nginx --group=nginx --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-stream --with-stream_ssl_module --with-stream_realip_module --with-pcre
?安裝
[root@nginx nginx-1.26.2]# make && make install
安裝php
下載安裝依賴包
yum install -y bzip2 systemd-devel libxml2-devel sqlite-devel libpng-devel libcurl-devel oniguruma-devel
oniguruma-devel?這個(gè)包需要再網(wǎng)上下載?
wget https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/oniguruma-devel-6.9.6-1.el9.5.x86_64.rpm
?安裝即可
[root@nginx nginx-1.26.2]# dnf oniguruma-devel-6.9.6-1.el9.5.x86_64.rpm
?編碼
./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-curl --with-iconv --with-mhash --with-zlib --with-openssl --enable-mysqlnd --with-mysqli --with-pdo-mysql --disable-debug --enable-sockets --enable-soap --enable-xml --enable-ftp --enable-gd --enable-exif --enable-mbstring --enable-bcmath --with-fpm-systemd
?
--prefix=/usr/local/php \???????????????????????????? #安裝路徑
--with-config-file-path=/usr/local/php/etc \???? #指定配置路徑
--enable-fpm \??????????????????????????????????????? #用cgi方式啟動(dòng)程序
--with-fpm-user=nginx \?????????????????????????? #指定運(yùn)行用戶身份
--with-fpm-group=nginx \
--with-curl \????????????????????????????????????????? #打開(kāi)curl瀏覽器支持
--with-iconv \?????????????????????????????????????? #啟用iconv函數(shù),轉(zhuǎn)換字符編碼
--with-mhash \???????????????????????????????????? #mhash加密方式擴(kuò)展庫(kù)
?--with-zlib \????????????????????????????????????????? #支持zlib庫(kù),用于壓縮http壓縮傳輸
--with-openssl \?????????????????????????????????? #支持ssl加密
--enable-mysqlnd \????????????????????????????? #mysql數(shù)據(jù)庫(kù)
--with-mysqli \?
--with-pdo-mysql \
--disable-debug \??????????????????????????????? #關(guān)閉debug功能
--nable-sockets \????????????????????????????? #支持套接字訪問(wèn)
--enable-soap \?????????????????????????????????? #支持soap擴(kuò)展協(xié)議
--enable-xml \???????????????????????????????????? #支持xml
--enable-ftp \?????????????????????????????????????? #支持ftp
--enable-gd \?????????????????????????????????????? #支持gd庫(kù)
--enable-exif \???????????????????????????????????? #支持圖片元數(shù)據(jù)
--enable-mbstring \???????????????????????????? #支持多字節(jié)字符串
--enable-bcmath \?????????????????????????????#打開(kāi)圖片大小調(diào)整,用到zabbix監(jiān)控是用到該模塊
--with-fpm-systemd???????????????????????????? #支持systemctl 管理cg
再make
?
php相關(guān)配置優(yōu)化
[root@nginx php-8.3.9]# cd /usr/local/php/etc/
[root@nginx etc]# ls
php-fpm.conf.default php-fpm.d
[root@nginx etc]# cp -p php-fpm.conf.default php-fpm.conf
[root@nginx etc]# vim php-fpm.conf
?指定pid文件存放位置
[root@nginx etc]# cd php-fpm.d/
[root@nginx php-fpm.d]# cp www.conf.default ?www.conf -p
?主配置文件?
[root@nginx php-8.3.9]# cp php.ini-production /usr/local/php/lib/php.ini
?時(shí)區(qū)修改
vim /usr/local/php/lib/php.ini
?生成啟動(dòng)文件
[root@nginx php-8.3.9]# cp sapi/fpm/php-fpm.service /lib/systemd/system/
[root@nginx php-8.3.9]# vim /lib/systemd/system/php-fpm.service
環(huán)境變量?
[root@nginx php-8.3.9]# cd /usr/local/php/bin/
[root@nginx bin]# vim ~/.bash_profile
[root@nginx bin]# source ~/.bash_profile
?寫(xiě)子配置文件
?
[root@nginx bin]# vim /usr/local/nginx/conf/nginx.conf
[root@nginx bin]# vim /usr/local/nginx/conf.d/vhosts.conf
server {
listen 80;
server_name www.timinglee.org;
root /data/web/html;
location ~\.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
?準(zhǔn)備php測(cè)試頁(yè)面
[root@nginx ~]# cat /data/php/index.php
phpinfo();
?>
?測(cè)試
?安裝memcache模塊
?安裝并解壓
?下載autoconf
?phpize
?復(fù)制文件到nginx發(fā)布目錄中
[root@nginx memcache-8.2]# cp example.php memcache.php /data/php/
[root@nginx memcache-8.2]# vim /data/php/memcache.php
?配置php加載memcache模塊
[root@nginx memcache-8.2]# vim /usr/local/php/lib/php.ini
部署memcached
?測(cè)試
??不斷刷新
?查看性能
?
?nginx 二次開(kāi)發(fā)
?先把nginx關(guān)閉,因?yàn)閛penresty與nginx只能運(yùn)行一個(gè)
創(chuàng)建一個(gè)沒(méi)有家目錄不能遠(yuǎn)程登錄的用戶
?編碼
[root@nginx bin]# ./configure --prefix=/usr/local/openresty --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
?安裝
?環(huán)境變量
[root@nginx bin]# vim ~/.bash_profile
[root@nginx bin]# source ~/.bash_profil
開(kāi)啟
****openresty與NGINX的用法基本一致
?
柚子快報(bào)邀請(qǐng)碼778899分享:前端 nginx
相關(guān)文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。