欢迎光临散文网 会员登陆 & 注册

https nginx tomcat web服务器的搭建

2023-02-15 09:16 作者:bili_39183997178  | 我要投稿

http

• 提供的默认配置

– Listen:监听地址:端口(80)

– ServerName:本站点注册的DNS名称(空缺)

– DocumentRoot:网页根目录(/var/www/html)

– DirectoryIndex:起始页/首页文件名(index.html)

 主配置文件/etc/httpd/conf/httpd.conf

 <Directory    />

    Require all denied     #拒绝所有人访问

</Directory>

 <Directory    "/var/www">

    Require all granted      #允许所有人访问

• 配置文件路径

– /etc/httpd/conf/httpd.conf  #主配置文件

– /etc/httpd/conf.d/*.conf   #调用配置文件

 • 为每个虚拟站点添加配置

<VirtualHost   IP地址:端口>

       ServerName  此站点的DNS名称

       DocumentRoot  此站点的网页根目录

</VirtualHost>

 <VirtualHost   IP地址:端口>

       ServerName  此站点的DNS名称

       DocumentRoot  此站点的网页根目录

</VirtualHost>

nginx

yum -y install bash-completion   //安装支持tab键的软件包

装好之后,使用exit退出,重新登录才生效

Yum -y install net-tools  //安装网络相关软件包

yum -y install  psmisc   //安装支持killall命令的软件

yum -y install bash-completion   //安装支持tab键的软件包

装好之后,使用exit退出,重新登录才生效

Yum -y install net-tools  //安装网络相关软件包

yum -y install  psmisc   //安装支持killall命令的软件

yum -y install  gcc  make  //安装编译工具

yum -y install  pcre-devel  //安装可以让nginx支持正则的软件包

yum -y install  openssl-devel  //安装可以让nginx支持安装加密网站

./configure  --prefix=/usr/local/nginx  --user=nginx  --with-http_ssl_module

//配置,--prefix是指定安装路径,--user是指定用户  

--with-http_ssl_module是安全网站模块

ls  /usr/local/nginx/    //安装好之后查看目录

conf 存放配置文件     sbin  存放主程序

html 存放网站页面     logs  存放日志

sbin/nginx  -V 

nginx增加网站认证功能

修改nginx配置文件,在40、41行添加两句     

vim  conf/nginx.conf

auth_basic  "password";  //网页弹出的提示信息,此信息可能会根据

不同浏览器显示效果不一,有的浏览器甚至不显示,但不影响认证功能

auth_basic_user_file  "/usr/local/nginx/pass";   //存放网站账户的文件

 sbin/nginx  -s reload   //重加载配置,检验之前配置,没有任何信息即可

yum -y install httpd-tools   //之后安装软件包

htpasswd -c  pass  tom   //创建pass文件,里面创建tom账户,之后

会要求输入两次密码

然后用火狐浏览器访问192.168.2.5,可以看到输入用户名密码的对话框、

输入用户名tom以及密码即可

 htpasswd  pass  jerry   //追加一个账户,名字是jerry  

nginx配置虚拟主机

 http {

server {    //第1个虚拟主机

listen 80;

server_name www.a.com;

root html;

index  index.html;

}

server {    //第2个虚拟主机

。。。。

。。。。

}

}

autoindex on; 表示自动在index.html的索引打开

autoindex_exact_size on; 表示如果有文件则显示文件大小

autoindex_localtime on; 表示显示更改时间,以当前系统时间为准

打开nginx主配置文件在34~39行添加:

server {

listen 80;     //监听端口号

server_name www.b.com;     //域名,默认的虚拟主机改成www.a.com

root html_b;     //存放网页的目录

index index.html;     //默认页名字

}

 sbin/nginx  -s  reload   //之后重新加载配置文件,服务必须是开启状态

搭建安全网站

 vim conf/nginx.conf    //修改大概103~120行,如果配置恢复了,就找98~115行

    server {   //此处的虚拟主机自带ssl安全加密功能,将其范围的注释取消即可

        listen       443 ssl;

        server_name  www.c.com;      //这里修改域名

        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_c;     //这里修改页面存储目录

            index  index.html index.htm;

        }

}

openssl genrsa > conf/cert.key   //创建私钥

 openssl req -x509 -key conf/cert.key > conf/cert.pem   

//创建证书,证书中包含公钥,生成过程会询问诸如你在哪个国家之类

的问题,可以随意回答,但要走完全过程

Country Name (2 letter code) [XX]:dc    国家名

State or Province Name (full name) []:dc    省份

Locality Name (eg, city) [Default City]:dc     城市

Organization Name (eg, company) [Default Company Ltd]:dc    公司

Organizational Unit Name (eg, section) []:dc    部门

Common Name (eg, your name or your server's hostname) []:dc    服务器名称

Email Address []:dc@dc.com     电子邮件

LNMP

yum -y install  mariadb  mariadb-server   mariadb-deve  //安装数据库客户端与服务端

php  //安装php,相当于解释器

yum -y install  php-fpm  php  安装php,相当于解释器  //安装可以帮助nginx解析php语言编写的动

态网站的服务

yum -y install  php-mysql   //安装php与mysql关联的软件包

systemctl start  php-fpm

nginx配置文件,第65到71行去掉注释(可以用:65,71s/#//),69行不用去

        location ~ \.php$ {   //~是使用正则表达式,匹配以.php结尾

            root           html;     //网站页面位置,不用改,保持默认

            fastcgi_pass   127.0.0.1:9000;  //一旦用户访问了.php结尾的文

件,就让nginx找后台的php-fpm(端口号9000)

            fastcgi_index  index.php;    //动态网站的默认页面,无需修改

        #   fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;   

 //无用行,保持注释状态

            include        fastcgi.conf;  //这里是另外一个配置文件,需要改扩展名

        }

 fastCGI    快速公共网关接口,可以连接如nginx等网站程序到网站

地址重写

可以定义用户的访问路径可以看到的实际内容

rewrite  匹配路径   实际看到的页面    选项

打开配置文件,在38行添加

rewrite  /a.html  /b.html;    //用户访问的路径中包含a.html的话

就跳转到b.html页面

地址重写测试3:不同网站间跳转

rewrite / http://www.tmooc.cn;    //访问192.168.2.5的网站可以

地址重写测试2:相同网站不同页面

rewrite ^/a\.html$ /b.html redirect;   //在刚刚的配置中添加redirect

地址重写测试4:不同网站间跳转

rewrite /(.*) http://www.tmooc.cn/$1;    //访问老网站会跳到新

网站,同时会携带所访问的页面,()是正则,代表保留(复制)  $1表示

粘贴之前第一个小括号保留的内容

sbin/nginx -s reload  

地址重写测试5:不同浏览器跳转到不同页面

修改配置文件,删除原有地址重写,原地添加

if  ($http_user_agent  ~*  firefox){   //如果用户使用了火狐浏览器

rewrite  /(.*)  /firefox/$1;  //就进行地址重写操作,让用户看到火狐专属页面

}          

//$http_user_agent是nginx的内置变量,存储了用户的信息,比如用的什么浏览器

~匹配正则  *忽略大小写

选项

redirect    临时重定向   状态码  302   爬虫不感兴趣

permanent  永久重定向  状态码  301   爬虫感兴趣

 以下两种写法对于用户来说效果一样,但是对百度这样的网站不同

rewrite  ^/a.html$  /b.html  permanent;

rewrite  ^/a.html$  /b.html  redirect;

last  不再读其他rewrite

rewrite  /a.html  /b.html  last;   //不加last的话nginx会把多个rewrite语句综合处理

结果就是看a页面结果跳到c页面了,加了last的话可以避免这个情况

break  不再读其他语句

        location / {     //此处为默认的location

rewrite /a.html /b.html break;    //将last改为break可以阻止后面的语句,此处

如果是last则无法阻止后面location语句中的rewrite语句

            root   html;

            index  index.html index.htm;

        }

location /b.html {    //这里是新添加的location

rewrite /b.html /c.html;

}

nginx配置文件实现集群功能

 vim conf/nginx.conf

upstream web {        //首先是34~37行,创建集群,集群名称叫web

server  192.168.2.100:80;   //这里是集群中的服务器ip与端口

server  192.168.2.200:80;   //第二台集群主机

}

server {

        listen       80;

        。。。。

        location / {

proxy_pass  http://web;     //在第47行,调用集群

            root   html;

            index  index.html index.htm;

        }

之后开启nginx或者重加载nginx配置,用curl 192.168.2.5可以看到 web1

或web2页面轮询出现

 优化

server 192.168.2.200:80 weight=2;   //为性能较强的集群主机配置权重

,权重越大任务的分配量就越大

1, 配置健康检查

server 192.168.2.200:80 max_fails=2 fail_timeout=30; //检测两次如果失败

,则认为集群中的主机故障,之后等待30秒再次测试

相同客户机访问相同服务器

upstream web {

ip_hash;   //相同客户机访问相同服务器,让一个客户机访问集群时锁定

一个后台服务器,避免重复登陆的问题

server 192.168.2.100:80;

server 192.168.2.200:80;

server 192.168.2.200:80 down;  //down标记可以让集群主机暂时不参与集群活动



四层代理

./configure  --with-stream  --with-http_stub_status_module

//这里的--with-stream 是添加四层代理模块,可以用来创建其

他业务集群,--with-http_stub_status_module是后面实验所需模块

另外,如果更新模块,但不想删除之前nginx数据,可以将nginx源码目录下的objs目录中的nginx文件拷贝到nginx的sbin目录下替代现有主程序,然后killall  nginx 再重启即可

打开nginx主配置文件,在16行左右(http上面),添加以下内容

stream {         //创建新业务

upstream backend {    //创建名叫backend的集群

server 192.168.2.100:22;    //集群中的主机使用22端口对外提供服务

server 192.168.2.200:22;

}

server {

listen 12345;    //监听端口号

proxy_pass backend;    //调用集群

}

}

 sbin/nginx   //配置写好之后开启服务或者重加载配置文件

ssh  192.168.2.5 -p 12345    //尝试远程登录,第一次可能会连接集群的某一台主机比如web1

exit    //退出

ss命令可以查看系统中启动的端口信息,该命令常用选项如下:

-a显示所有端口的信息

-n以数字格式显示端口号

-t显示TCP连接的端口

-u显示UDP连接的端口

-l显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口

-p显示监听端口的服务名称是什么(也就是程序名称)

注意:在RHEL7系统中可以使用ss命令替代netstat命令,功能一样,选

404报错

打开配置文件,在默认的虚拟主机里面的location下面修改

error_page  404      /test.jpg;  //这里把#注释去掉,后面改成test.jpg

查看网站后台数据

--with-http_stub_status_module   //该功能利用的模块,之前配置nginx已经安装

打开配置文件

location /status  {   //在error_page行上面添加此内容

stub_status on;    //显示后台的数据

allow 192.168.2.5;    //只允许2.5查看

deny all;   //拒绝其他

}

curl  192.168.2.5/status   查看

Active connections:当前活动的连接数量(当前有多少用户访问该网站)。

Accepts:已经接受客户端的连接总数量。

Handled:已经处理客户端的连接总数量。

Requests:客户端发送的请求数量。

Reading:当前服务器正在读取客户端请求头的数量。

Writing:当前服务器正在写响应信息的数量。

Waiting:当前多少客户端在等待服务器的响应。

 

nginx问题处理

1, 缓存文件在客户端

用户如果反复访问服务器的相同文件可以缓存到客户机,避免

服务器反复传送相同文件,节约时间

打开配置文件,在默认的location下面添加一个location

location ~* \.(jpg|html|txt|mp3)$ {     //当发现用户访问的是

以.jpg或者.html等等结尾的页面时

expires 30d;   //就把上述访问的文件在客户机缓存30天

}

支持超长地址栏

默认情况下nginx无法支持长地址栏,会报414错误

 打开配置文件,在默认的虚拟主机上方添加两行

client_header_buffer_size 200k;   //第一行表示,用户访问网站的头部信

息(包含地址栏)长度支持200k大小

large_client_header_buffers 4 200k;  //第二行表示,如果200k不够,再

给4个200k


优化nginx并发

• 隐藏版本信息

[root@node1 ~]# vim /usr/local/nginx/conf/nginx.conf
... ...
 17 http {
 18     server_tokens off;



• 防止DOS、DDOS攻击

• DDOS:分布式拒绝服务

# 压力测试,每批次发送100个请求给web服务器,一共发200个
[root@zzgrhel8 ~]# yum install -y httpd-tools
[root@zzgrhel8 ~]# ab -c 100 -n 200 http://192.168.4.11/
... ...
Benchmarking 192.168.4.11 (be patient)
Completed 100 requests
Completed 200 requests
Finished 200 requests    # 发送200个请求完成
... ...
Complete requests:      200   # 完成了200个请求
Failed requests:        0     # 0个失败
... ...

• 配置nginx连接共享内存为10M,每秒钟只接收一个请求,最多有5个请求排队,多余的拒绝

[root@node1 ~]# vim /usr/local/nginx/conf/nginx.conf
 17 http {
 18     limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;   # 添加
... ...
 37     server {
 38         listen       80;
 39         server_name  localhost;
 40         limit_req zone=one burst=5;  # 添加
[root@node1 ~]# /usr/local/nginx/sbin/nginx -s reload

# 再次测试
[root@zzgrhel8 ~]# ab -c 100 -n 200 http://192.168.4.11/
... ...
Benchmarking 192.168.4.11 (be patient)
Completed 100 requests
Completed 200 requests
Finished 200 requests
... ...
Complete requests:      200
Failed requests:        194   # 失败了194个
... ...

拒绝某些类型的请求

• 用户使用HTTP协议访问服务器,一定是通过某种方法访问的。

• 最常用的HTTP方法

– GET:在浏览器中输入网址、在页面中点击超链接、搜索表单。

– POST:常用于登陆、提交数据的表单

• 其他HTTP方法不常用,如:

– HEAD:获得报文首部。HEAD 方法和 GET 方法一样,只是不返回报文主体部分。

– PUT:传输文件。要求在请求报文的主体中包含文件内容,然后保存到请求 URI 指定的位置。

– DELETE:删除文件。DELETE 方法按请求 URI 删除指定的资源。

# 使用GET和HEAD方法访问nginx。两种方法都可以访问
[root@zzgrhel8 ~]# curl -i -X GET http://192.168.4.11/
[root@zzgrhel8 ~]# curl -i -X HEAD http://192.168.4.11/


# 配置nginx只接受GET和POST方法
[root@node1 ~]# vim /usr/local/nginx/conf/nginx.conf
... ...
 37     server {
 38         listen       80;
 39         if ($request_method !~ ^(GET|POST)$ ) {
 40             return 444;
 41         }
... ...
# $request_method是内置变量,表示请求方法。~表示正则匹配,!表示取反。^表示开头,$表示结尾,|表示或

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

# 使用GET和HEAD方法访问nginx。只有GET可以工作
[root@zzgrhel8 ~]# curl -i -X GET http://192.168.4.11/
[root@zzgrhel8 ~]# curl -i -X HEAD http://192.168.4.11/

附:取出nginx.conf中注释和空行以外的行

# -v是取反。^ *#表示开头有0到多个空格,然后是#。^$表示空行
[root@node1 ~]# egrep -v '^ *#|^$' /usr/local/nginx/conf/nginx.conf

防止缓冲区溢出

• 缓冲区溢出定义:程序企图在预分配的缓冲区之外写数据。

• 漏洞危害:用于更改程序执行流,控制函数返回值,执行任意代码。

# 配置nginx缓冲区大小,防止缓冲区溢出
[root@node1 ~]# vim /usr/local/nginx/conf/nginx.conf
... ...
 17 http {
 18     client_body_buffer_size     1k;
 19     client_header_buffer_size   1k;
 20     client_max_body_size        1k;
 21     large_client_header_buffers 2 1k;
... ...
[root@node1 ~]# /usr/local/nginx/sbin/nginx -s reload

nginx配置文件修改第3行,第13行-

   worker_processes  2;   //开启的nginx进程数量,通常是随cpu的核心数一致

     worker_connections  50000;   //每个nginx进程支持的并发访问量

ulimit -n     //查询系统打开文件数量的大小

ulimit -n 100000   //临时定义文件可以同时被打开的次数为10万

vim /etc/security/limits.conf   //打开配置文件实现永久修改

修改第53、54行

*               soft    nofile          100000

*               hard    nofile         100000

解决集群主机过多而导致用户重复登陆网站的问题

然后在proxy主机配置集群,注意该主机不能有动静分离的配置

upstream web {     //在默认的虚拟主机上面添加集群

        server 192.168.2.100:80;

        server 192.168.2.200:80;

}

 location  /  {

     proxy_pass http://web;  //然后在默认的虚拟主机中的location里调用集群

 

sbin/nginx -s reload  //重新加载配置文件

memcache  可以利用内存读写数据的数据库服务  端口 11211 


主机修改存储session文件的位置

vim  /etc/php-fpm.d/www.conf   //到最后一页

php_value[session.save_handler] = memcache  //这里改成memcache,表示session

的存储不在是本地的普通文件,而是去找memcache

php_value[session.save_path] = tcp://192.168.2.5:11211   //这里的路径修改为

安装了memcache服务的服务器地址与端口

yum -y install php-pecl-memcache   //安装php与memcached服务关联的软件包

systemctl restart php-fpm

tomcat

yum -y install java-1.8.0-openjdk    //安装java程序运行环境包

 tomcat目录:

bin  存放主程序

logs  存放日志

conf  配置文件

webapps  存放网站页面  

lib  存放库文件

work  存放编译后页面文件

bin/startup.sh   //开启服务

bin/shutdown.sh     //然后重启tomcat

检查如果有8005、8009、8080端口则正常

由于tomcat服务开启时需要大量随机字符,但系统中随机字符

不够多的话会导致tomcat服务启动失败

解决方案1

mv  /dev/random  /dev/random.bak    //将random改名

ln  -s  /dev/urandom  /dev/random   //用urandom替换random

解决方案2:

yum -y  install  rng-tools

systemctl  start  rngd

 tomcat搭建虚拟主机

<Host  name=域名 appBase=网站页面位置  >

</Host>

 vim conf/server.xml  //打开配置文件在122行添加虚拟主机配置

<Host  name="www.b.com"  appBase="web_b">      //这里顺便把下面的默认的

虚拟主机的name="localhost"改成 name="www.a.com"

</Host>

<Host name="www.b.com" appBase="web_b"

unpackWARs="true" autoDeploy="true">      //添加unpackWARs自动

解war包,和autoDeploy可以自动更新开发工程师编写的网站功能代码

</Host>


tomcat访问路径与页面位置

Context  path  匹配用户访问路径  

docBase 定义页面位置

 测试 1

<Host name="www.b.com" appBase="web_b"

unpackWARs="true" autoDeploy="true">

<Context  path=""  docBase=""  />        

</Host>

 echo "web_b/ROOT/index.html" > web_b/ROOT/index.html   //默认页面路径

echo "web_b/index.html" > web_b/index.html   //创建素材,定义新路径

curl  www.b.com:8080   //测试可以看到的是默认的页面路径

web_b/ROOT/index.html

之后重启tomcat

curl  www.b.com:8080    //重启后测试可以看到新路径

web_b/index.html

 测试 2

<Host name="www.b.com" appBase="web_b"

unpackWARs="true" autoDeploy="true">

<Context  path=""  docBase="abc"  />   //修改成abc

</Host>

 mkdir  web_b/abc    //创建测试目录

echo "web_b/abc/index.html"  >  web_b/abc/index.html  //测试页面

重启tomcat

[root@proxy tomcat]# curl www.b.com:8080   //查看,见到新路径

web_b/abc/index.html

 测试 3

<Host name="www.b.com" appBase="web_b"

unpackWARs="true" autoDeploy="true">

<Context  path=""  docBase="/abc"  />   //修改成/abc

</Host>

 mkdir  /abc  //创建测试目录

echo  "/abc/index.html"  > /abc/index.html    //创建测试文件

重启tomcat

[root@proxy tomcat]# curl www.b.com:8080    //得到新路径

/abc/index.html

 测试 4

<Host name="www.b.com" appBase="web_b"

unpackWARs="true" autoDeploy="true">

<Context  path="/test"  docBase="/abc"  />   //path后面添加内容可以匹配

用户访问路径,当用户访问www.b.com:8080/test/时,看到的是/abc的内容,如果

访问www.b.com:8080就看到web_b/ROOT的内容

</Host>

 重启tomcat

[root@proxy tomcat]# curl www.b.com:8080/test/

/abc/index.html

[root@proxy tomcat]# curl www.b.com:8080

web_b/ROOT/index.html

 测试 5

<Host name="www.b.com" appBase="web_b"

unpackWARs="true" autoDeploy="true">

<Context  path="/test"  docBase="abc"  />     //将/abc改成abc

当用户访问www.b.com:8080/test/时,可以看到web_b/abc里的内容

当用户访问www.b.com:8080时就看到web_b/ROOT的内容

重启tomcat

[root@proxy tomcat]# curl www.b.com:8080/test/  

web_b/abc/index.html

[root@proxy tomcat]# curl www.b.com:8080

web_b/ROOT/index.html

给新创建的虚拟主机添加日志功能

vim conf/server.xml   //修改配置文件,复制最后一页默认虚拟主机的日志配置

其中prefix是日志名称suffix是日志后缀名

<Host name="www.b.com" appBase="test01"

unpackWARs="true" autoDeploy="true">

<Context path="" docBase="abc" />

     <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

               prefix="www_b_com" suffix=".log"

               pattern="%h %l %u %t "%r" %s %b" />

</Host>


使用tomcat搭建https网站

vim conf/server.xml   //修改配置文件,打开找到85行,将前后的注释删除 <!--   -->

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"

               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS"

keystoreFile="/usr/local/tomcat/keystore"

keystorePass="123456"  />   //这里

添加keystoreFile(指定公钥私钥文件)和keystorePass(公钥私钥文件密码)

 

keytool  -genkeypair  -alias  tomcat  -keyalg RSA  

-keystore  /usr/local/tomcat/keystore  //创建密钥对,别名是tomcat,加

密算法是RSA,最后是存储位置

输入密钥库口令: 输入123456

再次输入新口令: 再次输入123456

您的名字与姓氏是什么?

  [Unknown]:  dc

。。。。。

CN=dc, OU=dc, O=dc, L=dc, ST=dc, C=dc是否正确?

  [否]:  y

输入 <tomcat> 的密钥口令

        (如果和密钥库口令相同, 按回车):   直接回车

Warning:

ls  //检查下/usr/local/tomcat下面会产生keystore则成功


yum -y install  rpm-build    //安装制作rpm包的工具

[root@proxy ~]# rpmbuild  -ba  nginx.spec  //制作rpm包,但是没有配

置文件会报错,报错也需要敲,会产生所需的目录

[root@proxy ~]# ls    //可以看到一个rpmbuild目录

[root@proxy ~]# cp  ~/lnmp_soft/nginx-1.17.6.tar.gz  rpmbuild/SOURCES/  

//拷贝源码包到rpmbuild的工作目录

[root@proxy ~]# yum -y install  gcc  make  pcre-devel  openssl-devel

vim  rpmbuild/SPECS/nginx.spec  //编写将nginx转换为rpm包的配置文件

Name:nginx     //软件名

Version:1.17.6    //版本

Release:1       //发布的rpm包的版本

Summary:test~    //简单描述

#Group:

License:GPL    //授权协议 ,GPL表示自由软件

URL:www.abc.com    //网址

Source0:nginx-1.17.6.tar.gz     //源码包

#BuildRequires:   

#Requires:

%description    //详细描述

test~ test~

%post      //可以添加安装rpm包之后执行的命令,不是必须

useradd  nginx

%prep

%setup -q

%build

./configure  //配置,如果要添加选项或者模块可以继续写

make %{?_smp_mflags}     //编译

%install

make install DESTDIR=%{buildroot}    //安装

%files

%doc

/usr/local/nginx/*     //将改路径下文件打包成rpm

%changelog

rpmbuild  -ba  rpmbuild/SPECS/nginx.spec  //根据上述文件制作rpm包

ls  rpmbuild/RPMS/x86_64/nginx-1.17.6-1.x86_64.rpm  //查看最终结果,

已经产生nginx的rpm包则成功

 


https nginx tomcat web服务器的搭建的评论 (共 条)

分享到微博请遵守国家法律