colindcli / CodeGit

代码仓库
https://colindcli.github.io/CodeGit/
MIT License
0 stars 2 forks source link

IIS和Nginx 反向代理 #19

Closed colindcli closed 7 years ago

colindcli commented 7 years ago

IIS反向代理 在Windows Server 2012 R2上 安装ARR,URL Rewriter组件。 ARR3.0需要如下组件支持:Web Farm Framework 2.2(该组件又需要Web Platform Installer 3.0 和 WebDeploy 2.0组件的支持) URL Rewriter2.0(For IIS7.0,支持Win 2012 R2)直接安装即可。 下载地址:http://www.iis.net/downloads/microsoft/application-request-routing      http://www.iis.net/downloads/microsoft/web-farm-framework      http://www.microsoft.com/en-us/download/details.aspx?id=7435

注意:编辑入站规则的模式匹配域名后半部分,如:http://www.iis.net/downloads/microsoft/application-request-routing,匹配 downloads/microsoft/application-request-routing

colindcli commented 7 years ago

Nginx反向代理 下载:http://nginx.org/en/download.html 文档:http://www.nginx.cn/doc/

colindcli commented 6 years ago

Nginx cmd 重启 使用gb2312编码

@echo off
cd /d C:\nginx-1.13.9\nginx-1.13.9
TASKKILL /F /IM nginx.exe /T
start "" "nginx.exe"
cls
ping localhost -n 1 > nul

cls

echo 按回车查看启动结果
pause>nul
tasklist | findstr /i "nginx.exe"
if %errorlevel% == 0 (echo 启动成功) else (echo 启动失败)

pause>nul
colindcli commented 6 years ago

检查端口被占用bat文件 使用gb2312编码

@echo off
netstat -aon|findstr ":80"

echo

set input=
set /p input=请输入80端口的Pid(最后一列数值):

tasklist /fi "pid eq %input%"

pause>nul

nginx默认80端口被System占用,造成nginx启动报错

2018/03/16 17:57:18 [emerg] 1728#22888: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

C:\Users\Administrator>netstat -aon | findstr :80

看到80端口果真被占用。发现占用的pid是4,名字是System。怎么禁用呢?

1、打开注册表:regedit

2、找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP

3、找到一个名称为Start类型为REG_DWORD,将其改为0

4、重启系统,System进程不会占用80端口

重启之后,start nginx.exe 。在浏览器中,输入127.0.01,即可看到亲爱的“Welcome to nginx!” 了。

如果以上还不能解决,尝试一下方法:

https://jingyan.baidu.com/article/870c6fc37678c4b03fe4bef6.html SQL Server ReportingServices (SQLEXPRESS) 服务占用80端口

colindcli commented 6 years ago

*语法规则: location [=|~|~|^~] /uri/ { … }**

= 开头表示精确匹配

^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。

~ 开头表示区分大小写的正则匹配

~* 开头表示不区分大小写的正则匹配

!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则

/ 通用匹配,任何请求都会匹配到。

location ~ /api/ {
    proxy_pass   http://dev.oa.com:8061;
}