LNMP第二部分nginx、php配置(用户认证、域名重定向、日志、配置缓存、防盗链)

LNMP第二部分nginx、php配置(用户认证、域名重定向、日志、配置缓存、防盗链),第1张

LNMP第二部分nginx、php配置(用户认证、域名重定向、日志、配置缓存、防盗链)

  LNMP第二部分nginx、php配置(用户认证、域名重定向、日志、配置缓存、防盗链)


                  一.nginx的配置( nginx.conf 

1nginx的主配置文件位置: /usr/local/nginx/conf/nginx.con

 

2、清空  /usr/local/nginx/conf/nginx.con默认的配置文件内容

       [root@mysql ~]# > /usr/local/nginx/conf/nginx.conf

   >:重定向的意思,单独使用,可以把一个文本文档快速清空

 

3、拷贝一下代码到/usr/local/nginx/conf/nginx.conf文件中,虚拟主机和主配置文件写在一起

 

主配置文件内容如下

 user nobody nobody;

worker_processes 2;          #开启几个子线程

error_log /usr/local/nginx/logs/nginx_error.log crit; #错误日志级别,crit是非常严谨的级别

pid /usr/local/nginx/logs/nginx.pid;

worker_rlimit_nofile 51200;  #单个进程最大连接数

events

{

    use epoll;

    worker_connections 6000;   #这里的数字不易过大

}

http

 

{

    include mime.types;

    default_type application/octet-stream;

    server_names_hash_bucket_size 3526;   #虚拟主机多,如果这个值设置的很小的话可能会导致无法启动,有三四域名,那么设置成256基本就可以

   server_names_hash_max_size 4096;

    log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'

    '$host "$request_uri" $status'

    '"$http_referer" "$http_user_agent"';

    sendfile on;

    tcp_nopush on;

    keepalive_timeout 30;

    client_header_timeout 3m;

    client_body_timeout 3m;

    send_timeout 3m;

    connection_pool_size 256;

    client_header_buffer_size 1k;

    large_client_header_buffers 8 4k;

    request_pool_size 4k;

    output_buffers 4 32k;

   postpone_output 1460;

    client_max_body_size 10m;

    client_body_buffer_size 256k;

    client_body_temp_path /usr/local/nginx/client_body_temp;

    proxy_temp_path /usr/local/nginx/proxy_temp;

    fastcgi_temp_path /usr/local/nginx/fastcgi_temp;

    fastcgi_intercept_errors on;

    tcp_nodelay on;

    gzip on;                                       #是否支持压缩

    gzip_min_length 1k;

    gzip_buffers 4 8k;

    gzip_comp_level 5;

    gzip_http_version 1.1;

    gzip_types text/plain application/x-javascript text/css text/htm application/xml;

   

 

server

 

{

    listen 80;

    server_name localhost;

    index index.html index.htm index.php;

    root /usr/local/nginx/html;

 

    location ~ \.php$ {

        include fastcgi_params;

        fastcgi_pass unix:/tmp/php-fcgi.sock;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;

    }

}

}

 

user nobody nobodyuser后面跟的是nginx运行的用户和组

1-1024端口必须要用超级用户才能监听,普通用户是无法监听的

 

4、也可以使用另外一种写法,就是把虚拟主机的配置文件和主配置文件单独写,而不是写在主配置文件中

     1)主配置文件写法

    

user nobody nobody;
worker_processes 2;
error_log
/usr/local/nginx/logs/nginx_error.log crit;
pid
/usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile
51200;
events
{
    use
epoll;
   
worker_connections 6000;
}
http
 
{
   
include mime.types;
   
default_type application/octet-stream;
   
server_names_hash_bucket_size 3526;
   
server_names_hash_max_size 4096;
   
log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
    '$host
"$request_uri" $status'
   
'"$http_referer" "$http_user_agent"';
   
sendfile on;
   
tcp_nopush on;
   
keepalive_timeout 30;
   
client_header_timeout 3m;
   
client_body_timeout 3m;
   
send_timeout 3m;
   
connection_pool_size 256;
   
client_header_buffer_size 1k;
   
large_client_header_buffers 8 4k;
   
request_pool_size 4k;
   
output_buffers 4 32k;
   
postpone_output 1460;
   
client_max_body_size 10m;
   
client_body_buffer_size 256k;
   
client_body_temp_path /usr/local/nginx/client_body_temp;
   
proxy_temp_path /usr/local/nginx/proxy_temp;
   
fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
   
fastcgi_intercept_errors on;
   
tcp_nodelay on;
    gzip
on;
   
gzip_min_length 1k;
   
gzip_buffers 4 8k;
   
gzip_comp_level 5;
   
gzip_http_version 1.1;
   
gzip_types text/plain application/x-javascript text/css text/htm
application/xml;
    include vhosts/*.conf; #这里也可以写成绝对路径
 
}

 

2)配置默认的虚拟机,这是第一个虚拟机也是默认的虚拟机,就是在没有指定的情况下,都会跳转到这里

    /usr/local/nginx/conf/目录下创建vhosts目录

          [root@mysql ~]# mkdir /usr/local/nginx/conf/vhosts   

    

    进入/usr/local/nginx/conf/vhosts目录

        [root@mysql ~]#cd /usr/local/nginx/conf/vhosts/

 

   在使用vm创建一个default.cong文件,并且拷贝一下代码到default.conf文件中

        [root@mysql vhosts]# vim default.conf

  虚拟机配置文件代码如下:

  

server
 
{
    listen 80;  #在80后面加上default就变成默认的虚拟主机了
   
server_name localhost;
    index
index.html index.htm index.php;
    root
/usr/local/nginx/html;
 
   
location ~ \.php$ {
    
   include fastcgi_params;
        fastcgi_pass
unix:/tmp/php-fcgi.sock; #如果监听的是127.0.0.1:9000的端口,那么这里就要写上127.0.0.1:9000
    
   fastcgi_index index.php;
    
   fastcgi_param SCRIPT_FILENAME
/usr/local/nginx/html$fastcgi_script_name;
    }
}

如图所示:

④然后退出保存

 

⑤检查看看有没有错误

[root@mysql vhosts]#
/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

出现这个提示就表示配置文件没有错误

 

⑥重新加载:[root@mysql vhosts]# /usr/local/nginx/sbin/nginx -s reload

 

⑦如何检查配置文件有没有加载

         需要做的就是故意把/usr/local/nginx/conf/vhosts/配置文件写错,然后使用/usr/local/nginx/sbin/nginx -t检查配置文件看看是否有报错,如果没有,那就说明配置文件没有被加载,如果有说吗配置未见出错,那么就证明配置文件已经被加载

 

3)配置第二个虚拟机

①进入到/usr/local/nginx/conf/vhosts目录下,然后拷贝第一个虚拟主机的配置文件到当前目录下,并且重命名

   [root@mysql vhosts]#cp default.conf default2.conf

修改default2.conf文件,具体如下

代码如下:

server
 
{
    listen 80;   #端口号也是可以修改的    
    server_name www.guhantai.com.cn www.guhantai.cn;
    index index.html index.htm index.php;
    root /usr/local/nginx/html;
 
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/tmp/php-fcgi.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME
/usr/local/nginx/html$fastcgi_script_name;
    }
}

③退出保存

④检查配置文件是否有错误

[root@mysql vhosts]#/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

⑤重新加载

[root@mysql vhosts]#/usr/local/nginx/sbin/nginx -s reload

 

⑥测试

  default 表示有一个默认的虚拟机主机

   

 

                                二. php-fpm.conf

1、清空/usr/local/php/etc/php-fpm.conf文件中的内容,然后写入如下配置:

vim   /usr/local/php/etc/php-fpm.conf   

配置文件内容:

 

[global]   #全局配置

pid = /usr/local/php/var/run/php-fpm.pid

error_log = /usr/local/php/var/log/php-fpm.log #定义错误日志位置

[www] 

listen = /tmp/php-fcgi.sock #或者写成127.0.0.1:80也可以

user = php-fpm 

group = php-fpm

listen.owner = nobody  //和后面的nginx的一致

listen.group = nobody // 同上

pm = dynamic 

pm.max_children = 50 

pm.start_servers = 20 

pm.min_spare_servers = 5  #最小的攀升资源数

pm.max_spare_servers = 35 #最大的攀升资源数

pm.max_requests = 500

rlimit_files = 1024 

如图所示:


有多个池子的写法如下图:

listen.owner = nobody  //和后面的nginx的一致,如果不定义,默认会以root的身份去生成这个/tmp/php-fcgi.sock文件,但是他的other是没有读权限的,nginx调用的时候就没有度权限,所以会报502的错误

pm.max_requests = 500  #webphp的请求提供服务的生命周期,500指的是这个进程最多是只能处理500个进程,当500个请求完成之后,就总销毁

rlimit_files = 1024 :文件描述符的数量


2配置多个pool的作用是提供给多个nginx的虚拟主机使用

 

3、配置慢执行日志

     作用: 慢性日志主要是用来进行性能追踪,定位php脚本哪里有问题的

/usr/local/php/etc/php-fpm.conf文件中加入以下两行

      slowlog = /path/to/slow.log #这个位置可以自定义

     request_slowlog_timeout = 1

具体位置如图:

检查配置文件

    [root@mysql ~]# /usr/local/php/sbin/php-fpm -t

   [21-Jun-2015 17:29:30] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful

  这提示表示配置文件时OK

 

定义open_basedir,加入以下一行

   加入这一行:php_admin_value[open_basedir]=/data/www/:/tmp/

如图:

退出保存,检查配置文件

[root@mysql ~]# /usr/local/php/sbin/php-fpm -t

[21-Jun-2015 17:44:40] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful

 

配置文件解释:

     [global]:全局配置

     pid:指定进程id文件

     error_log:指定错误文件存放的位置

     [www]:资源池的名字,有多个资源池时了可以填写数字加以区分

     listen:监听方式,配置要和nginx中的配置一致,有两种方式:

                  第一种:ip+端口的

                  第二种:使用sock文件

    user:启动进程的用户,这里的用户要和启动nginx的一样

    group:启动账户的用户组

    pm = static/dynamic动态、静态子进程

    如果选择static,则由pm.max_children指定固定的子进程数。

 

    如果选择dynamic,则由以下参数决定:

     pm.max_children 子进程最大数

     pm.start_servers 启动时的进程数

     pm.min_spare_servers 保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程

     pm.max_spare_servers 保证空闲进程数最大值,如果空闲进程大于此值,此进行清理

     对于专用服务器,pm可以设置为static。

每一个池子可以单独写一个慢日志,当然日志的存放路径是可以自己定义的

                                          

                                  三. nginx高级配置

 

1. 配置第二个虚拟主机

可以在nginx.conf 加一行(这里跟上面重复了哈)

include  conf/vhosts/*.conf;  

这样,我们就可以在 conf/vhosts目录下创建虚拟主机配置文件了。

vim  conf/vhosts/111.conf   // 加入

server

 

{

    listen 80;

    server_name 111.com;

    index index.html index.htm index.php;

    root /data/www2;

 

    location ~ \.php$ {

        include fastcgi_params;

        fastcgi_pass unix:/tmp/php-fcgi.sock;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /data/www2$fastcgi_script_name;

    }

}

2. 验证默认虚拟主机

listen       80 default_server;

 

3. 用户认证

首先需要安装apache,可以使用yum install httpd 安装

   1) 安装Apache

      yum install httpd

   2)查看Apache安装的目录

       rpm -ql httpd

  3、使用which htpasswd查找htpasswd文件路径

    [root@mysql ~]# which htpasswd

     /usr/bin/htpasswd

 

   4生成密码文件,创建用户

        添加cheng用户,第一次添加时需要加-c参数,第二次添加时不需要-c参数

        [root@mysql ~]# /usr/bin/htpasswd -c /usr/local/nginx/conf/.htpasswd cheng

       New password:

       Re-type new password:

      Adding password for user cheng

 

5在nginx的配置文件中添加 认证方访问方式有两种:

               第一种:针对整个网站的一个认证

location  / {

                      root /data/www/wwwroot/count; #在这里添加root之后,用户访问网站都会要求输入账号和密码,一般我们使用第二种方式

                     auth_basic              "Auth";

                      auth_basic_user_file   /usr/local/nginx/conf/.htpasswd; #用户认证密码和账户存放的位置

            }

 

如图:

保存退出

 

6) 检测配置文件

[root@mysql ~]# /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

 

7)重启

[root@mysql ~]# /etc/init.d/nginx reload

 

8)在浏览器测试

                    第二种:针对某个目录去限制,而不是整个网站

代码如下:

root /data/www;

 

    location  /w/ {   #这里的w就是用户认证目录,用户访问这个目录下的文件时会要求输入账号和密码来进行认证。

                      auth_basic              "Auth";

                      auth_basic_user_file   /usr/local/nginx/conf/.htpasswd;

            }

具体如图:

 测试:

访问/data/www/1.php文件,如下图所示:

访问/data/www/w/目录下的index2.html文件,提示要输入账号和密码

4. 域名重定向

   1)打开虚拟主机配置文件,我们这里以default2.conf主机为例

     /usr/local/nginx/conf/vhosts/default2.conf文件中加入以下内容:

      如图:

内容:

 

 server_name www.guhantai.com.cn www.guhantai.cn;

    if ($host != 'www.guhantai.cn' ) {

        rewrite  ^/(.*)$  http://www.guhantai.cn/$1  permanent;

    }

退出保存

2)检查配置文件

   

[root@mysql ~]# /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

 3)重启

[root@mysql ~]# /etc/init.d/nginx reload

重新载入 Nginx:

 

4)测试

   

[root@mysql ~]# curl -I -x127.0.0.1:80 www.guhantai.com.cn

HTTP/1.1 301 Moved Permanently    #显示的状态是301#

Server: nginx/1.6.2

Date: Sun, 21 Jun 2015 20:28:16 GMT

Content-Type: text/html

Content-Length: 184

Connection: keep-alive

Location: http://www.guhantai.cn/  #跳转成功#

 

5.  日志相关

    1日志切割:

     ① 编写脚本:

     vim  /usr/local/sbin/logrotate.sh #/logrotate.sh这个文件默认是没有了,使用vim新建的

加入以下内容:

 

#! /bin/bash

d=`date -d "-1 day" +%Y%m%d`

/bin/mv /home/logs/default2.log /home/logs/default2_$d.log #重命名,移动位置

/etc/init.d/nginx reload >/dev/null 2> /dev/null                 

cd /home/logs   #进入/home/logs/目录

gzip default2_$d.log  #压缩default2_$d.log文件,以便节省空间

 

使用zcat可以查看压缩的文件

 

保存退出

 

②定义日志

    打开/usr/local/nginx/conf/vhosts/default2.conf配置文件

    加上以下内容:

    access_log /home/logs/default2.log combined_realip;

    加在如下图所示的位置:

   

combined_realip:日志的格式,是在nginx.conf文件中定义的,如图:

创建/home/logs/目录

[root@mysql ~]# mkdir /home/logs/

 

检查配置文件

[root@mysql ~]# /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

 

⑤重新加载

[root@mysql ~]# /usr/local/nginx/sbin/nginx -s reload

 

测试下,看看是否产生的有日志

 [root@mysql ~]#  curl -I -x127.0.0.1:80 www.guhantai.com.cn  #执行了两次

 

⑦查看日志,有两行,因为上面执行了两次,所有有两行

[root@mysql ~]# cat /home/logs/default2.log

127.0.0.1 - [22/Jun/2015:05:36:01 +0800]www.guhantai.com.cn "/" 301"-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"

127.0.0.1 - [22/Jun/2015:05:36:03 +0800]www.guhantai.com.cn "/" 301"-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"

 

⑧执行脚本,在/usr/local/nginx/conf/vhosts目录下

[root@mysql vhosts]# sh -x /usr/local/sbin/logrotate.sh

-x:是为了查看执行过程

 

使用ls查看/home/logs/目录是,会有一下两个文件

[root@mysql vhosts]#ls /home/logs/
default2_20150621.log  default2.log

-d "-1 day":指的是昨天的日志

 

2日志格式 

 

log_format main '$remote_addr - $remote_user [$time_local] $request '

                    '"$status" $body_bytes_sent "$http_referer" '

                    '"$http_user_agent" "$http_x_forwarded_for"';

 

 

 

log_format main1 '$proxy_add_x_forwarded_for - $remote_user [$time_local] ' 

                      '"$request" $status $body_bytes_sent '

                      '"$http_referer" "$http_user_agent"';  //此日志格式为,ip不仅记录代理的ip还记录远程客户端真实IP

 

 

3错误日志error_log日志级别 

 

error_log 级别分为 debug, info, notice, warn, error, crit  默认为crit, 该级别在日志名后边定义格式如下:

error_log  /your/path/error.log crit;  

crit 记录的日志最少,而debug记录的日志最多。如果你的nginx遇到一些问题,比如502比较频繁出现,但是看默认的error_log并没有看到有意义的信息,那么就可以调一下错误日志的级别,当你调成error级别时,错误日志记录的内容会更加丰富。

 

日志格式定义的位置在/usr/local/nginx/conf/nginx.conf配置文件中,具体如图:

6. 配置缓存

     是针对某个网站来说做的,所以配置在虚拟主机中,还是以default2.conf虚拟主机为例

    1)编辑/usr/local/nginx/conf/vhosts/default2.conf配置文件,将以下内容拷贝到文件中去

       内容如下:

 

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

        {

                expires      30d;

                access_log off;

        }

 

        location ~ .*\.(js|css)$

        {

                expires      12h;

                access_log off;

        }

 

  location ~ :匹配的意思

(gif|jpg|jpeg|png|bmp|swf):以这些结尾的文件,设定的缓存时间为30

expires:缓存时间

access_log off:不记录日志

如图:

保存退出

2)检查配置文件

 [root@mysql vhosts]# /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

 

3)重新加载

[root@mysql vhosts]# /usr/local/nginx/sbin/nginx -s reload

 

4)测试

[root@mysql vhosts]# curl -I -x127.0.0.1:80 www.guhantai.cn/1.jpg

HTTP/1.1 200 OK

Server: nginx/1.6.2

Date: Mon, 22 Jun 2015 01:17:52 GMT

Content-Type: p_w_picpath/jpeg

Content-Length: 0

Last-Modified: Mon, 22 Jun 2015 01:16:22 GMT

Connection: keep-alive

ETag: "558761e6-0"

Expires: Wed, 22 Jul 2015 01:17:52 GMT

Cache-Control: max-age=2592000  #这里换算过来正好30天,当然能我也不会算

Accept-Ranges: bytes

 

 

7. 防盗链

1)在虚拟主机重配置,写入一下内容,还是以default2.conf虚拟主机为例

内容如下:

location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ {   

                valid_referers none blocked server_names  *.taobao.com *.baidu.com *.google.com *.google.cn *.soso.com ;  // 对这些域名的网站不进行盗链。

                if ($invalid_referer) {

#                        return 403;

                        rewrite ^/ http://www.example.com/nophoto.gif;

                        }

                }

2如果前面配置中(指的是前面的静态缓存配置)已经加了

                 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

                         {

                                 expires      30d;

                                 access_log off;

                         }

那么会和这一部分重复,就要把前面的注释掉所以结合起来的配置如下

 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ {

         expires 10d;

         valid_referers none blocked server_names *.guhantai.com.cn *.guhantai.cn *.b.com *.baidu.com\

         *.google.com *.google.cn *.soso.com ;

         if ($invalid_referer) {

              return 403;

              #rewrite ^/ http://www.example.com/nophoto.gif;

         }

         access_log off;

    }

①退出保存

 

②检查配置文件

[root@mysql vhosts]# /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

 

③重新加载nginx

[root@mysql vhosts]# /usr/local/nginx/sbin/nginx -s reload

 

④测试

不允许盗链测试

[root@mysql vhosts]# curl -x127.0.0.1:80 -e "http://abg.com/345" -I 'http://www.guhantai.cn/w/1.jpg'

HTTP/1.1 403 Forbidden #这里是403

Server: nginx/1.6.2

Date: Mon, 22 Jun 2015 03:12:20 GMT

Content-Type: text/html

Content-Length: 168

Connection: keep-alive

"http://abg.com/345 这个网站是虚拟出来的一个,没有在允许的范围之类,所以报错403的错误

 

允许盗链测试

[root@mysql vhosts]# curl -x127.0.0.1:80 -e "http://www.guhantai.com.cn/345" -I 'http://www.guhantai.cn/w/1.jpg'

HTTP/1.1 404 Not Found   #这里是404,因为我的网站下面根本就没有345这个目录,所以提示为找到

Server: nginx/1.6.2

Date: Mon, 22 Jun 2015 03:25:01 GMT

Content-Type: text/html

Content-Length: 168

Connection: keep-alive

 

⑤查看日志

[root@mysql ~]# less /home/logs/default2.log

 

不指定网站去访问时,是OK

[root@mysql vhosts]# curl -x127.0.0.1:80 -I 'http://www.guhantai.cn/w/123.jpg'

HTTP/1.1 200 OK  #这里200说明是OK

Server: nginx/1.6.2

Date: Mon, 22 Jun 2015 03:39:04 GMT

Content-Type: p_w_picpath/jpeg

Content-Length: 568777

Last-Modified: Mon, 22 Jun 2015 03:38:17 GMT

Connection: keep-alive

ETag: "55878329-8adc9"

Expires: Thu, 02 Jul 2015 03:39:04 GMT

Cache-Control: max-age=864000

Accept-Ranges: bytes


     笔记有错误的地方还请大神指正,小白会继续修改 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/782372.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存