遇到的问题是开发时需要做测试,但qq登录回调的链接是项目的线上地址,为了跳转到测试的地址,使用nginx做反向代理
-
首先是在C:\Windows\System32\drivers\etc hosts文件添加域名解析
- 如 121.40.69.20 game.51app.cn
- 121.40.69.20:9621为项目的测试地址
- 如不能直接修改,可以将文件复制出来修改后再覆盖回去
- 通过输入game.51app.cn:9621 发现能显示项目则这一步设置成功
下一步就是希望通过nginx来将域名后面的端口去掉,能直接访问到项目
-
下载nginx http://nginx.org/en/download.html 下个稳定版本的 Stable version windows版本
- 解压后,nginx.exe可以直接运行,但是不建议。
- 打开/conf/nainx.conf文件,删除server{ …… },或者注销掉
- 重新添加server{ }
server { listen 80; //监听的端口号 server_name game.51app.cn; //访问域名 location / { proxy_pass http://121.40.69.20:9621;//为项目的实际访问地址 index index.html index.htm; } }
- 打开cmd.exe运行命令,一定要在nginx.exe文件所在的文件夹下操作。
- 启动 start nginx ,停止 nginx -s stop, 重启(因为改变了配置,需要重启) nginx -s reload
- 打开任务管理器在进程中看不到nginx.exe的进程(双击nginx.exe时会显示在这里),需要打开详细信息里面能看到隐藏的nginx.exe进程
遇到的问题,nginx设置完成后没有效果,始终跑到一个nginx的欢迎页面,最后请教了同事后 将 hosts的改为127.0.0.1 game.51app.cn 本机的nginx配置就有效果了;之前一直显示的是那台服务器的nginx,以为是本机的nginx;
-
301 临时性跳转
302 永久性跳转
关于nginx 301 302跳转设置
301跳转设置:
server {
listen 80;
server_name 123.com;
rewrite ^/(.*) http://456.com/$1 permanent;
access_log off;
}
302跳转设置:
server {
listen 80;
server_name 123.com;
rewrite ^/(.*) http://456.com/$1 redirect;
access_log off;
}