Nginx
Nginx 简介
-
Nginx (engine x) 是一个高性能的 Web 服务器和反向代理服务器,也可以作为邮件代理服务器。
-
占有内存少,并发处理能力强,以高性能、低系统资源消耗而闻名,Nginx 官方测试为5万并发请求。(不同环境结果不同)
-
与 Nginx 同类型的 Web 服务器还有 Apache、Lighttpd(音同lighty)、Tengine(阿里巴巴的) 等
-
Nginx 的并发处理能力在同类型的 Web 服务器中表现极好(Apache、Lighttpd),在全世界范围内大量的网站使用了 Nginx,国内互联网中也大量使用了 Nginx,比如:淘宝、新浪、搜狐、网易、美团等。
-
其是采用 C 语言开发编写的
-
Nginx 只能部署静态资源;动态资源(如 jsp,servlet)不能放到 Nginx 上部署,无法识别
-
Nginx 主要应用:
-
静态网站部署
-
负载均衡
-
静态代理
-
动静分离
-
虚拟主机
-
Nginx 反向代理和正向代理
- 反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器;
- 正向代理类似一个跳板机,代理访问外部资源。比如:我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器,它能访问那个我不能访问的网站,于是我先连上代理服务器,告诉它我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。正向代理举例:FQ使用 VPN
总结:
- 综上所述:正向代理代理对象是客户端,反向代理代理对象是服务端。
- 软件层面一般常用 Nginx 来做反向代理服务器,它的性能非常好,用来做负载均衡。
Nginx 环境搭建
免费开源版的官方网站:http://nginx.org
Nginx 有 Windows 版本和 Linux 版本,但更推荐在 Linux 下使用 Nginx;(实际开发全是用 Linux)
下载 nginx-1.14.2.tar.gz 的源代码文件:wget http://nginx.org/download/nginx-1.14.2.tar.gz(不推荐,断网下载失败,需重下,不支持断点续传);推荐在 windows 上下载后传到 Linux 上。
我的习惯,将下载或者上传的安装文件放到 /home/soft/ 目录下
Linux 中文件上传和下载命令
-
rz
:进行文件上传,同名文件会添加相关后缀进行区分,不会覆盖。 -
rz -y
:进行文件上传并覆盖,如果上传的文件和上传位置中文件同名,则进行文件覆盖! -
sz xxx
:将指定文件下载到 Windows 中
安装 Nginx
步骤:(在 Linux 环境下)
-
准备好需要安装的 Linux 版本的 Nginx 安装包
-
Nginx 的安装需要确定 Linux 安装相关的几个库,否则配置和编译会出现错误,直接使用命令:
yum install gcc openssl openssl-devel pcre pcre-devel zlib zlib-devel -y
-
将 Nginx 安装包上传到 /home/soft/ 路径下(根据自己习惯),解压,执行:
tar -zxvf xxx
PS:可直接输入
rz
命令选择文件进行上传;或使用上传工具进行上传!rz
:进行文件上传,同名文件会添加相关后缀进行区分,不会覆盖。rz -y
:进行文件上传并覆盖,如果上传的文件和上传位置中文件同名,则进行文件覆盖! -
进入解压后的 Nginx 主目录,配置安装路径信息,执行:
./configure --prefix=/usr/local/nginx
-
编译,执行:
make
-
安装,执行:
make install
-
安装完后可在
/usr/local
下看到安装好的 nginx
启动 Nginx
两种启动方式:(如果启动失败,则可能之前安装过,查看运行的 Nginx 进程,关掉重新启动即可)
-
普通方式启动:切换到 nginx 安装目录的 sbin 目录下,执行:
./nginx
-
配置文件方式启动:
这是使用相对路径启动的: ./nginx -c /usr/local/nginx/conf/nginx.conf 这是使用绝对路径启动的: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 其中-c是指定配置文件,而且配置文件路径必须指定绝对路径
检查是否启动成功
-
查看进程:使用
ps -ef | grep nginx
说明:
nginx 体系结构由 master 进程和其 worker 进程组成;
master 进程读取配置文件,并维护 worker 进程,而 worker 进程则对请求进行实际处理;
Nginx 启动后,安装目录下会出现一些 _tmp 结尾的文件,这些是临时文件,不用管。
-
浏览器输入安装 Nginx 的主机的公网 IP + Nginx 的端口(默认是80)进行访问测试:如:
47.103.71.201:80/
注意:
如果是虚拟机上安装的 Nginx,则 IP 就是虚拟机的 IP;如果是云服务器上安装的,则 IP 就是云服务器的公网 IP
Nginx 的端口默认是 80,访问时不加端口,默认使用的也是 80端口
启动成功,访问失败,可尝试如下检查:
-
如果是云服务器,检查是否将 80 端口加入安全组
-
检查访问地址是否正确
-
查看防火墙问题,可能需要关闭防火墙
-
如果是 Linux,基本上无法访问是因为没有关防火墙!
查看防火墙状态: firewall-cmd --state 设置防火墙: 停止并禁用开机启动 systemctl disable firewalld 禁用防火墙 systemctl stop firewalld
仍无法访问参考:https://blog.csdn.net/yujing1314/article/details/105225325
关闭或重启 Nginx
优雅关闭
- 找出 nginx 的进程号:
ps -ef | grep nginx
- 执行命令:
kill -QUIT 主进程pid
其中 pid 是主进程号的 pid(master process),其他为子进程 pid(worker process)
这种关闭方式会处理完请求后再关闭,所以称之为优雅的关闭。【实际,处理完请求可能需要很长时间,看场景,开发中不常用】
快速关闭
- 找出 nginx 的进程号:
ps -ef | grep nginx
- 执行命令:
kill -TERM 主进程pid
其中 pid 是主进程号的 pid(master process),其他为子进程 pid(worker process)
这种关闭方式不管请求是否处理完成,直接关闭,比较暴力,称之为快速的关闭。
重启 Nginx
- 使用绝对路径:
/usr/local/nginx/sbin/nginx -s reload
- 在 nginx 安装目录的 sbin 下使用:
./nginx -s reload
- 场景:一般在修改完配置文件之后可以该命令重启 Nginx
配置文件语法检查
-
当修改 Nginx 配置文件后,可以使用 Nginx 命令进行配置文件语法检查,用于检查 Nginx 配置文件是否正确。
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -t
查看 Nginx 版本
只查看版本信息:
./nginx -v
同时查看版本以及Nginx安装路径信息:
./nginx -V
配置文件解读
-
学习 Nginx 首先需要对它的核心配置文件有一定的认识,这个文件位于 Nginx 的安装目录 /usr/local/nginx/conf 目录下,名字为nginx.conf
-
Nginx 的核心配置文件主要由三个部分构成:基础配置、events 配置、http 配置
-
建议修改配置文件不要在 Linux 中使用 vim ,建议下载配置文件到 Windows 中修改后上传覆盖。
-
以下为各配置中文解释:(需要配置时参考使用)
#配置worker进程运行用户 nobody也是一个linux用户,一般用于启动程序,没有密码
#user nobody;
#配置工作进程数目,根据硬件调整,通常等于CPU数量或者2倍于CPU数量
worker_processes 1;
#配置全局错误日志及类型,[debug | info | notice | warn | error | crit],默认是error
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid; #配置进程pid文件
###====================================================
#配置工作模式和连接数
events {
worker_connections 1024; #配置每个worker进程连接数上限,nginx支持的总连接数就等于worker_processes * worker_connections
}
###===================================================
#配置http服务器,利用它的反向代理功能提供负载均衡支持
http {
#配置nginx支持哪些多媒体类型,可以在conf/mime.types查看支持哪些多媒体类型
include mime.types;
#默认文件类型 流类型,可以理解为支持任意类型
default_type application/octet-stream;
#配置日志格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#配置access.log日志及存放路径,并使用上面定义的main日志格式
#access_log logs/access.log main;
sendfile on; #开启高效文件传输模式
#tcp_nopush on; #防止网络阻塞
#keepalive_timeout 0;
keepalive_timeout 65; #长连接超时时间,单位是秒
#gzip on; #开启gzip压缩输出
###-----------------------------------------------
#配置虚拟主机
server {
listen 80; #配置监听端口
server_name localhost; #配置服务名
#charset koi8-r; #配置字符集
#access_log logs/host.access.log main; #配置本虚拟主机的访问日志
#默认的匹配斜杠/的请求,当访问路径中有斜杠/,会被该location匹配到并进行处理
location / {
#root是配置服务器的默认网站根目录位置,默认为nginx安装主目录下的html目录
root html;
#配置首页文件的名称
index index.html index.htm;
}
#error_page 404 /404.html; #配置404页面
# redirect server error pages to the static page /50x.html
#error_page 500 502 503 504 /50x.html; #配置50x错误页面
#精确匹配
location = /50x.html {
root html;
}
#PHP 脚本请求全部转发到Apache处理
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
#PHP 脚本请求全部转发到FastCGI处理
# 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;
#}
#禁止访问 .htaccess 文件
# 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服务,安全的网络传输协议,加密传输,端口443,运维来配置
#
# 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;
# }
#}
}
静态网站部署
Linux 中文件上传和下载命令:
-
rz
:进行文件上传,同名文件会添加相关后缀进行区分,不会覆盖。 -
rz -y
:进行文件上传并覆盖,如果上传的文件和上传位置中文件同名,则进行文件覆盖! -
sz xxx
:将指定文件下载到 Windows 中
示例:(将名为 ace 的静态网站部署到 Nginx)(ace 静态网站下有 login.html 文件)
-
在 Linux 中,进入 Nginx 的 conf 目录下,如
cd /usr/local/nginx/conf
,可选择先备份 nginx.conf 主配置文件;使用cp nginx.conf nginx_backup,conf
;使用sz nginx.conf
将文件下载到电脑上,进行如下修改: -
在虚拟主机的 server 中,配置服务器的默认根目录和首页文件名称。(在 server 下,复制一份 location 进行如下配置)
下面的 ace 是静态网站名;将根目录配置到 /opt/www;配置首页文件为 login.html。(首页文件可不配置)
location /ace { root /opt/www; index login.html; }
配置示例说明:也可直接参考上面的详细配置说明
#默认的匹配斜杠/的请求,当访问路径中有斜杠/,会被该location匹配到并进行处理 location / { #root是配置服务器的默认网站根目录位置,默认为nginx安装主目录下的html目录 root html; #配置首页文件的名称 index index.html index.htm; }
-
回到 Linux,在
/usr/local/nginx/conf
目录下,使用rz -y
将 修改后的 nginx.conf 文件上传上去,并覆盖原文件。 -
在
/opt/
下创建名为 www 的目录,将 ace 静态网站上传到该目录下(可使用 Xftp 工具上传) -
重启 Nginx,执行:
/usr/local/nginx/sbin/nginx -s reload
-
输入地址进行访问测试:
http://47.103.71.201/ace
负载均衡(常用)
概述
-
在网站创立初期,我们一般都使用单台机器对外提供集中式服务。随着业务量的增大,我们一台服务器不够用,此时就会把多台机器组成一个集群对外提供服务,但是,我们网站对外提供的访问入口通常只有一个,比如 www.web.com。那么当用户在浏览器输入www.web.com进行访问的时候,如何将用户的请求分发到集群中不同的机器上呢,这就是负载均衡要做的事情。
-
负载均衡通常是指将请求"均匀"分摊到集群中多个服务器节点上执行,这里的均匀是指在一个比较大的统计范围内是基本均匀的,并不是完全均匀。
负载均衡实现方式
硬件负载均衡
-
比如 F5、深信服、Array 等
-
优点是有厂商专业的技术服务团队提供支持,性能稳定
-
缺点是费用昂贵,对于规模较小的网络应用成本太高
软件负载均衡
- 比如 Nginx、LVS、HAProxy 等
- 优点是免费开源,成本低廉
Nginx 实现负载均衡
- 实现方式:Nginx 通过在 nginx.conf 文件进行配置即可实现负载均衡。
示例:(先配置两个 Tomcat,在两个 Tomcat 上部署同一个 myweb 项目,将两个 Tomcat 集群运行,通过配置 Nginx 来将访问 myweb 项目的请求分发到两个 tomcat 上,实现均衡访问。)
-
将 tomcat 压缩包上传到
/home/soft
下,使用解压命令解压到/usr/local/
下;然后复制两份,分别重命名为 tomcat8001 和 tomcat8002;分别在两个 tomcat 的 comf/server.xml 文件中修改端口号,其 server.xml 文件中的三个端口号都需要修改(三个端口号都和另外一个 tomcat 的不同才能同时运行起来),而其中的访问端口号分别可改为对应的命名的端口 8001 和 8002,这样好区分。 -
将 myweb 项目分别部署到两个待运行的 tomcat/webapps 目录下,并删除其余多余的网站资源
-
分别启动两个 tomcat,输入地址进行访问测试,以上,则成功配置了两个 tomcat 集群。(此时是通过不同端口进行访问)
-
以下,需要配置 Nginx,提供对 web 项目统一的访问入口,通过 Nginx 来访问两个 tomcat 中相同的 myweb 项目。
-
将 Nginx 的配置文件
/nginx/conf/
下的 nginx.conf 文件下载到电脑上,进行如下添加配置:添加并配置 server 下的 location(拷贝一份 location 进行配置):
说明:/myweb 为访问的根目录;http:// + www.myweb.com 为一个标识,其中 www.myweb.com 可自定义
location /myweb { proxy_pass http://www.myweb.com; }
在 server 外,http 中,创建并配置 upstream:(推荐在 server 的上一行自行创建配置!)
说明:www.myweb.com 为在 server 中的 location 中配置的 http:// 后的自定义标识;upstream 中的 server 为指定的访问机器。
upstream www.myweb.com { server 192.168.154.128:8001; server 192.168.154.128:8002; }
-
使用
rz -y
将配置好的 nginx.conf 文件上传并覆盖 -
重启 Nginx,执行
/usr/local/nginx/sbin/nginx -s reload
-
输入地址
http://192.168.154.128/myweb/
进行访问测试
配置总结:(还可配置访问权重;不配置的话,默认采用轮询策略,即两个 tomcat 轮次进行访问)
A、 在http模块加上upstream配置
upstream www.myweb.com {
server 127.0.0.1:9100 weight=3;
server 127.0.0.1:9200 weight=1;
}
其中weight=1表示权重,用于后端服务器性能不均的情况,访问比率约等于权重之比,权重越大访问机会越多
upstream是配置nginx与后端服务器负载均衡非常重要的一个模块,并且它还能对后端的服务器的健康状态进行检查,若后端服务器中的一台发生故障,则前端的请求不会转发到该故障的机器
B、 在server模块里添加location,并配置proxy_pass
location /myweb {
proxy_pass http://www.myweb.com;
}
其中 www.myweb.com 字符串要和 upstream 后面的字符串相等
Nginx 常用负载均衡策略
轮询策略(默认)
-
轮询策略是一种实现简单,却很常用的负载均衡策略,核心思想是服务器轮流处理用户请求,以尽可能使每个服务器处理的请求数相同。生活中也有很多类似的场景,比如,学校宿舍里,学生每周轮流打扫卫生,就是一个典型的轮询策略。
-
在负载均衡领域中,轮询策略主要包括顺序轮询和加权轮询两种方式。
-
轮询策略的优点就是,实现简单,且对于请求所需开销差不多时,负载均衡效果比较明显,同时加权轮询策略还考虑了服务器节点的异构性,即可以让性能更好的服务器具有更高的优先级,从而可以处理更多的请求,使得分布更加均衡。
-
轮询策略的缺点是,每次请求到达的目的节点不确定,不适用于有状态请求的场景。并且,轮询策略主要强调请求数的均衡性,所以不适用于处理请求所需开销不同的场景。
-
注意:使用轮询策略最好保证多个机器的性能和处理速度一致,不然容易导致请求堆积。
-
如果后端服务器 down 掉,将自动剔除。
-
配置示例:
upstream backserver { server 127.0.0.1:8080; server 127.0.0.1:9090; }
权重策略
-
每个请求按一定比例分发到不同的后端服务器,weight 值越大访问的比例越大,用于后端服务器性能不均的情况。
-
配置示例:
upstream backserver { server 192.168.0.14 weight=5; server 192.168.0.15 weight=2; }
ip_hash 策略
-
ip_hash 也叫 IP 绑定,每个请求按访问 ip 的 hash 值分配,这样每个访问客户端会固定访问一个后端服务器,可以解决会话Session丢失的问题。
-
缺点:当访问的 ip 不同时,根据 ip 的 hash 值分配到的服务器可能相同,这种情况可能导致同一个服务器压力过大。
-
配置示例:
upstream backserver { ip_hash; server 127.0.0.1:8080; server 127.0.0.1:9090; }
最少连接策略
-
web 请求会被转发到连接数最少的服务器上
-
注意:如果请求少的机器处理速度慢,可能会导致该机器处理压力过大!
-
配置示例:
upstream backserver { least_conn; server 127.0.0.1:8080; server 127.0.0.1:9090; }
负载均衡其他几个配置
指定 backup 机器
-
指定 backup 机器的配置:
-
作用:其它所有的非 backup 机器全部 down 的时候,才请求 backup 机器
-
使用场景:
热部署,热更新(不出现访问时一会新数据,一会旧数据):先更新完 backup 服务器,然后关闭其他一半的服务器,对其进行更新;更新完后,在启动这一半的已经更新完的服务器的同时,关闭另一半的未更新的服务器;其间可能会出现全部机器 down 的情况,则此时会请求已经更新好的 backup 机器;然后将另一半的服务器全更新完后,将其启动即可,完成所有服务器的更新操作。
-
配置示例:
upstream backserver { server 127.0.0.1:9100; #其它所有的非backup机器down的时候,才请求backup机器 server 127.0.0.1:9200 backup; }
指定 down 机器(了解)
-
指定 down 机器的配置:
-
作用:down 表示当前的 server 是 down 状态,不参与负载均衡(该机器启动后也不参与负载均衡)
-
配置示例:
upstream backserver { server 127.0.0.1:9100; #down表示当前的server是down状态,不参与负载均衡 server 127.0.0.1:9200 down; } 一般在项目上线的时候,可以分配部署不同的服务器上,然后对Nginx重新reload。 reload不会影响用户的访问,或者可以给一个提示页面,系统正在升级...
静态代理
- 把所有静态资源的访问改为访问 nginx,而不是访问 tomcat,这种方式叫静态代理。
- 因为 nginx 更擅长于静态资源的处理,性能更好,效率更高。
- 所以在实际应用中,我们将静态资源比如图片、css、html、js 等交给 nginx 处理,而不是由 tomcat 处理。
Nginx 静态代理实现方式
方式一(不推荐)
方式一:在 nginx.conf 的 location 中配置静态资源的后缀(不推荐)
-
配置示例:(当访问静态资源,则从 linux 服务器 /opt/static 目录下获取(举例))
location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid |doc|ppt|pdf|xls|mp3|wma)$ { root /opt/static; } 注意:在 /opt/static 下添加项目时,记得带项目名
-
正则说明:
~ 表示正则匹配,也就是说后面的内容可以是正则表达式匹配 第一个点 . 表示任意字符 *表示一个或多个字符 \. 是转移字符,是后面这个点的转移字符 | 表示或者 $ 表示结尾
-
配置说明:
整个配置表示以 .后面括号里面的这些后缀结尾的文件都由 nginx 处理
放置静态资源的目录,要注意一下目录权限问题,如果权限不足,给目录赋予权限;
否则会出现403错误 chmod 755
方式二(推荐)
方式二:在 nginx.conf 的 location 中配置静态资源所在目录实现(推荐)
-
配置示例:(当访问静态资源,则从 linux 服务器 /opt/static 目录下获取(举例))
location ~ .*/(css|js|img|images|image) { root /opt/static; } xxx/css xxx/js xxx/img xxx/images 我们将静态资源放入 /opt/static 目录下,然后用户访问时由nginx返回这些静态资源
动静分离(常用)
-
Nginx 的负载均衡和静态代理结合在一起,我们可以实现动静分离,这是实际应用中常见的一种场景。
动态资源,如 jsp 由 tomcat 或其他 web 服务器完成。
静态资源,如图片、css、js 等由 nginx 服务器完成。
它们各司其职,专注于做自己擅长的事情。
-
动静分离充分利用了它们各自的优势,从而达到更高效合理的架构。
-
示例:整个架构中,一个 nginx 负责负载均衡,两个 nginx 负责静态代理。Nginx 在一台 Linux 上安装一份,可以启动多个 Nginx,每个Nginx 的配置文件不一样即可。
虚拟主机
-
虚拟主机,就是把一台物理服务器划分成多个“虚拟”的服务器,这样我们的一台物理服务器就可以当做多个服务器来使用,从而可以配置多个网站。
-
Nginx 提供虚拟主机的功能,就是为了让我们不需要安装多个 Nginx,就可以运行多个域名不同的网站。
-
Nginx 下,一个 server 标签就是一个虚拟主机。nginx 的虚拟主机就是通过 nginx.conf 中 server 节点指定的,想要设置多个虚拟主机,配置多个server节点即可;
例如:www.meituan.com 切换城市,可以看到不同的城市地址不一样(二级域名)
比如一个公司有多个二级域名,没有必要为每个二级域名都提供一台 Nginx 服务器,就可以使用虚拟主机技术,在一台 nginx服务器上,模拟多个虚拟服务器。
配置虚拟主机方式
基于端口的虚拟主机(了解)
-
基于端口的虚拟主机配置,使用端口来区分
-
浏览器使用 同一个域名+端口 或 同一个ip地址+端口访问;
-
注意:一般不使用这种方式!
因为我们访问服务的时候一般是不会加端口号的!
-
配置示例:
server { listen 8080; server_name www.myweb.com; location /myweb { proxy_pass http://www.myweb.com; } } server { listen 9090; server_name www.myweb.com; location /p2p { proxy_pass http://www.p2p.com; } }
基于域名的虚拟主机(常用)
-
基于域名的虚拟主机配置,使用域名来区分。
-
一个 nginx 同时绑定多个不同的域名!
-
基于域名的虚拟主机是最常见的一种虚拟主机!
-
配置示例:
upstream www.myweb.com{ server 192.168.208.128:8081; } server { listen 80; server_name www.myweb.com; location /myweb { proxy_pass http://www.myweb.com; } } upstream www.p2p.com{ server 192.168.208.128:8082; } server { listen 80; server_name www.p2p.com; location /myweb { proxy_pass http://www.p2p.com; }
-
需要使用下本地 dns 映射(将域名映射为IP地址),进行如下绑定配置:
需要修改一下本地的hosts文件,文件位置:C:\Windows\System32\drivers\etc\hosts 在hosts文件配置: 192.168.208.128 www.myweb.com 192.168.208.128 www.p2p.com 前面是Linux的IP,后面是你自定义的域名
都看到最后了,右下角来个赞鸭!-.- 欢迎评论留言~