web服务器集群试题

服务器IP地址规划:client:12.0.0.12/24,网关服务器:ens36:12.0.0.1/24、ens33:192.168.11.1/24;Web1:192.168.11.10/24,Web2:192.168.11.11/24,Nginx:192.168.11.9/24

1 Nginx服务器——编译安装Nginx

[root@mcb-11-9 ~]#yum -y install pcre-devel zlib-devel gcc gcc-c++ make
#安装依赖环境
[root@mcb-11-9 ~]#useradd -M -s /sbin/nologin nginx
#创建程序管理用户Nginx
[root@mcb-11-9 opt]#cd /opt
[root@mcb-11-9 opt]#wget http://nginx.org/download/nginx-1.18.0.tar.gz
#下载压缩文件
[root@mcb-11-9 opt]#ls
nginx-1.18.0.tar.gz
[root@mcb11-9 opt]#tar xf nginx-1.18.0.tar.gz 
[root@mcb-11-9 opt]#cd nginx-1.18.0/
[root@mcb-11-9 nginx-1.18.0]#./configure \         编译安装
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module
[root@mcb-11-9 nginx-1.18.0]#make -j2
[root@mcb-11-9 nginx-1.18.0]#make install
[root@mcb-11-9 nginx-1.18.0]#ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@mcb-11-9 nginx-1.18.0]#vim /lib/systemd/system/nginx.service    编译多行重定向
[root@mcb-11-9 nginx-1.18.0]#cat /lib/systemd/system/nginx.service 
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -1 $MAINPID
ExecStop=/bin/kill -3 $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@-11-9 nginx-1.18.0]#systemctl daemon-reload
[root@mcb-11-9 nginx-1.18.0]#systemctl enable --now nginx.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@mcb-11-9 nginx-1.18.0]#systemctl status nginx.service 
● nginx.service - nginxLoaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)Active: active (running) since 六 2024-03-09 12:37:29 CST; 4s agoProcess: 39778 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)Main PID: 39779 (nginx)CGroup: /system.slice/nginx.service├─39779 nginx: master process /usr/local/nginx/sbin/nginx└─39780 nginx: worker process3月 09 12:37:29 mvb.D systemd[1]: Starting nginx...
3月 09 12:37:29 mcb.D systemd[1]: Started nginx.
[root@mcb-11-9 nginx-1.18.0]#chown -R nginx:nginx /usr/local/nginx/

2 Nginx服务器——搭建PHP 

[root@mcb-11-9 ~]#cd /opt
[root@mcb-11-9 ~]#yum -y install gd \    安装环境依赖包
> libjpeg libjpeg-devel \
> libpng libpng-devel \
> freetype freetype-devel \
> libxml2 libxml2-devel \
> zlib zlib-devel \
> curl curl-devel \
> openssl openssl-devel
[root@mcb-11-9 opt]#rz -E
rz waiting to receive.
[root@mcb-11-9 opt]#ls
nginx-1.18.0  nginx-1.18.0.tar.gz  php-7.1.10.tar.bz2
[root@mcb-11-9 opt]#tar xf php-7.1.10.tar.bz2 
[root@mcb-11-9 opt]#cd php-7.1.10/
[root@mcb-11-9 php-7.1.10]#./configure \   编译安装
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
[root@mcb-11-9 php-7.1.10]#make -j2
[root@mcb-11-9 php-7.1.10]#make install
[root@mcb-11-9 php-7.1.10]#ln -s /usr/local/php/bin/* /usr/local/bin/
[root@mcb-11-9 php-7.1.10]#ln -s /usr/local/php/sbin/* /usr/local/sbin/
#优化路径#调整进程服务配置文件
[root@mcb-11-9 php-7.1.10]#cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini
[root@mcb-11-9 php-7.1.10]#vim /usr/local/php/lib/php.ini-1170G-  mysqli.default_socket =  /usr/local/mysql/mysql.sock-939G-   date.timezone = Asia/Shangha[root@mcb-11-9 php-7.1.10]#sed -n '939p;1170p' /usr/local/php/lib/php.ini 
date.timezone = Asia/Shanghai
mysqli.default_socket =  /usr/local/mysql/mysql.sock
[root@mcb-11-9 php-7.1.10]#cd /usr/local/php/etc/
[root@mcb-11-9 etc]#cp  php-fpm.conf.default php-fpm.conf
[root@mcb-11-9 etc]#vim php-fpm.conf
[root@mcb-11-9 etc]#sed -n '17p' php-fpm.conf
pid = run/php-fpm.pid#调整扩展配置文件
[root@mcb-11-9 etc]#cd /usr/local/php/etc/php-fpm.d/
[root@mcb-11-9 php-fpm.d]#cp www.conf.default www.conf
[root@mcb-11-9 php-fpm.d]#ls
www.conf  www.conf.default#启动PHP
[root@mcb-11-9 php-fpm.d]#cp /opt/php-7.1.10/sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm.service
[root@mcb-11-9 php-fpm.d]#systemctl restart php-fpm.service 
[root@mcb-11-9 php-fpm.d]#systemctl status php-fpm.service 
● php-fpm.service - The PHP FastCGI Process ManagerLoaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)Active: active (running) since 六 2024-03-09 13:01:36 CST; 5s agoMain PID: 47397 (php-fpm)CGroup: /system.slice/php-fpm.service├─47397 php-fpm: master process (/usr/local/php/etc/php-fpm.con...├─47400 php-fpm: pool www└─47401 php-fpm: pool www3月 09 13:01:36 G.D systemd[1]: Started The PHP FastCGI Process Manager.
3月 09 13:01:36 G.D systemd[1]: Starting The PHP FastCGI Process Manager...
Hint: Some lines were ellipsized, use -l to show in full.

3 编译安装搭建mysql 

[root@G opt]#yum -y install \
> ncurses \
> ncurses-devel \
> bison \
> cmake
#环境依赖包
[root@G opt]#yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel
#安装依赖环境
[root@G opt]#useradd -M -s /sbin/nologin  mysql
#创建运行用户
[root@G opt]#rz -E
rz waiting to receive.
[root@G opt]#ls
mysql-boost-5.7.20.tar.gz  nginx-1.18.0.tar.gz  php-7.1.10.tar.bz2
nginx-1.18.0               php-7.1.10
[root@G opt]#tar xf mysql-boost-5.7.20.tar.gz 
[root@G opt]#cd mysql-5.7.20/
[root@G mysql-5.7.20]#cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
> -DSYSCONFDIR=/etc \
> -DSYSTEMD_PID_DIR=/usr/local/mysql \
> -DDEFAULT_CHARSET=utf8  \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_EXTRA_CHARSETS=all \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
> -DMYSQL_DATADIR=/usr/local/mysql/data \
> -DWITH_BOOST=boost \
> -DWITH_SYSTEMD=1
[root@mcb-11-9 mysql-5.7.20]#make -j2
[root@mcb-11-9 mysql-5.7.20]#make install
[root@mcb-11-9 mysql-5.7.20]#vim /etc/my.cnf
#修改mysql配置文件
[root@mcb-11-9 mysql-5.7.20]#cat /etc/my.cnf
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
[root@mcb-11-9 mysql-5.7.20]#chown -R mysql:mysql /usr/local/mysql/
[root@mcb-11-9 mysql-5.7.20]#chown mysql:mysql /etc/my.cnf
#更改mysql安装目录和配置文件的属主属组[root@mcb-11-9 mysql-5.7.20]#echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
#设置路径环境变量
[root@mcb-11-9 mysql-5.7.20]#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@mcb-11-9 mysql-5.7.20]#source /etc/profile
[root@mcb-11-9 mysql-5.7.20]#echo $PATH
/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin[root@G mysql-5.7.20]#cd /usr/local/mysql/bin/
[root@G bin]#./mysqld \
> --initialize-insecure \
> --user=mysql \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data
#初始化数据库[root@G bin]#cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service 
/usr/lib/systemd/system/
#添加mysqld系统服务
[root@G bin]#systemctl daemon-reload
[root@G bin]#systemctl start mysqld.service
[root@G bin]#systemctl enable mysqld
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
[root@G bin]#systemctl status mysqld.service
● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: active (running) since 六 2024-03-09 13:46:17 CST; 8s agoDocs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlMain PID: 66268 (mysqld)CGroup: /system.slice/mysqld.service└─66268 /usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr...3月 09 13:46:17 G.D mysqld[66265]: 2024-03-09T05:46:17.637646Z 0 [Warni...e.
3月 09 13:46:17 G.D mysqld[66265]: 2024-03-09T05:46:17.637658Z 0 [Warni...e.
3月 09 13:46:17 G.D mysqld[66265]: 2024-03-09T05:46:17.637661Z 0 [Warni...e.
3月 09 13:46:17 G.D mysqld[66265]: 2024-03-09T05:46:17.637667Z 0 [Warni...e.
3月 09 13:46:17 G.D mysqld[66265]: 2024-03-09T05:46:17.638510Z 0 [Warni...e.
3月 09 13:46:17 G.D mysqld[66265]: 2024-03-09T05:46:17.638519Z 0 [Warni...e.
3月 09 13:46:17 G.D mysqld[66265]: 2024-03-09T05:46:17.642575Z 0 [Note]...ts
3月 09 13:46:17 G.D mysqld[66265]: 2024-03-09T05:46:17.642946Z 0 [Note]...s.
3月 09 13:46:17 G.D mysqld[66265]: Version: '5.7.20'  socket: '/usr/loc...on
3月 09 13:46:17 G.D systemd[1]: Started MySQL Server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@G ~]#mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.20 Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> ^DBye

 4 修改nginx文本,配置PHP测试页

[root@mcb-11-9 ~]#vim /usr/local/nginx/conf/nginx.conf
[root@mcb-11-9 ~]#sed -n '65,71p' /usr/local/nginx/conf/nginx.conflocation ~ \.php$ {root           html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;include        fastcgi_params;}
[root@mcb-11-9 ~]#systemctl restart nginx
[root@mcb-11-9 ~]#systemctl status nginx.service
● nginx.service - nginxLoaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)Active: active (running) since 六 2024-03-09 13:53:04 CST; 5s agoProcess: 1844 ExecStop=/bin/kill -3 $MAINPID (code=exited, status=0/SUCCESS)Process: 1849 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)Main PID: 1851 (nginx)CGroup: /system.slice/nginx.service├─1851 nginx: master process /usr/local/nginx/sbin/nginx└─1852 nginx: worker process3月 09 13:53:04 G.D systemd[1]: Starting nginx...
3月 09 13:53:04 G.D systemd[1]: Started nginx.
[root@mcb-11-9 ~]#vim /usr/local/nginx/html/index.php
[root@mcb-11-9 ~]#cat /usr/local/nginx/html/index.php 
<?php
$link=mysqli_connect('192.168.241.24','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>
[root@mcb-11-9 ~]#systemctl restart nginx

5 配置数据库

[root@mcb-11-9 ~]#mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.20 Source distributionCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> CREATE DATABASE bbs;
Query OK, 1 row affected (0.00 sec)mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
Query OK, 0 rows affected, 2 warnings (0.00 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> ^DBye

6 安装论坛

[root@mcb-11-9 ~]#cd /opt
[root@mcb-11-9 opt]#unzip Discuz_X3.4_SC_UTF8.zip
[root@mcb-11-9 opt]#ls
dir_SC_UTF8              mysql-boost-5.7.20.tar.gz  php-7.1.10
Discuz_X3.4_SC_UTF8.zip  nginx-1.18.0               php-7.1.10.tar.bz2
mysql-5.7.20             nginx-1.18.0.tar.gz        说明.htm
[root@mcb-11-9 opt]#cd dir_SC_UTF8/
[root@mcb-11-9 dir_SC_UTF8]#cp -r upload/ /usr/local/nginx/html/bbs
[root@mcb-11-9 dir_SC_UTF8]#cd /usr/local/nginx/html/bbs/
[root@mcb-11-9 bbs]#ls
admin.php  connect.php      group.php  member.php  search.php  uc_server
api        crossdomain.xml  home.php   misc.php    source
api.php    data             index.php  plugin.php  static
archiver   favicon.ico      install    portal.php  template
config     forum.php        m          robots.txt  uc_client
[root@mcb-11-9 bbs]#chown -R nginx.nginx ./config/
[root@mcb-11-9 bbs]#chown -R nginx.nginx ./data/
[root@mcb-11-9 bbs]#chown -R nginx.nginx ./uc_client/
[root@mcb-11-9 bbs]#chown -R nginx.nginx ./uc_server/
[root@mcb-11-9 bbs]#chmod -R 777 ./config/
[root@mcb-11-9 bbs]#chmod -R 777 ./data/
[root@mcb-11-9 bbs]#chmod -R 777 ./uc_client/
[root@mcb-11-9 bbs]#chmod -R 777 ./uc_server/
[root@mcb-11-9 bbs]#vim /usr/local/nginx/conf/nginx.conf
[root@mcb-11-9 bbs]#sed -n '43,46p' /usr/local/nginx/conf/nginx.conflocation / {root   html;index  index.html index.htm index.php;}

web-1 2---搭建tomcat

安装Oracle JDK

[root@node2 ~]#cd /opt
[root@node2 opt]#rm -rf *
[root@node2 opt]#ls
[root@node2 opt]#rz -E
rz waiting to receive.
[root@node2 opt]#ls
jdk-8u291-linux-x64.tar.gz
[root@node2 opt]#tar xf jdk-8u291-linux-x64.tar.gz -C /usr/local/
[root@node2 opt]#cd /usr/local/
[root@node2 local]#ls
bin  games    jdk1.8.0_291  lib64    sbin   src
etc  include  lib           libexec  share
[root@node2 local]#ln -s jdk1.8.0_291/ jdk
[root@node2 local]#ls
bin  games    jdk           lib    libexec  share
etc  include  jdk1.8.0_291  lib64  sbin     src
[root@node2 local]#vim /etc/profile.d/jdk.sh
[root@node2 local]#cat /etc/profile.d/jdk.sh 
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib/
[root@node2 local]#. /etc/profile.d/jdk.sh 
[root@node2 local]#java -version
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)

安装tomcat

[root@node2 local]#cd /opt
[root@node2 opt]#ls
jdk-8u291-linux-x64.tar.gz
[root@node2 opt]#rz -E
rz waiting to receive.
[root@node2 opt]#ls
apache-tomcat-9.0.16.tar.gz  jdk-8u291-linux-x64.tar.gz
[root@node2 opt]#tar xf apache-tomcat-9.0.16.tar.gz -C /usr/local/
[root@node2 opt]#cd /usr/local/
[root@node2 local]#ls
apache-tomcat-9.0.16  etc    include  jdk1.8.0_291  lib64    sbin   src
bin                   games  jdk      lib           libexec  share
[root@node2 local]#mv apache-tomcat-9.0.16/ tomcat
[root@node2 local]#ls
bin  games    jdk           lib    libexec  share  tomcat
etc  include  jdk1.8.0_291  lib64  sbin     src
[root@node2 local]#cd tomcat/
[root@node2 tomcat]#ls
bin           CONTRIBUTING.md  logs       RELEASE-NOTES  webapps
BUILDING.txt  lib              NOTICE     RUNNING.txt    work
conf          LICENSE          README.md  temp
[root@node2 tomcat]#useradd -M -s /sbin/nologin tomcat
[root@node2 tomcat]#cat > /usr/lib/systemd/system/tomcat.service <<EOF
> [Unit]
> Description=Tomcat
> After=syslog.target network.target
> 
> [Service]
> Type=forking
> ExecStart=/usr/local/tomcat/bin/startup.sh
> ExecStop=/usr/local/tomcat/bin/shutdown.sh
> RestartSec=3
> PrivateTmp=true
> User=tomcat
> Group=tomcat
> 
> [Install]
> WantedBy=multi-user.target
> 
> EOF
[root@node2 tomcat]#cat /usr/lib/systemd/system/tomcat.service 
[Unit]
Description=Tomcat
After=syslog.target network.target[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat[Install]
WantedBy=multi-user.target
[root@node2 tomcat]#chown -R tomcat:tomcat ../tomcat
[root@node2 tomcat]#systemctl daemon-reload
[root@node2 tomcat]#systemctl start tomcat
[root@node2 tomcat]#systemctl status tomcat
● tomcat.service - TomcatLoaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)Active: active (running) since Sat 2024-03-09 00:16:33 EST; 4s agoProcess: 4938 ExecStart=/usr/local/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)Main PID: 4954 (catalina.sh)CGroup: /system.slice/tomcat.service├─4954 /bin/sh /usr/local/tomcat/bin/catalina.sh start└─4955 /usr/bin/java -Djava.util.logging.config.file=/usr/local...Mar 09 00:16:33 node2.localdomain systemd[1]: Starting Tomcat...
Mar 09 00:16:33 node2.localdomain systemd[1]: Started Tomcat.

1在Nginx服务器上搭建LNMP服务,并且能够对外提供Discuz论坛服务(10分)

Web1Web2服务器上搭建Tomcat 服务。(10分)

2为nginx服务配置虚拟主机,新增两个域名 www.kgc.com 和 www.benet.com,使用http://www.kgc.com/index.php可访问上一题的Discuz论坛页面。(10分)

使用http://www.benet.com则访问/var/www/html目录中的index.html文件的内容,内容自定义。(10分)

3对基于www.benet.com域名的虚拟机主机的nginx服务调优:隐藏nginx版本号,缓存静态图片网页时间为1天,设置防盗链功能。(10分)

4)网关服务器搭建NFS服务,提供的文件系统使用LVM类型,共享目录名称为/opt/nfs;要求根据日期对Discuz论坛服务的访问日志进行日志分割,要求每天生成一份日志文件,保存到NFS服务共享的目录内(10分)

5要求配置location匹配请求地址http://www.kgc.com/test/XXXX,使用户访问该路径下的文件时返回/var/share/nginx/html/目录下的文件内容。(10分)

要求使用rewrite将使用域名www.benet.com 请求以 .php 结尾的访问都跳转到域名www.kgc.com上,而且后面的参数保持不变,比如访问http://www.benet.com/bbs/index.php跳转到http://www.kgc.com/bbs/index.php(10分)

6在Nginx服务器上对基于www.benet.com域名的虚拟机主机设置动静分离由nginx提供静态页面服务,将对 .jsp文件的动态页面请求转发到Tomcat 服务器处理,并实现负载均衡(10分)

7)在网关服务器上设置SNAT/DNAT,使client使用网关服务器的ens36接口的IP地址访问也可实现上一题的效果(10分)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/738420.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity游戏中数据结构的使用(c#)

作为游戏开发者,我们不断处理大量数据——无论是玩家库存、敌人人工智能还是世界状态。有效组织和访问这些数据对于优化性能和创建沉浸式游戏体验至关重要。这就是数据结构发挥作用的地方! 数据结构为我们提供了有效存储、组织和操作数据的强大工具。通过利用 Unity 中的数据…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Stack容器组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Stack容器组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Stack容器组件 堆叠容器&#xff0c;子组件按照顺序依次入栈&#xff0c;后一…

Yarn:Node.js依赖管理的现代选择

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

HTML5七天学会基础动画网页10(2)

制作立方体 学完前面的基础内容&#xff0c;制作立方体是个不错的练习方法&#xff0c;先看成品 再分析一下&#xff0c;六个面让每个面旋转平移就可以实现一个立方体&#xff0c;来看代码: <title> 制作立方体</title> <style> *{ margin: 0; padding: 0; …

Kotlin:枚举类

点击查看枚举类中文文档 点击查看枚举类英文文档 枚举类的最基本的用法是实现类型安全的枚举&#xff1a; enum class Direction {NORTH, SOUTH, WEST, EAST }每个枚举常量都是一个对象。枚举常量用逗号分隔。 初始化 因为每一个枚举都是枚举类的实例&#xff0c;所以他们可…

零基础学习JS--基础篇--正则表达式

正则表达式 正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript 中&#xff0c;正则表达式也是对象。这些模式被用于 RegExp 的 exec 和 test 方法&#xff0c;以及 String 的 match、matchAll、replace、search 和 split 方法。 创建一个正则表达式&#xff1a; 你…

三大排序:冒泡、选择、插入

冒泡排序&#xff1a; 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法。它通过比较相邻元素的大小&#xff0c;并交换它们的位置&#xff0c;使较大&#xff08;或较小&#xff09;的元素逐渐“浮”到数组的一端&#xff0c;从而实现排序的目的。 下面是冒…

【HTML】div设为输入框,巧妙添加placeholder效果

效果图 文本撑满时 初始化时 码 contenteditable"true" 设为可编辑状态 <divcontenteditable"true"placeholder"评个小论吧&#xff01;"class"textarea"></div><style>/* 设置最小高度&#xff0c;超过滚动显示 …

Qt/QML编程之路:QWidget和QML编程的差异(44)

前言: 如果你开始使用Qt,那么必然会遇到QWidget和QML,一开始甚至可能很迷糊,怎么一会qml一会QWidget,两者到底有啥区别? Qt是一个流行的跨平台应用程序框架,允许开发人员使用包括C++在内的各种编程语言创建图形用户界面(GUI)和其他类型的应用程序。Qt提供了一组库和…

python基础练习 VIP试题17道

一、阶乘计算 题目描述 输入一个正整数n&#xff0c;输出n!的值&#xff0c;其中n!123*…*n。 算法描述 n!可能很大&#xff0c;而计算机能表示的整数范围有限&#xff0c;需要使用高精度计算的方法。使用一个数组A来表示一个大整数a&#xff0c;A[0]表示a的个位&#xff0…

Python 导入Excel三维坐标数据 生成三维曲面地形图(面) 3、线条平滑曲面但有条纹

环境和包: 环境 python:python-3.12.0-amd64包: matplotlib 3.8.2 pandas 2.1.4 openpyxl 3.1.2 scipy 1.12.0 代码: import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from scipy.interpolate import griddata im…

操作系统:进程地址空间

目录 1.程序地址空间 1.1.程序地址空间的介绍 1.2.程序地址空间的本质 2.进程地址空间 3.Linux下的地址空间 1.程序地址空间 1.1.程序地址空间的介绍 我们在学习C/C时&#xff0c;对于各组分的地址分配在程序地址空间的不同模块 如图我们能够验证各组分的对应的地址排布位…

xss.haozi.me靶场“0x00-0x0A”通关教程

君衍. 一、靶场介绍二、第一关 0x00 不做限制三、第二关 0x01 文本闭合标签绕过四、第三关 0x02 双引号闭合绕过五、第四关 0x03 过滤括号六、第五关 0x04 编码绕过七、第六关 0x05 注释闭合绕过八、第七关 0x06 换行绕过九、第八关 0x07 删除标签十、第九关 0x08 多加空格绕过…

L2-002 链表去重 (25 分)(数组模拟)(附链表相关)

给定一个带整数键值的链表 L&#xff0c;你需要把其中绝对值重复的键值结点删掉。即对每个键值 K&#xff0c;只有第一个绝对值等于 K 的结点被保留。同时&#xff0c;所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15&#xff0c;你需要输出去重后…

负数的四舍五入

负数的四舍五入 标签:基础 System.out.println(Math.round(-0.2)); System.out.println(Math.round(-0.5)); System.out.println(Math.round(-0.6));0 0 -1理解:四舍五入,找一个离目标小数近的整数,-0.2和0近,-0.6和-1近,中间的往右靠

力扣每日一题 将标题首字母大写 模拟 String API

Problem: 2129. 将标题首字母大写 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 灵神题解 复杂度 ⏰ 时间复杂度: O ( n ) O(n) O(n) &#x1f30e; 空间复杂度: O ( n ) O(n) O(n) Code class Solution {public String capitalizeTitle(String title)…

vue3的组件间的v-model参数

v-model 参数 默认情况下&#xff0c;组件上的 v-model 使用 title作为 prop 和 update:title作为事件。我们可以通过向 v-model 传递参数来修改这些名称&#xff1a; zizhi是我自己创建的组件 <zizhi v-model:title"modelValue"></zizhi> 如何让父组件…

重定向、管道与环境变量

前言&#xff1a;测试开发的学习已经开启第三周的学习了。 奋斗至此&#xff0c;内容已稍有难度。 发现每一点都有其深挖的地方&#xff0c;但读书在某些方面来讲要不求甚解&#xff0c;如果只在一点深挖&#xff0c;那可能进度很难提的上来。 继续加油&#xff01;&#xf…

es 分词器详解

基本概念 分词器官方称之为文本分析器&#xff0c;顾名思义&#xff0c;是对文本进行分析处理的一种手段&#xff0c;基本处理逻辑为按照预先制定的分词规则&#xff0c;把原始文档分割成若干更小粒度的词项&#xff0c;粒度大小取决于分词器规则。 分词器发生的时期 1、分词…

实现支持多选的QComboBox

Qt提供的QComboBox只支持下拉列表内容的单选&#xff0c;但通过QComboBox提供的setModel、setView、setLineEdit三个方法&#xff0c;可以对QComboBox进行改造&#xff0c;使其实现下拉列表选项的多选。 QComboBox可以看作两个组件的组合&#xff1a;一个QLineEdit和一个QList…