首页 文章 精选 留言 我的

精选列表

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

使用 Web 服务 为 ECS Linux 实例配置网站及绑定域名

Nginx 服务绑定域名 以 YUM 安装的 Nginx 为例: 执行命令vi /etc/nginx/nginx.conf编辑 Nginx 的配置文件,将默认的server {...}配置修改为以下内容: server { listen 80 default_server; server_name www.123.com; root /home/web1; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50.xhtml; location = /50x.html { } } server { server_name www.abc.com; root /home/web2; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } 访问 www.123.com 时,跳转到 /home/web1 目录。 访问 www.abc.com 时,跳转到 /home/web2 目录。 执行命令nginx -s reload重启 Nginx 服务。 Tomcat 服务绑定域名 执行命令vi /etc/TOMCAT_HOME/conf/server.xml编辑 Tomcat 配置文件。 将上述内容修改为: <Host name="localhost" appBase="webapps" unpackWARs="true" autoPlay="true"> <Value className="org.apache.catalina.valves.AccessLogValue" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %c &quot;%r&quot; %s %b" /> </Host> <Host name="120.76.210.250" appBase="/data/wwwroot/web" unpackWARs="true" autoPlay="true"> <Content path="" docBase="/data/wwwroot/web" debug="0" reloadable="false" crossContext="true" /> <Value className="org.apache.catalina.valves.AccessLogValue" directory="logs" prefix="120.76.210.250_access_log." suffix=".txt" pattern="%h %l %u %c &quot;%r&quot; %s %b" /> </Host> <Host name="www.abc.com" appBase="/data/wwwroot/default" unpackWARs="true" autoPlay="true"> <Content path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true" /> <Value className="org.apache.catalina.valves.AccessLogValue" directory="logs" prefix="www.abc.com_access_log." suffix=".txt" pattern="%h %l %u %c &quot;%r&quot; %s %b" /> </Host> 访问 www.abc.com 时,默认跳转到 /data/wwwroot/default 目录。 访问 120.76.210.250 时,默认跳转到 /data/wwwroot/web 目录。 运行bin/shutdown关闭 Tomcat 服务,再运行bin/startup重启 Tomcat 服务。 Apache 服务绑定域名 以一键安装包配置的 Apache 环境为例: 执行命令cd /alidata/server/httpd/conf/vhosts/进入站点配置文件目录。 执行命令vi aa.conf新建一个配置文件,按下键盘上的字母 “I” 键,复制并粘贴以下内容: Order allow,deny Deny from all DocumentRoot /alidata/www/test ServerName www.test.com ServerAlias test.com ErrorLog "/alidata/log/httpd/test-error.log" CustomLog "/alidata/log/httpd/test.log" 注意:您需要修改对应的日志名字以区分不同网站的日志信息。 执行命令/alidata/server/httpd/bin/apachectl restart重启 Apache 服务。 Apache 服务配置实现多域名跳转 假设程序目录为 /var/www/html,网站目录结构如下: 开启 Apache 的虚拟主机功能,配置对应的虚拟主机到对应的目录即可。 实现效果: 使用 a.example.com 访问时,实际是访问 /var/www/html/a 目录。 使用 b.example.com 访问时,实际是访问 /var/www/html/b 目录。 使用 c.example.com 访问时,实际是访问 /var/www/html/c 目录。 Apache 服务配置二级域名 前提条件:您有一个泛域名解析的顶级域名,例如: aliyun.com 。 在httpd.conf中打开 mod_rewrite 模块; 在httpd.conf的最后,添加以下内容: RewriteEngine on RewriteMap lowercase int:tolower RewriteMap vhost txt:/usr/local/etc/apache/vhost.map RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$ RewriteCond ${vhost:%1} ^(/.*)$ RewriteRule ^/(.*)$ %1/$1 注意:/usr/local/etc/apache 是 Apache 服务配置文件所在路径,您需要根据实际情况修改。 执行命令vi vhost.map新建文件,复制并粘贴以下内容: www.aliyun.com /usr/local/www/data-dist/aliyun bbs.aliyun.com /usr/local/www/data-dist/aliyunbbs anyname.aliyun.com /usr/local/www/data-dist/anyname 注意:请注意保持域名+空格+绝对路径的格式。 在根目录 /usr/local/www/data-dist 下创建对应目录:aliyun , bbs , any name 等目录。 通过浏览器访问www.aliyun.com时,实际上访问的就是 /usr/local/www/data-dist/aliyun 目录下的文件。 通过浏览器访问bbs.aliyun.com时,实际上访问的就是 /usr/local/www/data-dist/aliyunbbs 目录下的文件。 您可以通过修改 vhost.map 来增加、删除和修改您的二级域名和所指向的实际路径,不需要重启 Apache 服务。 Apache 禁止未经许可的域名访问 ECS 上的网站 ECS 实例上的网站被人恶意指向,例如,您的实例 IP 地址为 123.123.123.123,正常服务的域名为 www.abc.com , 恶意用户使用其他的域名 www.fake.com , 指向 123.123.123.123,此时客户端访问 www.fake.com 时会出现您的网站内容。 通过 Apache 的虚拟主机可以变通的解决这个问题。以如下场景为例: Apache 版本号 ECS 实例上的网站 2.2.15 http://t1.huigher.cn/http://p1.huigher.cn/ 打开 Apache 的实际配置文件,如执行命令vi /etc/httpd/conf/httpd.conf打开 CentOS 的 Apache 配置文件,加入以下内容: 加入代码NameVirtualHost *:80,告知 Apache 使用基于 host 名的虚拟主机功能: 加入以下代码。 <ViretualHost *:80> DocumentRoot /var/www/html/error/ ServerName * ErrorLog logs/dummy-host.example.com-error_log CustomeLog logs/dummy-host.example.com-access_log common </ViretualHost> 注意:当客户端携带的 host 名不在之后设置的网站域名内时,会指向一个 403 错误页面告知用户域名非法,其中DocumentRoot是放置错误提示页面的目录,在下面可以放置一个简单的 html 页面提示用户正在访问非法域名。 加入以下代码。 <VirtualHost *:80> ServerAdmin p1@huigher.cn DocumentRoot /var/www/html/another/ ServerName p1.huigher.cn ErrorLog logs/p1.huigher.cn-error_loh CustomLog logs/p1.huigher.cn-access_log common </VirtualHost> <VirtualHost *:80> ServerAdmin t1@huigher.cn DocumentRoot /var/www/html/ ServerName t1.huigher.cn ErrorLog logs/t1.huigher.cn-error_loh CustomLog logs/t1.huigher.cn-access_log common </VirtualHost> 注意:这一步告知 Apache 合法的网站主机头,您需要根据实际情况修改这个代码块内容,如示例中的 p1.huigher.cn 和 t1.huigher.cn。 执行命令/etc/httpd/bin/apachectl restart重启 Apache 服务。 若您希望其他域名访问您的网站时直接返回 403 错误: 修改第二步中的代码为以下形式: <VirtualHost *:80> DucumentRoot /var/www/html/error/ ServerName * <Location> Order Allow, Deny Deny from all </Location> ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log commom </VirtualHost> 执行命令/etc/httpd/bin/apachectl restart重启 Apache 服务。

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

python linux 系统管理与自动化运维

pypdf2 图片:pillow 邮件:smtplib yagmail:简单发送邮件 image.png image.png 接收邮件:imapclient image.png settools打包 python-nmap image.png image.png ipy。。。。。。 dnspython... 同时处理多台服务器:polysh wget http://guichaz.free.fr/polysh/files/polysh-0.4.tar.gz tar -zxvf polysh-0.4.tar.gz cd polysh-0.4 python setup.py install 获取用户输入:pexcept paramiko:https://blog.csdn.net/l1028386804/article/details/79029041 脚本操作ssh fabric from fabric.api import * #导入fabric.api模块 env.hosts= ['192.168.122.101','192.168.122.102','192.168.122.103'] #指定远端服务器的ip地址。如果有dns解析的也可以写主机名。 env.password='indionce' #指定远端主机的密码,如果各个密码不相同可以使用一个字典指定,例如:env.password={“root@192.168.122.101”:"indionce"} @runs_once def local_uname(): #定义一个本地任务的函数 local('uname -r') def remote_uname(): #定义一个远程任务的函数 run('uname -r') def uname(): #定义一个函数,将本地与远端组合起来使用 local_uname() remote_uname() 查看列表 from fabric.api import * @runs_once #一定要指定这一条,否则会让你输入多次路径 def input(): return prompt("input path:") #prompt函数,让用户输入自己想要的路径,将输入的值返回到函数。 def ls_path(dirname): #在定义函数的时候指定形参。 run("ls -l "+dirname) def go(): ls_path(input()) #使用input返回的值,用于ls_path()的参数 处理异常 from fabric.api import * from fabric.contrib.console import * #这个模块中包含confirm def backup(): with settings(warn_only=True): #with命令表示执行这句后,执行下面的命令。使用settings命令来设置警告模式 state=local('mkdir /root/zz') #创建一个文件夹 if state.failed and not confirm("/root/zz is already exist,continue?"): #使用failed来判断state这条命令是否失败,失败了为真。confirm向用户确认是否继续,继续为真。如果命令失败了,并且用户希望停止,便通过if判断。 abort("退出任务") #abort是退出任务,有些类似python的exit。退出并且时返回给用户一串字符串 local('tar cavf /root/zz/etc.tar.gz /etc') #将etc的文件备份到/root/zz文件夹中 并行执行与顺序执行 @parallel #将下面的函数设为并行执行。 def runs_parallel(): run('uname -r') @serial #将下面的函数设为顺序执行(默认即为顺序执行 ) def runs_serially(): pass @parallel(pool_size=5) #将下面的函数设为并行执行,并且限制最多5个线程。 def runs_parallel(): pass

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

Linux(创建大文件)快速把服务器空间写满

有时我们需要测试服务器空间不足时程序的性能。这时你就需要手动对服务器创建大文件使其空间不足了。 我在百度之后发现了三个命令:truncate dd fallocate truncate命令: 它的作用是指定一个文件的大小,如果该文件不存在,就会创建该文件。如果指定文件的大小小于原先的大小,会丢失内容。 这个命令指定的文件大小其实是虚拟的。只是显示出来的大小。如果你指定一个非常大的文件。其实服务器剩余空间并不会减少。 用法:turncate -s 1G test.txt--创建一个虚拟大小1G的test文件,其真实大小为0 dd命令: 可以创建虚拟大小的文件,也可以创建真实占用空间的文件。 真实:dd if=/dev/zero of=test.txt count=10 bs=512M --创建一个5G大的test.txt文件 虚拟:dd if=/dev/zero of=test.txt count=10 bs=512M seek=10G --创建一个5G大的test.txt文件,但显示容量为10G 参数含义: if 输入文件 of 输出文件 count 创建的文件构成的块数 bs 每块的容量大小 seek 指定的虚拟大小 /dev/zero 一个不断返回0值字节的字符设备,为了提供写入的字符。 fallocate命令: 可以直接分配一个指定容量的真实大小文件,且速度很快。 用法:falloate -l 5G test.txt --创建一个大小为5G的真实文件 选择:最后我还是使用fallocate进行文件的创建,因为它速度较快。 注: 1.文件的虚拟大小可以通过ls/ll命令进行查看,真是大小可以通过进入文件所在目录,然后 du -sh *,找到对应文件名,看其真实大小。 2.dd命令十分强大,我只是使用了它其中的一种,以后还需学习其他用法。

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

Jenkins Linux下SVN的常用语法(学习笔记三)

SVN软件版本管理 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit -m "LogMessage" [-N] [--no-unlock] PATH(如果选择了保持锁,就使用--no-unlock开关) 例如:svn commit -m "add test file for my test" test.php 简写:svn ci 4、加锁/解锁 svn lock -m "LockMessage" [--force] PATH 例如:svn lock -m "lock test file" test.php svn unlock PATH 5、更新到某个版本 svn update -r m path 例如: svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。 svn update -r 200 test.php(将版本库中的文件test.php还原到版本200) svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit) 简写:svn up 6、查看文件或者目录状态 1)svn status path(目录下的文件和子目录的状态,正常状态不显示) 不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】 2)svn status -v path(显示文件和子目录状态) 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。 注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。 简写:svn st 7、删除文件 svn delete path -m "delete test fle" 例如:svn delete svn://192.168.1.1/pro/domain/test.php -m "delete test file" 或者直接svn delete test.php 然后再svn ci -m 'delete test file‘,推荐使用这种 简写:svn (del, remove, rm) 8、查看日志 svn log path 例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化 9、查看文件详细信息 svn info path 例如:svn info test.php 10、比较差异 svn diff path(将修改的文件与基础版本比较) 例如:svn diff test.php svn diff -r m:n path(对版本m和版本n比较差异) 例如:svn diff -r 200:201 test.php 简写:svn di 11、将两个版本之间的差异合并到当前文件 svn merge -r m:n path 例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下) 12、SVN 帮助 svn help svn help ci ------------------------------------------------------------------------------ 以上是常用命令,下面写几个不经常用的 ------------------------------------------------------------------------------ 13、版本库下的文件和目录列表 svn list path 显示path目录下的所有属于版本库的文件和目录 简写:svn ls 14、创建纳入版本控制下的新目录 svn mkdir: 创建纳入版本控制下的新目录。 用法: 1、mkdir PATH... 2、mkdir URL... 创建版本控制的目录。 1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增 调度,以待下一次的提交。 2、每个以URL指定的目录,都会透过立即提交于仓库中创建。 在这两个情况下,所有的中间目录都必须事先存在。 15、恢复本地修改 svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert: 用法: revert PATH... 注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录 16、代码库URL变更 svn switch (sw): 更新工作副本至不同的URL。 用法: 1、switch URL [PATH] 2、switch --relocate FROM TO [PATH...] 1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的方法。 2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命令更新工作副本与仓库的对应关系。 17、解决冲突 svn resolved: 移除工作副本的目录或文件的“冲突”状态。 用法: resolved PATH... 注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。 18、输出指定文件或URL的内容。 svn cat 目标[@版本]...如果指定了版本,将从指定的版本开始查找。 svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

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

Nacos

Nacos

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

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。