分类:技术&专业

Linux VPS上配置Nginx反向代理

最近发现自己服务器总是莫名奇妙的被攻击,就想着干脆配置一个前置的反向代理服务器吧,后端才用apache,前端反向代理采用nginx

为什么才用Nginx作为前端

  1. Nginx是一款高性能的Http和反向代理服务器
  2. Nginx的配置简单易懂

什么是反向代理

反向代理指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部(或其他)网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端。

操作方法

比如我想在前端使用www.aibofan.com的域名来反向代理访问www.baidu.com,首先需要先将www.aibofan.com添加一个A记录指向反向代理服务器,然后再到反向代理服务器上修改Nginx的配置文件如下,添加下面的配置(按需修改):

server{
    	listen          80;
    	server_name    www.aibofan.com;

    	location / {
        	proxy_pass              http://www.baidu.com/;
        	proxy_redirect          off;
        	proxy_set_header        X-Real-IP       $remote_addr;
        	proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

添加好后,先校验nginx的配置是否正常可用

yum安装的nginx可以直接执行

nginx -t

源码安装的nginx可以执行

/usr/local/nginx/sbin/nginx -t

如果出现下的情况表示正常

yum安装

the configuration file /etc/nginx/nginx.conf syntax is ok
configuration file /etc/nginx/nginx.conf test is successful
源码安装
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful

这样只是简单的反向代理,如果nginx上已经安装 –with-http_sub_module 模块,可以在location / { 中添加上 sub_filter 替换内容 ‘替换后内容’; 进行简单的内容替换,默认只替换html内容(如更改html源码里面的网址、文章等信息),其他文件类型,需要添加 sub_filter_types 参数指定更多类型,多次替换还需要加上sub_filter_once off; 。

如果网站较大可能会有很多其他的资源需要替代,需要在nginx上添加第三方模块ngx_http_substitutions_filter_module来实现更多功能。

再执行 /usr/local/nginx/sbin/nginx -s reload 使配置生效,域名解析生效后就可以通过t.vpser.net 访问txxx了。

CMD命令行中以管理员权限启动应用程序实现方法

很多时候我们需要管理员权限来运行bat那么就需要结合vbscript来实现了

方法一:

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","run

常用

@echo off
mode con lines=30 cols=60
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
rem 下面可以写你的bat代码了

方法二:

@echo off 
%1 %2 
ver|find "5.">nul&&goto :st 
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :st","","runas",1)(window.close)&goto :eof 
:st 
copy "%~0" "%windir%\system32\"

thinkphp报错No input file specified. (对于隐藏url中的index.php 是如何做到的?)

在做Thinkphp5开发的时候发现在apache下总会在子页面出现“No input file specified. ”,很闹心,总是要自己在请求地址上添加“/index.php?s=/”,之前也大概知道什么问题,操作方式如下

1.去除httpd.conf文件中”#LoadModule rewrite_module modules/mod_rewrite.so”前面的”#”号;

2.修改httpd.conf文件中的AllowOverride None为AllowOverride All,目的是支持.htaccess文件;

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All

3.重启apache sudo apachectl restart

4.修改public目录下的.htaccess文件(有的apache服务器需要这一步)

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
改为

RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]

最后.htaccess文件内容为:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
</IfModule>

AutoCAD和CAXA CAD同时存在时,取消CAXA CAD对dwg格式的关联

公司以前用的是CAXA CAD 电子图版,很多图纸都是exb格式的,翻看以前的图纸或者转换为dwg就需要安装CAXA CAD,但是CAXA CAD总是默认关联dwg,造成文件图标都是它,双击的时候就变成CAXA CAD打开

如果要用AutoCAD打开需要在文件上点击鼠标右键–》打开方式–》Autocad Application   很是麻烦,就算勾上“始终使用此应用打开.dwg文件”在重开电子图版以后又会自动关联回去,在自己研究了一通之后,发现取消的方式并不难

右键“CAXA CAD 电子图板 2015 (x64)”(这里选择你所安装的版本)–》以管理员身份运行,打开软件后在工具菜单中有个“外部工具”,里面有个文件关联工具

点开它,它会弹出一个窗口,取消勾上“*.dwg–AutoCAD文件”,点确定,CAXA CAD 就不会再自动关联dwg文件了

剩下的就重新绑定一下AutoCAD对Dwg文件的关联就行了

解决git bash中执行“ssh-add pathName”时出现“Could not open a connection to your authentication agent.”

最近在接触laravel,开始用了git,安装了windows for git,往github执行push操作时验证不通过,原来是没有为github账户添加ssh,

按照教程一步步到“ssh-add pathName”时候出现如下信息:

百度了下,大多数都说先执行 eval ‘ssh-agent -s’ 操作,然而就如上图,已经执行了,还是如此,所以继续百度,好在终于找到了解决方案,在此记录下:

【解决方法】:需要ssh-agent启动bash,或者说把bash挂到ssh-agent下面。

【具体操作】:

aibof@DESKTOP-ELQ4Q3V MINGW64 /d/phpStudy/PHPTutorial/WWW
$ ssh-agent bash --login -i

aibof@DESKTOP-ELQ4Q3V MINGW64 /d/phpStudy/PHPTutorial/WWW
$ ssh-add /D/Users/aibof/.ssh/id_rsa
Identity added: /D/Users/aibof/.ssh/id_rsa (/D/Users/aibof/.ssh/id_rsa)

aibof@DESKTOP-ELQ4Q3V MINGW64 /d/phpStudy/PHPTutorial/WWW
$ ssh-add /D/Users/aibof/.ssh/id_rsa.pub
Enter passphrase for /D/Users/aibof/.ssh/id_rsa.pub:

原文参考:http://www.cnblogs.com/cheche/archive/2011/01/07/1918825.html

【转载】wordpress搬家换域名后 SQL语句 批量修改图片地址

开门见山,无可避免,WordPress都有搬家 更换域名的可能。

恼火之处,莫不是 图片链接地址。

如果,用的全部都是图床文件,那么 也许 并不涉及链接更换问题。

如果是传到自己的空间的话,按照下面的方法,操作:

1. 使用PHPMYADMIN进入数据库管理, 搜索http://www.chinatoby.cn, 你就可以看到哪些表里面包含了这个字段.
2. 点击SQL, 执行SQL语句,格式如下:
UPDATE ‘表名’ SET ‘字段’ = REPLACE(‘字段’,’待替换内容’,’替换值’);

示例(我要将http://www.chinatoby.cn的网址全部替换为http://www.chenxiaomo.com)

例1:UPDATE wp_posts SET post_content = replace(post_content, ‘http://www.chinatoby.cn’, ‘http://www.chenxiaomo.com’);

例2:UPDATE wp_options SET option_value = replace(option_value, ‘http://www.chinatoby.cn’, ‘http://www.chenxiaomo.com’);

例3:UPDATE wp_posts SET guid = replace(guid, ‘http://www.chinatoby.cn’, ‘http://www.chenxiaomo.com’);

例4:UPDATE wp_posts SET pinged = replace(pinged, ‘http://www.chinatoby.cn’, ‘http://www.chenxiaomo.com’);

例5:UPDATE wp_comments SET comment_author_url = REPLACE(comment_author_url, ‘http://www.chinatoby.cn’, ‘http://www.chenxiaomo.com’ )

注:Wordpress数据库里面几个重点替换的表和字段:
表wp_posts里面的post_content (文章内容)
表wp_posts里面的pinged (ping内容)
表wp_posts里面的guid (WordPress默认链接结构)
表wp_comments里面的comment_author_url (留言作者URL地址 )

—————————————- 以下为修改域名方法 —————————————–

顺带在这里帮助下那些换域名,又不太懂数据的朋友们,你们可以使用这种免数据库操作的方法来替换原来的域名,因为大家都知道换域名之后将出现无法登陆后台等情况,解决方法很简单。
补充使用步骤:
1 下载附件php文件文件名称为siteurl.php
2 将此文件放到网站根目录:
3 将文件此文件在浏览器中访问一次:
举例:
将本地测试的WordPress程序上传到服务器上,
本地测试环境数据存储的信息都为:http://localhost/
将所有程序上传到服务器上,数据库也还原后
只要访问执行一次http://你的域名/siteurl.php文件
数据库中会自动更新将http://localhost/替换为:
http://你的域名

点此下载siteurl.php文件

—————————————- WordPress更改域名地址无需修改数据库的方法 —————————————–

大家知道,WP博客更改域名地址,在成功导入数据库和转移网站数据库后,还需要修改HOME和SITEURL两个地址。一般大家都是通过修改数据库,其实 不用那么麻烦和危险,哈哈。通过修改配置文件也可以的。

第一种、修改wp-config.php

1、在wp-config.php中,添加以下两行内容:
define(‘WP_HOME’,’http://www.newdomain.com’);
define(‘WP_SITEURL’,’http://www.newdomain.com’);

www.newdomain.com代 表你的新地址

2、登录后台,在 “常规 -> 设置”重新配置新博客地址(HOME)和安装地址(SITEURL),成功后一定记得删除上 面添加的内容。

第二种、修改functions.php

functions.php指的是位于当前博客主题目录内,可以自定义一些主题函数。

1、在functions.php中,添加以下两行内容:

update_option(‘siteurl’,’http://www.newdomain.com’);
update_option(‘home’,’http://www.newdomain.com’);

同样,www.newdomain.com代 表你的新地址

2、登录后台,在 “常规 -> 设置”重新配置新博客地址(HOME)和安装地址(SITEURL),成功后一定记得删除上 面添加的内容。

第三种、修改wp-config.php(自动更新地址)

1、在wp-config.php中,添加下面一行内容:
define(‘RELOCATE’,true);

2、登录后台地址,WP将自动更新安装地址(SITEURL),手动修改博客地址(HOME)地址即可,成功后一定记得删除上 面添加的内容。

总结

很显然,第三种是最简单的,无需填写新的博客域名地址,最重要的是一定记得删除添加过的内容咯。

—————————————- 来自Toby的说明: —————————————–

特别鸣谢:秦家大院 BirdMichae 天天博客

转载自:wordpress搬家换域名后 SQL语句 批量修改图片地址 来自 陈晓墨博客

WordPress多个站点合并后Guid的修改

WordPress 数据库中的 wp-posts 表中有一个 guid 键值,它记录了文章的最原始 URL 信息,具体的查看这里:【便捷向】WordPress一键更换域名插件Velvet Blues Update URLs使用教程及GUID解析

所以当我们合并两个以上的wordpress数据的时候就会出现ID重复。为了能够让 guid 中记录的链接与站内文章的真实链接相对应,我们需要批量更新guid的值。可以使用下面的SQL语句:

update wp_posts
set guid = concat(‘http://www.frostsky.com/?p=’,ID)
where post_status = ‘publish’
and post_type = ‘post’;

post_type 可以分为:post,page等
post_status 可以分为:publish,draft等

重装Windows10系统后以前设置过权限的文件夹提示没有权限

前段时间重装系统,重装完成以后以前能够打开的个人文件夹,现在提示没有权限,点击continue也不行,然后发现所有的文件夹都丢失了所有者,然后通过搜索搜到了一个解决方法:

 

重装系统后,文件夹权限混乱了,权限选项卡里面所有者成了S-1-5-21-3777879981-2869545487-2372733622-1000的用户,重新授权很麻烦,经常提示无法继承或者拒绝访问。

 

?管理员权限运行以下命令,首先获得文件夹所有权:

参考:http://www.jb51.net/os/windows/82068.html

takeown /f * /A /R 
::Takeown命令用于以重新分配文件所有权的方式允许管理员重新获取先前被拒绝访问的文件访问权

 

重置当前目录文件夹权限:

参考:http://www.jb51.net/os/windows/155450.html

icacls *.* /T /Q /C /RESET

 

备份和还原权限:

参考:http://smallc.blog.51cto.com/926344/1604470/

set PATH=F:\ ::操作权限的文件夹 
set BACK_PERMISSION=F:\ ::权限备份目录 
c:\windows\system32\icacls.exe %PATH%* /save %bACK_PERMISSION%\win_backuppemission.txt /T 
::这条命令备份win文件夹及下面子文件夹和文件的权限。
c:\windows\system32\icacls.exe %PATH% /remove user /T 
::此条命令是移除user针对操作的文件夹,子文件夹及文件的所有权限
c:\windows\system32\icacls.exe %PATH% /restore %bACK_PERMISSION%\win_backuppemission.txt 
::还原用户user对操作的文件夹,子文件夹及文件的权限

 

 

icacls命令简介

Icacls 是一种命令行工具,它显示或修改指定文件上的随机访问控制列表 (DACL),并将存储的 DACL 应用于指定目录中的文件。Icacls.exe 替换了 Cacls.exe 工具用于查看和编辑 DACL。ICACLS 是 Windows Server 2003 SP2 中 CACLS 工具的升级版本,可用于从恢复控制台重设文件中的帐户控制列表 (ACL) 以及备份 ACL。与 CACLS 不同的是,ICACLS 可以正确地传送对继承的 ACL 的更改和创建。有关 ICACLS 的使用及命令的更多信息,可以通过在命令提示符下运行“icacls /?”进行访问。这里的I应该是Improved upgrade of cacls.

以下面是CMD中的icacls命令帮助手册:

Microsoft Windows [版本 6.1.7601] 
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。 
C:\Users\Administrator>icacls 
ICACLS name /save aclfile [/T] [/C] [/L] [/Q] 
将匹配名称的文件和文件夹的 DACL 存储到 aclfile 中以便将来与 
/restore 一起使用。请注意,未保存 SACL、所有者或完整性标签。 
ICACLS directory [/substitute SidOld SidNew [...]] /restore aclfile 
 [/C] [/L] [/Q] 
将存储的 DACL 应用于目录中的文件。 
ICACLS name /setowner user [/T] [/C] [/L] [/Q] 
更改所有匹配名称的所有者。该选项不会强制更改所有身份; 
 使用 takeown.exe 实用程序可实现该目的。 
ICACLS name /findsid Sid [/T] [/C] [/L] [/Q] 
查找包含显式提及 SID 的 ACL 的所有匹配名称。 
ICACLS name /verify [/T] [/C] [/L] [/Q] 
查找其 ACL 不规范或长度与 ACE 计数不一致的所有文件。 
ICACLS name /reset [/T] [/C] [/L] [/Q] 
为所有匹配文件使用默认继承的 ACL 替换 ACL。 
ICACLS name [/grant[:r] Sid:perm[...]] 
 [/deny Sid:perm [...]] 
 [/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] 
 [/setintegritylevel Level:policy[...]] 
 /grant[:r] Sid:perm 授予指定的用户访问权限。如果使用 :r, 
 这些权限将替换以前授予的所有显式权限。 
 如果不使用 :r,这些权限将添加到以前授予的所有显式权限。 
/deny Sid:perm 显式拒绝指定的用户访问权限。 
 将为列出的权限添加显式拒绝 ACE, 
 并删除所有显式授予的权限中的相同权限。 
/remove[:[g|d]] Sid 删除 ACL 中所有出现的 SID。使用 
:g,将删除授予该 SID 的所有权限。使用 
:d,将删除拒绝该 SID 的所有权限。 
/setintegritylevel [(CI)(OI)] 级别将完整性 ACE 显式添加到所有 
 匹配文件。要指定的级别为以下级别之一: 
L[ow] 
 M[edium] 
 H[igh] 
完整性 ACE 的继承选项可以优先于级别,但只应用于 
 目录。 
/inheritance:e|d|r 
 e - 启用继承 
d - 禁用继承并复制 ACE 
 r - 删除所有继承的 ACE 
注意: 
Sid 可以采用数字格式或友好的名称格式。如果给定数字格式, 
 那么请在 SID 的开头添加一个 *。</p> <p> /T 指示在以该名称指定的目录下的所有匹配文件/目录上 
 执行此操作。</p> <p> /C 指示此操作将在所有文件错误上继续进行。仍将显示错误消息。</p> <p> /L 指示此操作在符号链接本身而不是其目标上执行。</p> <p> /Q 指示 icacls 应该禁止显示成功消息。</p> <p> ICACLS 保留 ACE 项的规范顺序: 
显式拒绝 
 显式授予 
 继承的拒绝 
 继承的授予 
perm 是权限掩码,可以两种格式之一指定: 
简单权限序列: 
N - 无访问权限 
F - 完全访问权限 
M - 修改权限 
RX - 读取和执行权限 
R - 只读权限 
W - 只写权限 
D - 删除权限 
 在括号中以逗号分隔的特定权限列表: 
DE - 删除 
RC - 读取控制 
WDAC - 写入 DAC 
 WO - 写入所有者 
S - 同步 
AS - 访问系统安全性 
MA - 允许的最大值 
GR - 一般性读取 
GW - 一般性写入 
GE - 一般性执行 
GA - 全为一般性 
RD - 读取数据/列出目录 
WD - 写入数据/添加文件 
AD - 附加数据/添加子目录 
REA - 读取扩展属性 
WEA - 写入扩展属性 
X - 执行/遍历 
DC - 删除子项 
RA - 读取属性 
WA - 写入属性 
 继承权限可以优先于每种格式,但只应用于 
 目录: 
 (OI) - 对象继承 
(CI) - 容器继承 
(IO) - 仅继承 
(NP) - 不传播继承 
(I) - 从父容器继承的权限 
示例: 
icacls c:\windows\* /save AclFile /T 
- 将 c:\windows 及其子目录下所有文件的 
ACL 保存到 AclFile。 
icacls c:\windows\ /restore AclFile 
- 将还原 c:\windows 及其子目录下存在的 AclFile 内 
 所有文件的 ACL。 
icacls file /grant Administrator:(D,WDAC) 
- 将授予用户对文件删除和写入 DAC 的管理员权限。 
icacls file /grant *S-1-1-0:(D,WDAC) 
- 将授予由 sid S-1-1-0 定义的用户对文件删除和写入 DAC 的权限。

 

Win10开机小键盘灯默认开启

给自己的旧电脑升级了Win10可是小键盘灯一直不亮,一直不亮尝试了各种办法都没解决,后来误打误闯发现怎么开了

方法一、打开注册表进行如下设置:

(1)HKEY_USERS\.Default\Control Panel\Keyboard\InitialKeyboardIndicators 将2147483648修改为 80000002
(2)HKEY_CURRENT_USER\Control Panel\Keyboard\InitialKeyboardIndicators 将2修改为 80000002
(3)关机
(4)开机,打开 NumLock, 但不要输入密码登陆!!!
(5)关机。
(6)开机,NumLock 灯正常启动。

方法二、可通过如下方式修改。

(1)首先修改注册表,打开[HKEY_USERS\.DEFAULT\Control Panel\Keyboard]项,将"InitialKeyboardIndicators"的键值从"2147483648"改为"2147483650"。
(2)关闭快速启动。最左下角左击,设置-系统-电源和睡眠-其他电源设置-选择电源按钮的功能-更改当前不可用设置。关闭启用快速启动,重新启动计算机就可以了。

建议使用方法一、因为方法二关闭了快速启动会导致电脑启动变慢。这样就代价就太大了。

Linux下Xampp增加开机自启动

最近使用了Linux系统,因为要开发PHP所以使用了Xampp,可是Xampp默认不会开机自启动,所以手动增加,百度了一下方法大致如下

Ubuntu/Debian:

方法一:

1. 在/etc/init.d 目錄下建立lampp.sh 文件,然后添加以下内容:

#!/bin/sh
/opt/lampp/lampp start

2.

chmod 755 /etc/init.d/lampp.sh

3. 编辑/etc/init.d/rc.local在最后一行加上:

sh /etc/init.d/lampp.sh

或者

exec /etc/init.d/lampp.sh

 (注:这种方法即使开机后没有登入,XAMPP还是会启动)

4. 重启ubuntu

方法二:

sudo ln -s /opt/lampp/lampp  /etc/init.d/lampp
sudo update-rc.d -f lampp defaults

P.S:Deepin用方法二才成功

CentOS:

#ln -s /opt/lampp/xampp /etc/rc.d/init.d/xampp  
#chkconfig --add xampp  
#chkconfig xampp on