目录

一、统一环境:

1)安装docker-desktop

2)之后,请确保已经安装并启用了适用于 Linux 的 Windows 子系统 2 (WSL2)。

3)然后在 Microsoft Store  里安装任意 Linux 版本。

4)使用 windows 子系统,需要在 Microsoft Store 安装 windows Terminal 工具,方便进入 Linux 子系统

二、站点目录结构

三、nginx 详细配置文件:

参照官方文档:

1)nginx http 核心模块

2)nginx 模块 ngx_http_fastcgi_module 配置文档(php 配置部分)

3)php 官方安装配置示例:

说明:

1)上面的代码抄在这里: limit_req_zone $binary_remote_addr zone=limiter:10m rate=80r/s; rate 不要设置太低,否则 phpMyAdmin 连接数据库时会报错。

2)本案例的 fastcgi_params 内的文件内容如下:

四、目录和文件加密:

文件和目录加密后的效果图

1.对 phpinfo.php 敏感文件加密的效果

2.对目录加密的效果

3.对 php 文件加密的效果

4.对其它文件禁用的效果

5.在线生成密码

6.passwd 文件存放内容示意图

五、常用 nginx 配置的内置变量

六、nginx配置禁止访问目录或禁止访问目录下的文件

禁止访问目录下的文件

禁止访问特定后缀文件

禁止访问某个目录下的php后缀文件

禁止访问多个目录下的php后缀文件

禁止访问目录或目录下文件

禁止访问目录

禁止访问目录下文件

nginx location 的匹配语法

七、nginx 限流功能

配置如下

八、Nginx 的 fastcgi 模块提供了 fastcgi_param 指令来处理这些映射关系


这只能是一种构想,现实中并不是随心所欲都能够去配置主机,也许别人包含了一段配置在根目录下面,权限受限的情况怎么办?比如说像百度云的虚拟主机就是这样的,对于许多中小型网站来说性能已经足够了。今天,就用 CodeIgliter 来开刀改造一下,把 public 下面的 index.php 文件放入根目录下面,里面的目录和文件暴露在根目录下面,也就暴露在互联网下面了(这种方法是不可取的,以前的 CodeIgliter 就是这样干的),修改了一下代码,使框架运行正常,这就是 CodeIgliter 原来的样子,现在越来越像 laravel 了。

根目录下面添加进 phpMyAdmin Mysql 数据库管理、phpRedisAdmin Redis 数据库管理和 Kodexplorer 资源管理器。这些文件和目录全都暴露在根目录下,也就暴露在了互联网中。下面的配置就是解决在这种情况下,如何加密和禁用这些目录和敏感文件。

一、统一环境:

1)安装docker-desktop:

Docker Desktop for Mac and Windows | Dockerhttps://www.docker.com/products/docker-desktop

2)之后,请确保已经安装并启用了适用于 Linux 的 Windows 子系统 2 (WSL2)。

WSL 允许你在 Windows 10 上运行 Linux 二进制文件。关于如何安装并启用 WSL2,请参阅微软开发者文档:

安装 WSL | Microsoft Docshttps://docs.microsoft.com/zh-cn/windows/wsl/install

3)然后在 Microsoft Store  里安装任意 Linux 版本。

4)使用 windows 子系统,需要在 Microsoft Store 安装 windows Terminal 工具,方便进入 Linux 子系统:

5)lnmp 镜像地址:.2233466866/lnmp - Docker Image | Docker Hubhttps://hub.docker.com/r/2233466866/lnmp6)docker 操作命令,几个命令就可以解决了:

# 以下步骤要一个一个地来
# 以下内容如果复制,不要复制 $# 如果不是root用户,还需将当前用户加入 docker 用户组$ sudo gpasswd -a ${USER} docker# 1.拉取镜像$ docker pull 2233466866/lnmp# 2.生成容器命令$ docker run -dit \
-p 80:80 \  # 与宿主机绑定端口,才能用 http://localhost 访问
-p 443:443 \  # 与宿主机绑定端口,才能用 https://localhost 访问(需要配置)
-p 3306:3306 \  # MySQL 数据库访问端口
-p 9000:9000 \  # nginx 与 php 服务通信端口,同一容器下其实不用配置,官方偏要这样
-v /home/user/www:/www \  # 容器内站点目录绑定到宿主机目录
-v /home/user/mysql:/data/mysql \  # 容器内数据库目录绑定到宿主机目录
--restart=always \  # 开机容器自启
--privileged=true \  # 使用该参数,容器内的 root 用户拥有真正的 root 权限。
--name=lnmp \  # 容器名称
2233466866/lnmp  # 镜像名称# user 是你自己的用户名,不要完全照抄。
# 以上的多行命令复制到 windows Terminal 命令行,按确定键即可。# 3. 遍历容器,主要是获取容器 id,命令中 lnmp 可以换成 id$ docker ps# 4.进入容器命令,注意:容器名称要一致$ docker exec -it lnmp /bin/bash# 5.修改 Nginx 配置$ vi /usr/local/nginx/conf/nginx.conf# 注释掉 server 及以后的内容,添加 include /www/nginx.conf

7)MySQL 数据库可能要用到密码破解,这里不再详述,请搜索其它文章解决。

8)不要在 Windows 环境下尝试 nginx 配置,特别是在像 phpStudy、Wamp等等这样的环境下尝试 nginx 配置,因为 Windows 环境下安装的软件比较多,有些软件自带环境,相互干扰,使配置失效。尤其同时安装上 docker-desktop 和 phpStudy 这两个软件,干扰更大。

9)进入子系统站点目录编辑 code . 即可打开 VSCode 编辑器并且打开此目录,代码如下:

myusername@DESKTOP-J1SOKCR:~$ code .

二、站点目录结构:

三、nginx 详细配置文件:

参照官方文档:

1)nginx http 核心模块:

模块ngx_http_core_module (nginx.org)http://nginx.org/en/docs/http/ngx_http_core_module.html#var_time_local

2)nginx 模块 ngx_http_fastcgi_module 配置文档(php 配置部分):

Module ngx_http_fastcgi_module (nginx.org)https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html

3)php 官方安装配置示例:

PHP: Unix 系统下的 Nginx 1.4.x - Manualhttps://www.php.net/manual/zh/install.unix.nginx.php

# 站点日志配置
error_log           /www/writable/logs/z_error.log;
access_log          /www/writable/logs/z_$host.log main;# 防爆破破解密码,每秒钟只能允许访问 80 次,超过报错。
# zone=name:size,分配一个以 name 为名的并且大小为 size 的内存空间,用来存储访问的频次信息,对应:limiter:10m;
# rate=rate, 如rate=1r/s表示同一个IP每秒只允许一个请求通过。
# 参考官方文档配置:http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
#
# 注意:这里 rate=80r/s 的值不要太低,否则 phpMyAdmin 连接数据库时会报 503 错误(设置成 50r/s 就开始报错了)!!
limit_req_zone $binary_remote_addr zone=limiter:10m rate=80r/s;# 站点配置
server {listen      80;         # 访问站点的端口server_name localhost;  # 访问站点的域名root        /www;       # 站点映射的本地绝对目录。绝对目录: /directory/subdirectory 相对目录: ./directory/subdirectorylocation / {index   index.php index.html index.htm;# 去除 index.php 的配置,必须配置,否则程序出错!try_files $uri $uri/ /index.php?$query_string;}# 根目录下对 php 扩展文件的配置。location ~* \.php {#------------------------------------------------------------------------# fastcgi_params 是 fastcgi 模块配置文件,一般在本配置的同级目录下。# 主要完成的工作是将 Nginx 中的变量翻译成 PHP 中能够理解的变量。# 具体内容,见此代码段的后面。## 参见文档地址:https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html# #------------------------------------------------------------------------include                 fastcgi_params;fastcgi_index           index.php;#------------------------------------------------------------------------# 1.指定FastCGI服务器监听地址与端口,可以是本机或者其它:#   fastcgi_pass localhost:9000 #   如果 nginx 与 php 分开:fastcgi_pass 185.6.5.1:9000# # 2.使用Unix socket:#   fasrcgi_pass unix:/tmp/fastcgi.socket;## 3.可以使用一个 upsteam 字段名称:#   upsteam backend {#      server localhost:9800#   }##   fastcgi_pass backend;#-----------------------------------------------------------------------fastcgi_pass            127.0.0.1:9000;  # nginx 与 php 通信的端口是: 9000fastcgi_split_path_info ^(.+\.php)(.*)$;fastcgi_param           PATH_INFO       $fastcgi_path_info;fastcgi_param           SCRIPT_NAME     $fastcgi_script_name;fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;}# 禁止访问的扩展。location ~* \.(?:htaccess|txt|sql|conf|cnf|json|lock|md|dist|log|logs|xml|env|gitignore|ini|sh)?$ {# 如果禁用了某些文件而找不到原因,可以在不同的 location 里设置不同的返回错误标志,# 即可找到是哪一个 location 禁用了文件或者目录。如:# 测试:# return 405;return 404;}# 允许访问的扩展location ~ \.(?:css|js|jpg|jpeg|png|gif)?$ {allow all;}# 禁止访问 Linux 系统的隐藏文件location ~* /\.+ {# 测试:# return 406;return 404;}# 禁止访问的无后缀文件都放在这里,返回 404location ~* (?:htpass*|spark|LICENSE) {# 测试:# return 407;return 404;}#-----------------------------------------------------------------------# 可道云资源管理器的配置# 可道云官网:https://kodcloud.com/# 可道云下载地址:https://static.kodcloud.com/update/download/kodexplorer4.47.zip#-----------------------------------------------------------------------location /kodexplorer {index   index.php index.html index.htm;root    /www;# 访问目录时鉴权auth_basic "Authorized users only";auth_basic_user_file /www/htpasswd;# 防爆破限流# 参考官方文档配置:http://nginx.org/en/docs/http/ngx_http_limit_req_module.html## limiter 对应 server 上面的代码,重新写在下面:# limit_req_zone $binary_remote_addr zone=limiter:10m rate=20r/s;# 中的 limiter,格式:zone=name:sizelimit_req zone=limiter burst=1 nodelay;# 在 /kodexplorer 目录下访问 php 文件时鉴权。location ~ .*\.(?:php)?$ {# 再次对 php 扩展文件配置,否则在 /kodexplorer 目录内 php 不解析。include                 fastcgi_params;fastcgi_index           index.php;fastcgi_pass            127.0.0.1:9000;fastcgi_split_path_info ^(.+\.php)(.*)$;fastcgi_param           PATH_INFO       $fastcgi_path_info;fastcgi_param           SCRIPT_NAME     $fastcgi_script_name;fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;index   index.php index.html index.htm;# 鉴权auth_basic "Authorized users only";auth_basic_user_file /www/htpasswd;# 防爆破限流limit_req zone=limiter burst=1 nodelay;}}#-----------------------------------------------------------------------# phpMyAdmin Mysql 数据库管理器的配置# 官方地址:https://www.phpmyadmin.net/# 项目地址:https://github.com/phpmyadmin/phpmyadmin#-----------------------------------------------------------------------location /phpMyAdmin {index   index.php index.html index.htm;root    /www;# 访问目录时鉴权auth_basic "Authorized users only";auth_basic_user_file /www/htpasswd;# 防爆破限流limit_req zone=limiter burst=1 nodelay;# 在 /phpMyAdmin 目录下访问 php 文件时鉴权。location ~ .*\.(?:php)?$ {# 再次对 php 扩展文件配置,否则在 /phpMyAdmin 目录内 php 不解析。include                 fastcgi_params;fastcgi_index           index.php;fastcgi_pass            127.0.0.1:9000;fastcgi_split_path_info ^(.+\.php)(.*)$;fastcgi_param           PATH_INFO       $fastcgi_path_info;fastcgi_param           SCRIPT_NAME     $fastcgi_script_name;fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;index   index.php index.html index.htm;# 鉴权auth_basic "Authorized users only";auth_basic_user_file /www/htpasswd;# 防爆破限流limit_req zone=limiter burst=1 nodelay;}}# 对敏感文件加密location /phpinfo.php {# 访问时鉴权location ~ .*\.(?:php)?$ {# 再次对 php 扩展文件配置,否则在 /phpinfo.php 文件中对 php 不解析。include                 fastcgi_params;fastcgi_index           index.php;fastcgi_pass            127.0.0.1:9000;fastcgi_split_path_info ^(.+\.php)(.*)$;fastcgi_param           PATH_INFO       $fastcgi_path_info;fastcgi_param           SCRIPT_NAME     $fastcgi_script_name;fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;index   index.php index.html index.htm;# 鉴权auth_basic "Authorized users only";auth_basic_user_file /www/htpasswd;# 防爆破限流limit_req zone=limiter burst=1 nodelay;}}#-----------------------------------------------------------------------# phpRedisAdmin Redis 数据库管理器的配置# 项目地址:https://github.com/erikdubbelboer/phpRedisAdmin# 演示地址:https://dubbelboer.com/phpRedisAdmin/?overview#-----------------------------------------------------------------------location /phpRedisAdmin {index   index.php index.html index.htm;root    /www;# 访问目录时鉴权auth_basic "Authorized users only";auth_basic_user_file /www/htpasswd;# 在 /phpRedisAdmin 目录下访问 php 文件时鉴权。location ~ .*\.(?:php)?$ {# 再次对 php 扩展文件配置,否则在 /phpRedisAdmin 目录内 php 不解析。include                 fastcgi_params;fastcgi_index           index.php;fastcgi_pass            127.0.0.1:9000;fastcgi_split_path_info ^(.+\.php)(.*)$;fastcgi_param           PATH_INFO       $fastcgi_path_info;fastcgi_param           SCRIPT_NAME     $fastcgi_script_name;fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;index   index.php index.html index.htm;# 鉴权auth_basic "Authorized users only";auth_basic_user_file /www/htpasswd;# 防爆破限流limit_req zone=limiter burst=1 nodelay;}}# 以下是在一些目录下禁止访问 php 文件# 用此写法无效,还是要一个一个地写# location /kodexplorer/(?:app|config|data|plugins|static)?$ {#     location ~ .*\.(?:php)?$ {#         return 404;#     }# }location /kodexplorer/app {location ~ .*\.(?:php)?$ {# 测试:# return 408;return 404;}}location /kodexplorer/config {location ~ .*\.(?:php)?$ {return 404;}}location /kodexplorer/data {location ~ .*\.(?:php)?$ {return 404;}}location /kodexplorer/plugins {location ~ .*\.(?:php)?$ {return 404;}}location /kodexplorer/static {location ~ .*\.(?:php)?$ {return 404;}}location /phpMyAdmin/doc {location ~ .*\.(?:php|css|html|png|jpg|jpeg|gif)?$ {# 访问 phpMyAdmin 手册文件鉴权auth_basic "Authorized users only";auth_basic_user_file /www/htpasswd;# 防爆破限流limit_req zone=limiter burst=1 nodelay;}}location /phpMyAdmin/examples {location ~ .*\.(?:php)?$ {return 404;}}location /phpMyAdmin/js {# 对 php 扩展禁用# 这里不能禁用,否则管理器页面点击失效!#location ~ .*\.(?:php)?$ {#    return 404;#}# 对其它扩展放行,主要是 js 和 css 文件,# 其实可以不写,写上可以给 Nginx 明确指示。allow all;}location /phpMyAdmin/libraries {location ~ .*\.(?:php)?$ {return 404;}}location /phpMyAdmin/local {location ~ .*\.(?:php)?$ {return 404;}}location /phpMyAdmin/setup {location ~ .*\.(?:php)?$ {return 404;}}location /phpMyAdmin/sql {location ~ .*\.(?:php|sql)?$ {return 404;}}location /phpMyAdmin/templates {location ~ .*\.(?:php)?$ {return 404;}}location /phpMyAdmin/themes {location ~ .*\.(?:php)?$ {return 404;}}location /phpMyAdmin/tmp {location ~ .*\.(?:php)?$ {return 404;}}location /phpMyAdmin/vendor {location ~ .*\.(?:php)?$ {return 404;}}location /phpRedisAdmin/.github {location ~ .*\.(?:yml)?$ {return 404;}}location /phpRedisAdmin/include {location ~ .*\.(?:php)?$ {return 404;}}}

说明:

1)上面的代码抄在这里: limit_req_zone $binary_remote_addr zone=limiter:10m rate=80r/s; rate 不要设置太低,否则 phpMyAdmin 连接数据库时会报错,报错如下:

2)本案例的 fastcgi_params 内的文件内容如下:

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

四、目录和文件加密:

文件和目录加密后的效果图:

1.对 phpinfo.php 敏感文件加密的效果:

2.对目录加密的效果:

3.对 php 文件加密的效果: 

4.对其它文件禁用的效果: 

5.在线生成密码:

开源中国:在线 htpasswd 生成器 (oschina.net)https://tool.oschina.net/htpasswd

6.passwd 文件存放内容示意图:

五、常用 nginx 配置的内置变量:

$remote_addr;
  存放了客户端的地址,注意是客户端的公网IP,也就是一家人访问一个网站,则会显示为路由器的公网IP

$args;
  变量中存放了URL中的指令,例如http://www.example.cn/main/index.php?id=12&partner=search中的id=12&partner=search

$document_root;
  保存了针对当前资源的请求的系统根目录,如/apps/nginx/html。

$document_uri;
  保存了当前请求中不包含指令的URI,注意是不包含请求的指令,比如http://www.example.cn/main/index.php?id=12&partner=search会被定义为/main/index.php。

$host;
  存放了请求的host名称。

$http_user_agent;
  客户端浏览器的详细信息

$http_cookie;
  客户端的cookie信息。

limit_rate 10240;
echo $limit_rate;

  如果nginx服务器使用limit_rate配置了显示网络速率,则会显示,如果没有设置, 则显示0。

$remote_port;
  客户端请求Nginx服务器时随机打开的端口,这是每个客户端自己的端口。

$remote_user;
  已经经过Auth Basic Module验证的用户名。

$request_body_file;
  做反向代理时发给后端服务器的本地资源的名称。

$request_method;
  请求资源的方式,GET/PUT/DELETE等

$request_filename;
  当前请求的资源文件的路径名称,由root或alias指令与URI请求生成的文件绝对路径,如/apps/nginx/html/main/index.html

$request_uri;
  包含请求参数的原始URI,不包含主机名,如:/main/index.php?id=12&partner=search 。

$scheme;
  请求的协议,如ftp,https,http等。

$server_protocol;
  保存了客户端请求资源使用的协议的版本,如HTTP/1.0,HTTP/1.1,HTTP/2.0等。

$server_addr;
  保存了服务器的IP地址。

$server_name;
  请求的服务器的主机名。

$server_port;
  请求的服务器的端口号。

六、nginx配置禁止访问目录或禁止访问目录下的文件

禁止访问目录下的文件

禁止访问特定后缀文件

location ~ \.(php|jsp|txt)$ {deny all;
}

禁止访问某个目录下的php后缀文件

location /directory {location ~ .*\.(php)?$ {deny all;}
}

禁止访问多个目录下的php后缀文件

location ~* ^/(directory1|directory2)/.*\.(php)${deny all;
}

禁止访问目录或目录下文件

禁止访问目录

location ^~ /test/ {deny all;
}

禁止访问目录下文件

location ^~ /test {deny all;
}

nginx location 的匹配语法

= 表示精确匹配

^~ 表示uri以某个字符串开头

~ 正则匹配(区分大小写)

~* 正则匹配(不区分大小写) !和!*分别为区分大小写不匹配及不区分大小写不匹配的正则

/ 任何请求都会匹配

匹配优先级: = > ^~ > /

七、nginx 限流功能

配置如下:

http {limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;·······location / {limit_req zone=mylimit burst=5 nodelay;limit_req _log_level error;limit_req_status 503;·······}
}

以上配置中使用的是nginx的ngx_http_limit_req_module模块,用来限制单个IP的请求数。

语法:limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
说明:
1. $binary_remote_addr,表明是以remote_addr为限制目标,加上binary是为了压缩内存占用空间
2. zone=name:size,分配一个以name为名的并且大小为size的内存空间,用来存储访 问的频次信息
3. rate=rate, 如rate=1r/s表示同一个IP每秒只允许一个请求通过

语法:limit_req zone=name [burst=number] [nodelay | delay=number]; #放在location区域内
实例:limit_req zone=mylimit burst=5 nodelay;
说明:
1. zone=mylimit,对应http区域中配置的zone
2. burst=5,表示设置一个大小为5的缓冲区,超过频次限制的请求先放入这个缓冲区
3. nodelay,设置后超过频次限制以及缓冲区满了的情况下返回503状态码;如不设置,那么额外的请求将进入等待排队的状态

语法:limit_req_log_level info | notice | warn | error #可放入http, server, location区域
实例:limit_req_log_level error
说明:当超出限速及被缓存后,写入日志(对应相应的日志级别)

语法:limit_req_status code #可放入http, server, location区域
实例:limit_req_status 503
说明:自定义拒绝请求后返回的状态码

参考:Module ngx_http_limit_req_module (nginx.org)http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

死磕nginx系列--nginx 限流配置 - biglittleant - 博客园 (cnblogs.com)https://www.cnblogs.com/biglittleant/p/8979915.html

八、Nginx 的 fastcgi 模块提供了 fastcgi_param 指令来处理这些映射关系

下面以 Ubuntu 下 Nginx 的一个配置文件,其主要完成的工作是将 Nginx 中的变量翻译成 PHP 中能够理解的变量。

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#脚本文件请求的路径,也就是说当访问127.0.0.1/index.php的时候,需要读取网站根目录下面的index.php文件,如果没有配置这一配置项时,nginx不回去网站根目录下访问.php文件,所以返回空白
fastcgi_param QUERY_STRING $query_string;                        #请求的参数;如?app=123
fastcgi_param REQUEST_METHOD $request_method;                    #请求的动作(GET,POST)
fastcgi_param CONTENT_TYPE $content_type;                        #请求头中的Content-Type字段
fastcgi_param CONTENT_LENGTH $content_length;                    #请求头中的Content-length字段。fastcgi_param SCRIPT_NAME $fastcgi_script_name;                  #脚本名称
fastcgi_param REQUEST_URI $request_uri;                          #请求的地址不带参数
fastcgi_param DOCUMENT_URI $document_uri;                        #与$uri相同。
fastcgi_param DOCUMENT_ROOT $document_root;                      #网站的根目录。在server配置中root指令中指定的值
fastcgi_param SERVER_PROTOCOL $server_protocol;                  #请求使用的协议,通常是HTTP/1.0或HTTP/1.1。fastcgi_param GATEWAY_INTERFACE CGI/1.1;                         #cgi 版本
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;              #nginx 版本号,可修改、隐藏fastcgi_param REMOTE_ADDR $remote_addr;                          #客户端IP
fastcgi_param REMOTE_PORT $remote_port;                          #客户端端口
fastcgi_param SERVER_ADDR $server_addr;                          #服务器IP地址
fastcgi_param SERVER_PORT $server_port;                          #服务器端口
fastcgi_param SERVER_NAME $server_name;                          #服务器名,域名在server配置中指定的server_namefastcgi_param PATH_INFO $path_info;                             #可自定义变量-- PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

在php可打印出上面的服务环境变量  如:

echo $_SERVER['REMOTE_ADDR']

目录和文件暴露在根目录下的 nginx 配置演示相关推荐

  1. 将校验文件放置在根目录下

    小程序提交审核--将校验文件放置在根目录下 我项目是使用的spring+springmvc+mybatis 我项目是使用的spring+springmvc+mybatis 当然你的域名一定是要能pin ...

  2. linux下dev目录的作用,Android/Linux根目录下常见目录作用

    当adb shell进入Android系统内部后,ls会看到根目录下出现不少目录,如dev.sys.mnt等目录,对于这些目录的作用常常让人模棱两可,有必要对其学习了解. 首先要明白目录也是一种文件, ...

  3. nginx加载html目录下图片,nginx配置访问图片路径以及html静态页面的调取方法

    nginx配置访问图片路径以及html静态页面的调取方法 发布时间:2017-03-09 12:06 来源:互联网 当前栏目:web技术类 给大家讲一个快速配置nginx访问图片地址,以及访问html ...

  4. windows下的nginx配置与使用

    文章目录 简介 nginx配置请求转发 DEBUG 运行原理 nginx命令行语句 简介 若window配置使用nginx后,则启动项目就要同时启动nginx才行,否则无法使用对应的nginx配置的请 ...

  5. SSM框架中mapper和mapping.xml文件在同一个包下需要的配置

    前言 当我们在开发过程中,由于maven项目本身的限制,我们不能直接把我们的mapper.xml文件和对应mapper.java接口文件放到一起,也就是不能直接放在java包中,如图: 因为maven ...

  6. nginx php 文件未找到,Linux下搭建nginx+php环境的file not found问题反省

    先总结下这个问题出现的提示 访问php页面显示file not found 查看error.log日志文件提示"Primary script unknown" while read ...

  7. linux6系统下用nginx配置https

    1.cd /usr/local/src 下载解压 wget http://nginx.org/download/nginx-1.14.0.tar.gz ./configure --prefix=/us ...

  8. 上传大文件超时upstream timed out ,nginx配置修改

    修改配置文件 location ~ ^/(admin|excel|app-download|file)/(.*)$ {proxy_next_upstream http_404 http_500 htt ...

  9. 共同学习目录和文件的管理

    Linux目录和文件管理 Linux目录结构 查看及检索文件 压缩及解压文件 一.Linux目录结构 二.查看及检索文件 cat more less head.tail wc grep 三.压缩及解压 ...

最新文章

  1. 贾扬清感谢信:阿里开源10年,致敬千万开源人
  2. 为什么电气自动化学历不高只能进厂?
  3. 有一个5 * 5的二维数组,保留主对角线上的元素,并使其他元素均为0,要求用函数和子函数完成
  4. html 文件上传与移除,js jquery分别实现动态的文件上传操作按钮的添加和删除
  5. 网易视频云:分布式转码服务高可用浅析
  6. mysql数据库的设计
  7. Linux内存背后的那些神秘往事
  8. redis依赖包_092-Redis集群、JedisCluster
  9. 6 python高级数据处理和可视化
  10. jQuery学习_具备吸附功能的拖曳框
  11. iOS 改变UITextField中光标颜色
  12. Java5国际认证SCJP试题精解,Java 5国际认证SCJP试题精解
  13. 自身免疫性脑炎的诊疗现状及进展
  14. 燃起图与燃尽图,故事地图和产品线路图分析
  15. 图片像素问题:如何保持图片大小不变而图片容量缩小
  16. phpmyadmin爆破脚本练习
  17. 2023CUPT第七题 法拉第波 思路和解法
  18. openstack victoria 对接华为存储OceanStor 5110 v5(Kunpeng)
  19. 使用linux c开源库libwebsockets编写的websocket客户端
  20. wallhaven怎么下原图_从哪里可以获得很高分辨率的大量壁纸图片?

热门文章

  1. 平均绝对误差python_python – 计算MAD(平均绝对偏差)GroupBy Pandas
  2. SecureCRT强制卸载
  3. 电子科技大学 计算机图形学 考研,电子科技大学机械工程考研
  4. 政府采购方式有哪些?
  5. Ubuntu 12.04 / Linux Mint 17.1 下安装TinyOS-2.1.1全过程
  6. 如何进行质子的二维展开
  7. WPhone7 随笔 (二) -- Grid的刷新
  8. 机械设备行业ERP系统三大功能分享
  9. 夏令营导师推荐信怎么写(浙大CS上岸老学姐手把手教你)
  10. 计算从今天算起,100天以后是几月几号