当前位置: 首页 > news >正文

wordpress移动到回收站时发生错误网站英文域名是什么

wordpress移动到回收站时发生错误,网站英文域名是什么,canvas做的网站,廊坊网络推广# 企业高性能web服务器 1、Nginx 编译安装 1.1 编译安装 Nginx 这里下载nginx-1.24.0.tar.gz和nginx-1.26.1.tar.gz可以在官方网站上下载#xff1a;https://nginx.org/en/download.html 示例#xff1a;nginx-1.24.0.tar.gz #提前将编译安装出现问题的安装包下载好# 企业高性能web服务器 1、Nginx 编译安装 1.1 编译安装 Nginx 这里下载nginx-1.24.0.tar.gz和nginx-1.26.1.tar.gz可以在官方网站上下载https://nginx.org/en/download.html 示例nginx-1.24.0.tar.gz #提前将编译安装出现问题的安装包下载好如下图所示 [rootnginx ~]# dnf install gcc pcre-devel zlib-devel openssl-devel -y[rootnginx ~]# tar zxf nginx-1.24.0.tar.gz [rootnginx ~]# cd nginx-1.24.0/ [rootnginx-1.24.0]# useradd -s /sbin/nologin -M nginx #关闭debug功能 [rootnginx nginx-1.24.0]# vim auto/cc/gcc # debug #CFLAGS$CFLAGS -g [rootnginx nginx-1.24.0]# ls auto CHANGES.ru configure html Makefile objs src CHANGES conf contrib LICENSE man README #编译安装这里可以使用./configure --help查看 [rootNginx nginx-1.24.0]# ./configure --prefix/usr/local/nginx \ --usernginx \ # 指定nginx运行用户 --groupnginx \ # 指定nginx运行组 --with-http_ssl_module \ # 支持https:// --with-http_v2_module \ # 支持http版本2 --with-http_realip_module \ # 支持ip透传 --with-http_stub_status_module \ # 支持状态页面 --with-http_gzip_static_module \ # 支持压缩 --with-pcre \ # 支持正则 --with-stream \ # 支持tcp反向代理 --with-stream_ssl_module \ # 支持tcp的ssl加密 --with-stream_realip_module # 支持tcp的透传ip #make完成后再看objs目录又有新文件 [rootnginx nginx-1.24.0]# make make install1.2验证版本及编译参数 #将nginx软件的命令执行路陷阱添加到环境变量中 [rootnginx ~]# vim ~/.bash_profile export PATH$PATH:/usr/local/nginx/sbin [rootnginx ~]# source ~/.bash_profile #验证版本 [rootnginx ~]# nginx -V nginx version: nginx/1.24.0 built by gcc 11.4.1 20231218 (Red Hat 11.4.1-3) (GCC) built with OpenSSL 3.0.7 1 Nov 2022 TLS SNI support enabled configure arguments: --groupnginx --with-http_ssl_module --with-http_v2_module - -with-http_realip_module --with-http_stub_status_module --withhttp_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module -- with-stream_realip_module#当前nginx进程 [rootnginx nginx-1.24.0]# ps aux | grep nginx root 47007 0.0 0.0 9864 2560 ? Ss 19:35 0:00 nginx: master process nginx nginx 47008 0.0 0.1 13760 5236 ? S 19:35 0:00 nginx: worker process root 48897 0.0 0.0 221664 2292 pts/2 S 22:41 0:00 grep --colorauto nginx #脚本启动nginx [rootnginx ~]# cd /usr/local/nginx/sbin/ #nginx的配置文件 [rootnginx sbin]# vim /usr/local/nginx/conf/nginx.conf[rootnginx sbin]# nginx -g worker_processes 6 nginx: [emerg] unexpected end of parameter, expecting ; in command line [rootnginx sbin]# nginx -g worker_processes 6; [rootnginx sbin]# ps aux | grep nginx root 49104 0.0 0.0 9864 932 ? Ss 23:24 0:00 nginx: master process nginx -g worker_processes 6; nginx 49105 0.0 0.1 13760 4756 ? S 23:24 0:00 nginx: worker process nginx 49106 0.0 0.1 13760 4756 ? S 23:24 0:00 nginx: worker process nginx 49107 0.0 0.1 13760 4756 ? S 23:24 0:00 nginx: worker process nginx 49108 0.0 0.1 13760 4756 ? S 23:24 0:00 nginx: worker process nginx 49109 0.0 0.1 13760 4756 ? S 23:24 0:00 nginx: worker process nginx 49110 0.0 0.1 13760 4756 ? S 23:24 0:00 nginx: worker process root 49112 0.0 0.0 221664 2292 pts/2 S 23:24 0:00 grep --colorauto nginxbash #nginx 启动文件 [rootnginx sbin]# vim /usr/local/nginx/conf/nginx.conf [Unit] DescriptionThe NGINX HTTP and reverse proxy server Aftersyslog.target network-online.target remote-fs.target nss-lookup.target Wantsnetwork-online.target [Service] Typeforking PIDFile/usr/local/nginx/logs/nginx.pid ExecStartPre/usr/local/nginx/sbin/nginx -t ExecStart/usr/local/nginx/sbin/nginx ExecReload/usr/local/nginx/sbin/nginx -s reload ExecStop/bin/kill -s QUIT $MAINPID PrivateTmptrue [Install] WantedBymulti-user.target [rootnginx sbin]# systemctl daemon-reload [rootnginx sbin]# nginx -s stop [rootnginx sbin]# ps aux | grep nginx root 49193 0.0 0.0 221664 2296 pts/2 S 23:28 0:00 grep --colorauto nginx [rootnginx sbin]# systemctl enable --now nginx Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service. [rootnginx sbin]# ps aux | grep nginx root 49227 0.0 0.0 9864 928 ? Ss 23:28 0:00 nginx: master process /usr/local/nginx/sbin/nginx nginx 49228 0.0 0.1 13760 4748 ? S 23:28 0:00 nginx: worker process root 49230 0.0 0.0 221664 2292 pts/2 S 23:28 0:00 grep --colorauto nginx[rootnginx ~]# nginx -s quit [rootnginx ~]# ps aux | grep nginx root 48970 0.0 0.0 221664 2292 pts/2 S 22:48 0:00 grep --colorauto nginx #前台运行 [rootnginx ~]# nginx -g daemon off nginx: [emerg] unexpected end of parameter, expecting ; in command line示例nginx-1.26.1.tar.gz [rootnginx ~]# tar zxf nginx-1.26.1.tar.gz [rootnginx ~]# cd nginx-1.26.1/ #开始编译新版本 [rootnginx nginx-1.26.1]# ./configure --prefix/usr/local/nginx/ --usernginx --groupnginx --add-module/root/echo-nginx-module-0.63 --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 #只要make无需要make install如果make install就会将原来的配置文件覆盖掉 [rootnginx nginx-1.26.1]# make#二进制文件复制 [rootnginx nginx-1.26.1]# cd objs/ [rootnginx objs]# cp -f nginx /usr/local/nginx/sbin/nginx#把之前的旧版的nginx命令备份 [rootnginx ~]# cd /usr/local/nginx/sbin/ [rootnginx sbin]# cp nginx nginx.24 [rootnginx ~]# 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 [rootnginx sbin]# ps aux | grep nginx root 49020 0.0 0.0 221664 2268 pts/2 S 23:07 0:00 grep --colorauto nginx #nginx worker ID [rootnginx sbin]# kill -USR2 490202、平滑升级和回滚 有时候我们需要对Nginx版本进行升级以满足对其功能的需求例如添加新模块需要新功能而此时Nginx又在跑着业务无法停掉这时我们就可能选择平滑升级 [rootNginx sbin]# curl -I localhost HTTP/1.1 200 OK Server: nginx/1.24.0 ##依旧是旧版本生生效 Date: Thu, 18 Jul 2024 07:45:58 GMT Content-Type: text/html Content-Length: 615 Last-Modified: Thu, 18 Jul 2024 03:41:13 GMT Connection: keep-alive ETag: 66988ed9-267 Accept-Ranges: bytes#回收旧版本 [rootnginx sbin]# kill -WINCH 49227 [rootnginx sbin]# ps aux | grep nginx root 49227 0.0 0.0 9864 928 ? Ss 23:28 0:00 nginx: master process /usr/local/nginx/sbin/nginx root 49235 0.0 0.0 221664 2280 pts/2 S 23:34 0:00 grep --colorauto nginx3、 Nginx 核心配置详解 3.1 配置文件说明 主配置文件[rootnginx ~]# vim /usr/local/nginx/conf/nginx.conf #主配置文件结构四部分 main block主配置段即全局配置段对http,mail都有效 #事件驱动相关的配置 event { ... } #http/https 协议相关配置段 http { 默认的nginx.conf 配置文件格式说明 ... } #默认配置文件不包括下面两个块 #mail 协议相关配置段 mail { ... } #stream 服务器相关配置段 stream { ... }#默认的nginx.conf 配置文件格式说明 #全局配置端对全局生效主要设置nginx的启动用户/组启动的工作进程数量工作模式Nginx的PID路 径日志路径等。 user nginx nginx; worker_processes 1; #启动工作进程数数量 events { #events #设置快主要影响nginx服务器与用户的网络连接比如是否允许同时接受多 个网络连接使用哪种事件驱动模型 #处理请求每个工作进程可以同时支持的 最大连接数是否开启对多工作进程下的网络连接进行序列化等。 worker_connections 1024; #设置单个nginx工作进程可以接受的最大并发作为web服务器 的时候最大并发数为 #worker_connections * worker_processes作为反向代理的时候为 #(worker_connections * worker_processes)/2 } http { #http块是Nginx服务器配置中的重要部分缓存、代理和日志格 式定义等绝大多数功能和第三方模块都 #可以在这设置http块可 以包含多个server块而一个server块中又可以包含多个location块 #server块可以配置文件引入、MIME-Type定义、日志自定义、是 否启用sendfile、连接超时时间和 #单个链接的请求上限等。 include mime.types; default_type application/octet-stream; sendfile on; #作为web服务器的时候打开sendfile加快静态文件传输指定是 否使用 #sendfile系统调用来传输文件 #sendfile系统调用在两个文件描述符之间直接传递数据(完全在 内核中操作) #从而避免了数据在内核缓冲区和用户缓冲区之间的拷贝操作效率 很高被称之为零拷贝 #硬盘 kernel buffer (快速拷贝到kernelsocket buffer) 协议栈。 keepalive_timeout 65; #长连接超时时间单位是秒 server { #设置一个虚拟机主机可以包含自己的全局快同时也可以包含多 个location模块 #比如本虚拟机监听的端口、本虚拟机的名称和IP配置多个 server 可以使用一个端口比如都使用 #80端口提供web服务 listen 80; #配置server监听的端口 3.2 全局配置 Main 全局配置段常见的配置指令分类 正常运行必备的配置 优化性能相关的配置 用于调试及定位问题相关的配置 事件驱动相关的配置 全局配置说明: server_name localhost; #本server的名称当访问此名称的时候nginx会调用当前serevr 内部的配置进程匹配。 location / { #location其实是server的一个指令为nginx服务器提供比较 多而且灵活的指令 #都是在location中体现的主要是基于nginx接受到的请求字符 串 #对用户请求的UIL进行匹配并对特定的指令进行处理 #包括地址重定向、数据缓存和应答控制等功能都是在这部分实现 #另外很多第三方模块的配置也是在location模块中配置。 root html; #相当于默认页面的目录名称默认是安装目录的相对路径可以使 用绝对路径配置。 index index.html index.htm; #默认的页面文件名称 } error_page 500 502 503 504 /50x.html; #错误页面的文件名称 location /50x.html { #location处理对应的不同错误码的页面定 义到/50x.html #这个跟对应其server中定义的目录下。 root html; #定义默认页面所在的目录 } } #和邮件相关的配置 #mail { # ... # } mail 协议相关配置段 #tcp代理配置1.9版本以上支持 #stream { # ... # } stream 服务器相关配置段 #导入其他路径的配置文件 #include /apps/nginx/conf.d/*.conf }示例 #系统有几个cpu就启动几个子线程 [rootnginx ~]# lscpu [rootnginx ~]# vim /usr/local/nginx/conf/nginx.conf[rootnginx ~]# ps axo pid,cmd,psr | grep ngiinx49296 grep --colorauto ngiinx 0 #修改pam限制 [rootnginx ~]# sudo -u nginx ulimit -n 1024 [rootnginx ~]# vim /etc/security/limits.conf nginx - nofile 100000 [rootnginx ~]# sudo -u nginx ulimit -n 100000 [rootnginx ~]# sudo -u nginx ulimit -a real-time non-blocking time (microseconds, -R) unlimited core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 14215 max locked memory (kbytes, -l) 8192 max memory size (kbytes, -m) unlimited open files (-n) 100000 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 14215 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited 3.2 实现 nginx 的高并发配置 [rootNginx ~]# ulimit -n 100000 [rootnginx ~]# dnf install httpd-tools -y [rootnginx ~]# ab -c 5000 -n 10000 http://172.25.254.100/index.html#默认配置不支持高并发,会出现以下错误日志 [rootNginx ~]# tail /apps/nginx/logs/error.log 2020/09/24 21:19:33 [crit] 41006#0: *1105860 open() /apps/nginx/html/50x.html failed (24: Too many open files), client: 10.0.0.7, server: localhost, request: GET / HTTP/1.0, host: 10.0.0.8 2020/09/24 21:19:33 [crit] 41006#0: accept4() failed (24: Too many open files) 2020/09/24 21:19:33 [crit] 41006#0: *1114177 open() /apps/nginx/html/index.html failed (24: Too many open files), client: 10.0.0.7, server: localhost, request: GET / HTTP/1.0, host: 10.0.0.8 #修改配置 [rootnginx ~]# vim /etc/security/limits.conf* - nproc 100000 [rootNginx ~]# vim /apps/nginx/conf/nginx.conf worker_rlimit_nofile 100000; [rootNginx ~]# systemctl restart nginx3.3核心配置示例 3.3.1 新建一个 PC web 站点 [rootnginx ~]# vim /usr/local/nginx/conf/nginx.conf include /usr/local/nginx/conf.d/*.conf;[rootnginx ~]# mkdir -p /usr/local/nginx/conf.d/ [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf server{listen 80;server_name www.timinglee.org;root /data/web/html;index index.html; }[rootnginx ~]# 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 [rootnginx ~]# nginx -s reload [rootnginx ~]# mkdir -p /data/web/html [rootnginx ~]# echo www.timinglee.org /data/web/html/index.html一定要做本地解析不然访问不到要以管理员身份打开hosts文件如果不是可以在属性里修改权限之后就可以在浏览器中访问解析后的内容 3.3.2root 与 alias root指定web的家目录在定义location的时候文件的绝对路径等于 rootlocation root示例 [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf [rootnginx ~]# nginx -s reload [rootnginx ~]# mkdir /data/web/test1 -p [rootnginx ~]# echo /data/web/test1 /data/web/test1/index.html这里会出现一个错误然后访问的时候访问不到此时可以用查看日志的方法寻找错误 [rootnginx ~]# tail /usr/local/nginx/logs/error.log错误原因 修改 再次访问就可以访问的到 alias示例 alias定义路径别名会把访问的路径重新定义到其指定的路径,文档映射的另一种机制;仅能用于 location上下文,此指令使用较少 [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf [rootnginx ~]# nginx -s reload再次访问依旧可以访问的到 3.3.3location #语法规则 location [ | ~ | ~* | ^~ ] uri { … } #只能精确指定文件需要请求字串与uri精确匹配大小敏感,如果匹配成功就停止向下匹配并立 即处理请求 ^~ #用于标准uri前表示包含正则表达式,并且匹配以指定的正则表达式开头 #对uri的最左边部分做匹配检查不区分字符大小写 ~ #用于标准uri前表示包含正则表达式,并且区分大小写 ~* #用于标准uri前表示包含正则表达式,并且不区分大写 不带符号 #匹配起始于此uri的所有的uri \ #用于标准uri前表示包含正则表达式并且转义字符。可以将 . * ?等转义为普通符号 不带等号 [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf server{listen 80;server_name www.timinglee.org;root /data/web/html;index index.html;location /test {root /data/web;} }[rootnginx ~]# mkdir /data/web/test -p [rootnginx ~]# echo test page /data/web/test/index.html [rootnginx ~]# nginx -s reload访问 带等号 [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf server{listen 80;server_name www.timinglee.org;root /data/web/html;index index.html;location /test {root /data/web;}location /test {root /data/web;} } [rootnginx ~]# nginx -s reload~~标准的uri前必须要有/ 以/t开头识别lee不识别 [rootnginx ~]# mkdir -p /data/web1/{test1,tee} [rootnginx ~]# echo test1 /data/web1/test1/index.html [rootnginx ~]# echo tee /data/web1/tee/index.html [rootnginx ~]# mkdir -p /data/web1/lee [rootnginx ~]# echo lee /data/web1/lee/index.html[rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf server{listen 80;server_name www.timinglee.org;root /data/web/html;index index.html;location /test {root /data/web2;}location /test {root /data/web1;}location ^~ /t {root /data/web1;} } [rootnginx ~]# nginx -s reload~区分大小写 [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf [rootnginx ~]# nginx -s reload server{listen 80;server_name www.timinglee.org;root /data/web/html;index index.html;location /test {root /data/web2;}location /test {root /data/web1;}location ^~ /t {root /data/web1;}location ~\.html$ {root /data/web1/;} }大写默认访问不到大写 [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf [rootnginx ~]# nginx -s reload [rootnginx ~]# echo index.lee /data/web1/lee/index.lee server{listen 80;server_name www.timinglee.org;root /data/web/html;index index.html;location /test {root /data/web2;}location /test {root /data/web1;}location ^~ /t {root /data/web1;}location ~\.html$ {root /data/web1/;}location ~* .HTML$ {root /data/web1;} }优先级~ 等于 ~* 大于 不带 大于 ^~ 大于 3.3.4 Nginx 账户认证功能 [rootnginx ~]# htpasswd -cm /usr/local/nginx/.htpasswd admin New password: Re-type new password: Adding password for user admin [rootnginx ~]# cat /usr/local/nginx/.htpasswd admin:$apr1$MuzW5D.k$1xJ1x962htx0E0ECaHMTG0 [rootnginx ~]# [rootnginx ~]# htpasswd -m /usr/local/nginx/.htpasswd lee New password: Re-type new password: Adding password for user lee [rootnginx ~]# [rootnginx ~]# cat /usr/local/nginx/.htpasswd admin:$apr1$MuzW5D.k$1xJ1x962htx0E0ECaHMTG0 lee:$apr1$gjJ8UFja$hfJLqGRY/J.q9pDaEiLlQ. [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf [rootnginx ~]# nginx -s reload server {listen 80;server_name www.timinglee.org;root /data/web/html;index index.html;location /lee {root /data/web;auth_basic login password!!;auth_basic_user_file /usr/local/nginx/.htpasswd;} }访问 3.3.5自定义错误页面 [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf server {listen 80;server_name www.timinglee.org;root /data/web/html;index index.html;error_page 404 /40x.html;location /lee {root /data/web;auth_basic login password!!;auth_basic_user_file /usr/local/nginx/.htpasswd;}location /40x.html {root /data/web/errorpage;} }[rootnginx ~]# nginx -s reload [rootnginx ~]# mkdir -p /data/web/errorpage [rootnginx ~]# echo error page /data/web/errorpage/40x.html访问 3.3.5自定义错误日志 [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf server {listen 80;server_name www.timinglee.org;root /data/web/html;index index.html;error_page 404 /40x.html;error_log /var/log/timinglee.org/error.log;access_log /var/log/timinglee.org/access.log;location /lee {root /data/web;auth_basic login password!!;auth_basic_user_file /usr/local/nginx/.htpasswd;}location /40x.html {root /data/web/errorpage;} } [rootnginx ~]# nginx -s reload [rootnginx ~]# mkdir /var/log/timinglee.org [rootnginx ~]# curl www.timinglee.org www.timinglee.org [rootnginx ~]# cat /var/log/timinglee.org/access.log 172.25.254.100 - - [16/Aug/2024:14:40:29 0800] GET / HTTP/1.1 200 18 - curl/7.76.1[rootnginx ~]# curl www.timinglee.org/aaa error page [rootnginx ~]# cat /var/log/timinglee.org/error.log 2024/08/16 14:42:16 [error] 52605#0: *73 open() /data/web/html/aaa failed (2: No such file or directory), client: 172.25.254.100, server: www.timinglee.org, request: GET /aaa HTTP/1.1, host: www.timinglee.org3.3.6检测文件是否存在 #文件存在 [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf [rootnginx ~]# [rootnginx ~]# nginx -s reload [rootnginx ~]# [rootnginx ~]# [rootnginx ~]# curl www.timinglee.org www.timinglee.org #文件不存在 [rootnginx ~]# rm -rf /data/web/html/index.html [rootnginx ~]# rm -rf /data/web/html/error/ [rootnginx ~]# curl www.timinglee.org html headtitle500 Internal Server Error/title/head body centerh1500 Internal Server Error/h1/center hrcenternginx/1.24.0/center /body /html[rootnginx ~]# mkdir /data/web/html/error [rootnginx ~]# echo error default /data/web/html/error/default.html [rootnginx ~]# curl www.timinglee.org error default3.3.7长连接配置——主配置文件 [rootnginx ~]# vim /usr/local/nginx/conf/nginx.conf#keepalive_timeout 0;keepalive_timeout 65;keepalive_requests 2; [rootnginx ~]# nginx -s reload #下载测试工具 [rootnginx ~]# dnf install telnet -y [rootnginx ~]# curl -v www.timinglee.org * Trying 172.25.254.100:80... * Connected to www.timinglee.org (172.25.254.100) port 80 (#0)GET / HTTP/1.1Host: www.timinglee.orgUser-Agent: curl/7.76.1Accept: */** Mark bundle as not supporting multiuseHTTP/1.1 200 OKServer: nginx/1.24.0Date: Fri, 16 Aug 2024 06:57:31 GMTContent-Type: text/htmlContent-Length: 14Last-Modified: Fri, 16 Aug 2024 06:50:38 GMTConnection: keep-aliveETag: 66bef6be-eAccept-Ranges: byteserror default * Connection #0 to host www.timinglee.org left intact #测试两次 [rootnginx ~]# telnet www.timinglee.org 80 Trying 172.25.254.100... Connected to www.timinglee.org. Escape character is ^]. GET / HTTP/1.1 Host: www.timinglee.orgHTTP/1.1 200 OK Server: nginx/1.24.0 Date: Fri, 16 Aug 2024 07:02:50 GMT Content-Type: text/html Content-Length: 14 Last-Modified: Fri, 16 Aug 2024 06:50:38 GMT Connection: keep-alive ETag: 66bef6be-e Accept-Ranges: bytesTrying 172.25.254.100... Connected to www.timinglee.org. Escape character is ^]. GET / HTTP/1.1 Host: www.timinglee.orgHTTP/1.1 200 OK Server: nginx/1.24.0 Date: Fri, 16 Aug 2024 07:02:50 GMT Content-Type: text/html Content-Length: 14 Last-Modified: Fri, 16 Aug 2024 06:50:38 GMT Connection: keep-alive ETag: 66bef6be-e Accept-Ranges: byteswww.timinglee.org3.3.8 作为下载服务器配置 [rootnginx ~]# mkdir /data/web/download [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf server {listen 80;server_name www.timinglee.org;root /data/web/html;index index.html;error_page 404 /40x.html;error_log /var/log/timinglee.org/error.log;access_log /var/log/timinglee.org/access.log;try_files $uri $uri.html $uri/index.html /error/default.html;location /lee {root /data/web;auth_basic login password!!;auth_basic_user_file /usr/local/nginx/.htpasswd;}location /40x.html {root /data/web/errorpage;}location /dawnload {root /data/web;} } [rootnginx ~]# nginx -s reload [rootnginx ~]# dd if/dev/zero of/data/web/download/leeefile bs1M count1001000 records in 1000 records out 104857600 bytes (105 MB, 100 MiB) copied, 0.0783402 s, 1.3 GB/s默认找不到 [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf [rootnginx ~]# nginx -s reload这里会发现页面时间是格林威治时间修改为北京时间 [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf autoindex_localtime on; [rootnginx ~]# nginx -s reload限速 [rootnginx ~]# vim /usr/local/nginx/conf.d/vhost.conf limit_rate 1024k; [rootnginx ~]# nginx -s reload3.3.9状态页 需要做本地解析 [rootnginx ~]# cd /usr/local/nginx/conf.d/[rootnginx conf.d]# vim status.conf server {listen 80;server_name status.timinglee.org;root /data/web/html;index index.html;location /status {stub_status;} } 状态页用于输出nginx的基本状态信息 #输出信息示例 Active connections: #当前处于活动状态的客户端连接数 #包括连接等待空闲连接数readingwritingwaiting accepts #统计总值Nginx自启动后已经接受的客户端请求连接的总数。 handled: #统计总值Nginx自启动后已经处理完成的客户端请求连接总数 #通常等于accepts除非有因worker_connections限制等被拒绝的 连接 requests: #统计总值Nginx自启动后客户端发来的总的请求数 Reading: #当前状态正在读取客户端请求报文首部的连接的连接数 #数值越大,说明排队现象严重,性能不足 Writing: #当前状态正在向客户端发送响应报文过程中的连接数,数值越大,说明 访问量很大 Waiting: #当前状态正在等待客户端发出请求的空闲连接数 开启 keep-alive的情况下,这个值等于active – (readingwriting)[rootnginx conf.d]# vim /etc/hosts#查看自己windows下的ip允许指定ip可以访问 [rootnginx conf.d]# w -i16:40:47 up 17:51, 3 users, load average: 0.00, 0.11, 0.13 USER TTY FROM LOGIN IDLE JCPU PCPU WHAT root seat0 login- Thu18 0.00s 0.00s 0.00s /usr/libexec/ root tty2 tty2 Thu18 22:20m 0.03s 0.03s /usr/libexec/ root pts/1 172.25.254.2 14:56 7.00s 0.24s 0.00s w -i [rootnginx conf.d]# vim status.conf server {listen 80;server_name status.timinglee.org;root /data/web/html;index index.html;location /status {stub_status;allow 172.25.254.2;deny all;} } [rootnginx conf.d]# nginx -s reload [rootnginx conf.d]# curl status.timinglee.org html headtitle403 Forbidden/title/head body centerh1403 Forbidden/h1/center hrcenternginx/1.24.0/center /body /html3.3.10 Nginx 压缩功能 Nginx支持对指定类型的文件进行压缩然后再传输给客户端而且压缩还可以设置压缩比例压缩后的文件大小将比源文件显著变小样有助于降低出口带宽的利用率降低企业的IT支出不过会占用相应的CPU资源。 Nginx对文件的压缩功能是依赖于模块 ngx_http_gzip_module,默认是内置模块 [rootnginx conf.d]# 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; [rootnginx conf.d]# 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 [rootnginx conf.d]# nginx -s reload\ [rootnginx conf.d]# echo hello timinglee /data/web/html/small.html [rootnginx conf.d]# echo hello timinglee /data/web/html/big.html [rootnginx conf.d]# du -sh /usr/local/nginx/logs/access.log 32K /usr/local/nginx/logs/access.log #--head 显示请求报文头部方便查看 #小文件不压缩大文件压缩 [rootnginx conf.d]# curl --head --compressed 172.25.254.100/small.html HTTP/1.1 200 OK Server: nginx/1.24.0 Date: Fri, 16 Aug 2024 08:19:46 GMT Content-Type: text/html Content-Length: 16 Last-Modified: Fri, 16 Aug 2024 08:17:19 GMT Connection: keep-alive ETag: 66bf0b0f-10 Accept-Ranges: bytes [rootnginx conf.d]# curl --head --compressed 172.25.254.100/big.html HTTP/1.1 200 OK Server: nginx/1.24.0 Date: Fri, 16 Aug 2024 08:25:20 GMT Content-Type: text/html Last-Modified: Fri, 16 Aug 2024 08:24:47 GMT Connection: keep-alive Vary: Accept-Encoding ETag: W/66bf0ccf-7700 Content-Encoding: gzip3.4内置变量及自定义变量 #nginx系统内置参数 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 $is_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;} } #测试curl -b key1lee,key2lee1 -u lee:lee var.timinglee.org/var?nameleeid6666#nginx自定义变量: server {listen 80;server_name var.timinglee.org;root /data/web/html;index index.html;location /var {default_type text/html;set $timinglee lee;echo $timinglee;} } #测试curl -b key1lee,key2lee1 -u lee:lee var.timinglee.org/var?nameleeid66663.5ngx_http_rewrite_module 模块指令 使用正则表达式对变量进行匹配匹配成功时if指令认为条件为true否则认为false变量与表达式之间 使用以下符号链接 #比较变量和字符串是否相等相等时if指令认为该条件为true反之为false ! #比较变量和字符串是否不相等不相等时if指令认为条件为true反之为false ~ #区分大小写字符可以通过正则表达式匹配满足匹配条件为真不满足匹配条件为假 !~ #区分大小写字符,判断是否匹配不满足匹配条件为真满足匹配条件为假 ~* #不区分大小写字符可以通过正则表达式匹配满足匹配条件为真不满足匹配条件为假 !~* #不区分大小字符,判断是否匹配满足匹配条件为假不满足匹配条件为真 -f 和 !-f #判断请求的文件是否存在和是否不存在 -d 和 !-d #判断请求的目录是否存在和是否不存在 -x 和 !-x #判断文件是否可执行和是否不可执行 -e 和 !-e #判断请求的文件或目录是否存在和是否不存在(包括文件目录软链接) #注意 #如果$变量的值为空字符串或0则if指令认为该条件为false其他条件为true。 #nginx 1.0.1之前$变量的值如果以0开头的任意字符串会返回false3.5.1if 判定指令 测试文件是否存在 示例 [rootnginx test2]# cat /usr/local/nginx/conf.d/yu.conf server {listen 80;server_name var.timinglee.org;root /data/web/html;index index.html;location /test2 {if ( !-e $request_filename ) {echo $request_filename is not exist;}} }测试 #没文件 [rootnginx test2]# nginx -s reload [rootnginx test2]# curl var.timinglee.org/test2/index.html /data/web/html/test2/index.html is not exist#有文件 [rootnginx test2]# echo test2 /data/web/html/test2/index.html [rootnginx test2]# curl var.timinglee.org/test2/index.html test23.5.2break指令 示例 location /break {default_type text/html;set $name timinglee;echo $name;if ( $http_user_agent curl/7.76.1 ){break;}set $id 666;echo $id;}测试 [rootnginx test2]# nginx -s reload [rootnginx test2]# curl var.timinglee.org/break timinglee[rootnginx test2]# curl -A firefox var.timinglee.org/break timinglee 6663.5.3return指令 示例 location /return {default_type text/html;if ( !-e $request_filename){return 301 http://www.baidu.com;}echo $request_filename is exist;}测试 [rootnginx test2]# nginx -s reload [rootnginx test2]# curl -I var.timinglee.org/return HTTP/1.1 301 Moved Permanently Server: nginx/1.26.2 Date: Sun, 18 Aug 2024 03:55:35 GMT Content-Type: text/html Content-Length: 169 Connection: keep-alive Keep-Alive: timeout60 Location: http://www.baidu.com[rootnginx test2]# mkdir -p /data/web/html/return [rootnginx test2]# curl -I var.timinglee.org/return HTTP/1.1 200 OK Server: nginx/1.26.2 Date: Sun, 18 Aug 2024 03:56:26 GMT Content-Type: text/html Connection: keep-alive Keep-Alive: timeout60 Vary: Accept-Encoding3.5.4rewrite: 域名永久与临时重定向 域名的临时的调整后期可能会变之前的域名或者URL可能还用、或者跳转的目的域名和URL还会跳转这种情况浏览器不会缓存跳转,临时重定向不会缓存域名解析记录(A记录)但是永久重定向会缓存。 示例: 因业务需要将访问源域名 www.timinglee.org 的请求永久重定向到 www.timinglee.com #域名永久 location / { root /data/nginx/html/pc; index index.html; rewrite / http://www.timinglee.com permanent; #rewrite / http://www.timinglee.com redirect; } #重启Nginx并访问域名 http://www.timinglee.org 进行测试#临时重定向 [rootNginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf server {listen 80;server_name lee.timinglee.org;root /webdata/nginx/timinglee.org/lee;location / {rewrite / http://lee.timinglee.com redirect;#rewrite / http://lee.timinglee.com permanent;} } server {listen 80;server_name lee.timinglee.com;root /webdata/nginx/timinglee.com/lee; }3.5.6rewrite: 自动跳转 https 案例基于通信安全考虑公司网站要求全站 https因此要求将在不影响用户请求的情况下将http请求全 部自动跳转至 https另外也可以实现部分 location 跳转 [rootnginx ~]# mkdir -p /usr/local/nginx/certs [rootnginx ~]# openssl req -newkey rsa:2048 -nodes -sha256 -keyout /usr/local/nginx/certs/jieyu.org.key -x509 -days 365 -out /usr/local/nginx/certs/jieyu.org.crt ................................................................*....*........................................................................................................................................................................................................................................... ..................*...........................*................................................................................................................................................................................................................................................. ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ., the field will be left blank. ---- Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:shanxi Locality Name (eg, city) [Default City]:xian Organization Name (eg, company) [Default Company Ltd]:lee Organizational Unit Name (eg, section) []:webserver Common Name (eg, your name or your servers hostname) []:www.lee.org Email Address []:adminlee.com3.6Nginx 防盗链 防盗链基于客户端携带的 referer 实现 referer 是记录打开一个页面之前记录是从哪个页面跳转过来的标记信息如果别人只链接了自己网站图片或某个单独的资源而不是打开了网站的整个页面这就是盗链。 在一个web 站点盗链另一个站点的资源信息比如:图片、视频等 #新建一个主机172.25.254.20,盗取另一台主机lee.timinglee.org/images/logo.png的图片 [rootclient ~]# yum install httpd -y [rootclient html]# vim /var/www/html/index.html #准备盗链web页面 html 5.3.2 实现防盗链 基于访问安全考虑nginx支持通过ngx_http_referer_module模块,检查访问请求的referer信息是否有效 实现防盗链功能 官方文档: 示例: 定义防盗链 head meta http-equivContent-Type contenttext/html;charsetutf-8 title盗链/title /head body img srchttp://lee.timinglee.org/images/logo.png h1 stylecolor:red欢迎大家/h1 pa hrefhttp://lee.timinglee.org狂点老李/a出门见喜/p /body /html #重启apache并访问http://172.25.254.20 测试 #验证两个域名的日志是否会在被盗连的web站点的日志中出现以下盗链日志信息 [rootNginx ~]# cat /usr/local/nginx/logs/access.log 172.25.254.1 - - [22/Jul/2024:09:50:01 0800] GET /images/logo.png HTTP/1.1 304 0 http://172.25.254.20/ Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0 172.25.254.1 - - [22/Jul/2024:09:50:18 0800] GET / HTTP/1.1 304 0 http://172.25.254.20/ Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.03.7实现 http 反向代理 3.7.1 http 协议反向代理 proxy_pass; # 用来设置将客户端请求转发给的后端服务器的主机# 可以是主机名 ( 将转发至后端服务做为主机头首部 ) 、 IP 地址端口的方式# 也可以代理到预先设置的主机群组需要模块 ngx_http_upstream_module 支持 url 后面# 此行为类似于 root#proxy_pass 指定的 uri 不带斜线将访问的 /web# 等于访问后端服务器 uri 内容# 此行为类似于 alias#proxy_pass 指定的 uri 带斜线# 等于访问后端服务器的#http://172.25.254.40:8080/index.html# 内容返回给客户端 } # http://nginx/web/index.html http://1:8080# 重启 Nginx 测试访问效果#curl -L http://www.lee.org/web# 如果 location 定义其 uri 时使用了正则表达式模式 ( 包括 ~,~*, 但不包括 ^~) 则 proxy_pass 之后必须不能 使用 uri# 即不能有 / , 用户请求时传递的 uri 将直接附加至后端服务器之后 server {...server_name HOSTNAME;location ~|~* /uri/ {proxy_pass http://host:port; #proxy_pass 后面的 url 不能加 /}...} http://HOSTNAME/uri/ -- http://host/uri/ proxy_hide_header field; # 用于 nginx 作为反向代理的时候# 在返回给客户端 http 响应时# 隐藏后端服务器相应头部的信息# 可以设置在 http,server 或 location 块 proxy_pass_header field; # 透传# 默认 nginx 在响应报文中不传递后端服务器的首部字段 Date, Server, X-Pad, X-Accel 等参数# 如果要传递的话则要使用 proxy_pass_header field 声明将后端服务器返回的值传递给客户端#field 首部字段大小不敏感 proxy_pass_request_body on | off;# 是否向后端服务器发送 HTTP 实体部分 , 可以设置在 http,server 或 location 块默认即为开启 proxy_pass_request_headers on | off;# 是否将客户端的请求头部转发给后端服务器可以设置在 http,server 或 location 块默认即为开启 proxy_set_header; # 可更改或添加客户端的请求头部信息内容并转发至后端服务器比如在后端服务器想要获取客户端的真实 IP 的时候就要更改每一个报文的头部 proxy_connect_timeout time;# 配置 nginx 服务器与后端服务器尝试建立连接的超时时间默认为 60 秒 proxy_read_timeout time;# 配置 nginx 服务器向后端服务器或服务器组发起 read 请求后等待的超时时间默认 60s proxy_send_timeout time;# 配置 nginx 项后端服务器或服务器组发起 write 请求后等待的超时 时间默认 60s proxy_http_version 1.0;# 用于设置 nginx 提供代理服务的 HTTP 协议的版本默认 http 1.0 proxy_ignore_client_abort off;# 当客户端网络中断请求时 nginx 服务器中断其对后端服务器的请求。即如果此项设置为 on 开启则服务器会忽略客户端中断并一直等着代理服务执行返回如果设置为off 则客户端中断后 Nginx 也会中断客户端请求并立即记录499 日志默认为 off3.7.2http 反向代理负载均衡 在上一个节中 Nginx 可以将客户端的请求转发至单台后端服务器但是无法转发至特定的一组的服务器而且不能对后端服务器提供相应的服务器状态监测Nginx 可于 ngx_http_upstream_module 模块提供服务器分组转发、权重分配、状态监测、调度算法等高级功能。 原文链接https://blog.csdn.net/MIKROKSMOS_L/article/details/141247951 [rootweb20 ~]# yum install httpd -y [rootweb20 ~]# echo web2 172.25.254.20 /var/www/html/index.html [rootweb20 ~]# systemctl enable --now httpd[rootweb10 ~]# yum install httpd -y [rootweb10 ~]# echo web1 172.25.254.10 /var/www/html/index.html [rootweb10 ~]# systemctl enable --now http[rootcentos8 ~]# cat /apps/nginx/conf/conf.d/pc.conf upstream webserver { #ip_hash; #hash $request_uri consistent; #hash $cookie_lee #least_conn; server 172.25.254.20:8080 weight1 fail_timeout15s max_fails3; server 172.25.254.10:80 weight1 fail_timeout15s max_fails3; server 172.25.254.100:80 backup; } server { listen 80; server_name www.lee.org; location ~ / { proxy_pass http://webserver; } }3.8实现 Nginx 四层负载均衡 Nginx 在 1.9.0 版本开始支持 tcp 模式的负载均衡在 1.9.13 版本开始支持 udp 协议的负载 udp 主要用于 DNS的域名解析其配置方式和指令和 http 代理类似其基于 ngx_stream_proxy_module 模块实现 tcp 负载另外基于模块ngx_stream_upstream_module 实现后端服务器分组转发、权重分配、状态监测、调度算法等高级功能。 #在web20中安装mysql [rootweb20 ~]# yum install mariadb-server -y [rootweb20 ~]# vim /etc/my.cnf.d/mariadb-server.cnf [mysqld] server-id20 [rootweb20 ~]# systemctl start mariadb [rootweb20 ~]# mysql -e grant all on *.* to lee% identified by lee; [rootweb10 ~]# mysql -ulee -plee -h172.25.254.20 -e select server_id ------------- | server_id | ------------- | 20 | -------------nginx 配置 [rootNginx ~]# vim /apps/nginx/conf/tcp/tcp.conf stream { upstream mysql_server { server 172.25.254.10:80 max_fails3 fail_timeout30s; server 172.25.254.20:8080 max_fails3 fail_timeout30s; } server { listen 172.25.254.100:80; proxy_pass mysql_server; proxy_connect_timeout 30s; proxy_timeout 300s; } }3.9实现 FastCGI 最早的 Web 服务器只能简单地响应浏览器发来的 HTTP 请求并将存储在服务器上的 HTML 文件返回给浏 览器也就是静态html 文件但是后期随着网站功能增多网站开发也越来越复杂以至于出现动态技 术比如像php(1995 年 ) 、 java(1995) 、 python(1991) 语言开发的网站但是 nginx/apache 服务器并不 能直接运行 php 、 java 这样的文件 apache 实现的方式是打补丁但是 nginx 缺通过与第三方基于协议实 现即通过某种特定协议将客户端请求转发给第三方服务处理第三方服务器会新建新的进程处理用户 的请求处理完成后返回数据给Nginx 并回收进程最后 nginx 在返回给客户端那这个约定就是通用网 关接口(common gateway interface 简称 CGI) CGI 协议 是 web 服务器和外部应用程序之间的接口 标准是cgi 程序和 web 服务器之间传递信息的标准化接口。 3.9.1FastCGI实战案例 : Nginx与php-fpm在同一服务器 [rootnginx ~]# yum install -y bzip2 systemd-devel libxml2-devel sqlite-devel libpng-devel libcurl-devel [rootnginx ~]#dnf install oniguruma-devel-6.9.6-1.el9.5.x86_64.rpm[rootNginx ~]# ./configure \ --prefix/usr/local/php \ #安装路径 --with-config-file-path/usr/local/php/etc \ #指定配置路径 --enable-fpm \ #用cgi方式启动程序 --with-fpm-usernginx \ #指定运行用户身份 --with-fpm-groupnginx \ --with-curl \ #打开curl浏览器支持 --with-iconv \ #启用iconv函数转换字符编码 --with-mhash \ #mhash加密方式扩展库 --with-zlib \ #支持zlib库用于压缩http压缩传输 --with-openssl \ #支持ssl加密 --enable-mysqlnd \ #mysql数据库 --with-mysqli \ --with-pdo-mysql \ --disable-debug \ #关闭debug功能 --enable-sockets \ #支持套接字访问 --enable-soap \ #支持soap扩展协议 --enable-xml \ #支持xml --enable-ftp \ #支持ftp --enable-gd \ #支持gd库 --enable-exif \ #支持图片元数据 --enable-mbstring \ #支持多字节字符串 --enable-bcmath \ #打开图片大小调整,用到zabbix监控的时候用到了这个模块 --with-fpm-systemd #支持systemctl 管理cgi打开php 生成php配置文件 #修改时区 [rootnginx ~]# vim /usr/local/php/etc/php.ini #生成启动文件 [rootnginx ~]# cd /root/php-8.3.9/ [rootnginx php-8.3.9]# cp sapi/fpm/php-fpm.service /lib/systemd/system/添加php环境变量 [rootnginx~]#tar zxf memcache-8.2.tgz [rootnginx~]#cdmemcache-8.2/[rootNginx ~]# vim .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs 6.3.3 php的动态扩展模块php的缓存模块 软件下载http://pecl.php.net/package/memcache 安装memcache模块 复制测试文件到nginx发布目录中 PATH$PATH:$HOME/bin:/apps/nginx/sbin:/usr/local/php/bin export PATH [rootNginx ~]# source .bash_profile3.10php的动态扩展模块php的缓存模块 安装memcache模块 [rootnginx ~]# tar zxf memcache-8.2.tgz [rootnginx ~]# cd memcache-8.2/ [rootnginx memcache-8.2]# yum install autoconf [rootnginx memcache-8.2]# phpize [rootnginx memcache-8.2]# ./configure make make install Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-nonzts-20230831/ [rootnginx memcache-8.2]# ls /usr/local/php/lib/php/extensions/no-debug-non-20230831/ memcache.so opcache.so4.1nginx 二次开发版本 4.1.1 openresty Nginx 是俄罗斯人发明的 Lua 是巴西几个教授发明的中国人章亦春把 LuaJIT VM 嵌入到 Nginx 中 实现了 OpenResty 这个高性能服务端解决方案。 OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台其内部集成了大量精良的 Lua 库、第三方 模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、 Web 服务和动态网关。 OpenResty® 通过汇聚各种设计精良的 Nginx 模块主要由 OpenResty 团队自主开发从而将 Nginx有效地变成一个强大的通用 Web 应用平台。这样 Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。 OpenResty 由于有功能强大且方便的的 API, 可扩展性更强 , 如果需要实现定制功能 ,OpenResty 是个不错的选择。 [rootnginx ~]#tar xf openresty-1.17.8.2.tar.gz [rootnginx ~]#cd openresty-1.17.8.2/ [rootnginx openresty-1.17.8.2]#./configure --prefix/usr/local/openresty --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --without-http_memcached_module --with-stream_ssl_module --with-stream --with-stream_realip_module --with-pcre --with-http_ssl_module[rootnginx ~]#gmake gmake install [rootNginx openresty-1.17.8.2]#ln -s /apps/openresty/bin/* /usr/bin/ [rootNginx openresty-1.17.8.2]#openresty -v nginx version: openresty/1.17.8.2 [rootNginx openresty-1.17.8.2]#openresty [rootNginx openresty-1.17.8.2]#ps -ef |grep nginx
http://www.hkea.cn/news/14268662/

相关文章:

  • 做网站前产品经理要了解什么天津房地产集团网站建设
  • 2018网站内容和备案不同类型网站栏目设置区别
  • 长春网站制作允许吗钉钉小程序开发平台
  • 公司的网站设计方案哈尔滨网站建设推广方案
  • 桂阳做网站的软件定制开发外包人社网站和微信平台建设方案
  • 深圳有做网站的公司有哪些做网站商城需要多少钱
  • 帮他人做视频网站违法吗php网站哪些
  • 府谷网站建设网站建设与制作设计公司
  • 怎样做自己的微商网站多少钱一斤怎么算
  • ueeshop外贸建站公司espcms易思企业网站
  • 做局域网网站河南省新闻联播
  • 有做教育行业的招聘网站吗现在的公司都有自己的网站吗
  • wordpress 文章版权济南外贸seo
  • 上海创意网站建设新网站 seo
  • 跨境建站服务公司制作报价网站
  • 一般什么行业做网站的多英文网站建设的请示怎么写
  • 为学校网站建设阿里巴巴开网店的详细步骤
  • 外网室内设计网站别人做的网站不能用怎么办
  • 怎样给自己的店做网站网络营销推广的主要形式
  • 一般网站维护要多久nginx进wordpress不能进目录
  • 福州火车站最新消息磁力猫搜索引擎入口官网
  • 广州专业网站改版免费的在线学习网站
  • 国外网站空间租用费用中山网站建设金科
  • 郑州建站的怎么在百度自己创网站
  • 济南做网站企业什么建站公司好
  • 个人网站开发主要问题宁波自助建站公司
  • 十大行情软件网站下载wordpress网站源码
  • 网站广告投放收费标准网站规划建设与管理维护答案
  • 网站的页面由什么组成部门网站建设管理典型经验材料
  • 广东手机网站建设报价梧州网站设计