使用nginx映射域名到本地
ps: 最近在写一个app内嵌套的项目,然后在app内部只能通过域名访问,在调试过程中需要写完代码然后提交,打包,发布bulabulabula~ 然后爆炸~~,不多哔哔,进入正题。
首先,下载nginx
// 下载
$ brew install nginx
// 或者
$ npm install nginx
// 以上是mac的安装方法,windows的同学抱歉啦,暂时没有windows电脑
检查是否安装完成
nginx -v
// 结果 nginx version: nginx/1.xx.xx
OK安装完成
- 修改配置
// 终端输入
open /usr/local/etc/nginx
// 打开nginx目录,然后寻找一个叫做servers的文件夹,
// ps: 此文件夹初始是空的,需要我们自己写相关配置,如果没有则新建一个,
// 然后打开当前目录的nginx.conf。
// 在末尾添加代码 “include servers/*;”, 此代码与server同级
// 如果初始有servers文件夹以上步骤可以忽略
- server文件夹配置
// 新建以.conf结尾文件,文件名字随意,建议与项目相关,配置如下
// http形式域名:
server {
listen 80; // 监听80端口
index index.html;
location / {
proxy_pass http://localhost:8080; // 本地开启服务ip地址端口号
}
location /api {
proxy_pass http://xxx.xxx.xxx.xx:xx; // 加api的请求全部映射到此ip下
proxy_set_header Host $host; // proxy使用本地host
}
}
// https形式域名
server {
listen 443; // https监听443端口
ssl_certificate /usr/local/etc/nginx/ssl/xxx.com.crt; // 申请到的ssl文件
ssl_certificate_key /usr/local/etc/nginx/ssl/xxx.com.key; // 申请到的ssl文件
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4';
ssl_protocols TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_session_timeout 5m;
location / {
proxy_pass http://localhost:8080;
}
location /api {
proxy_pass http://xxx.xxx.xxx.xx:xx;
proxy_set_header Host $host;
}
}
nginx配置完成,接下来配置host文件
// 方法一:找到host文件人后编辑,目录:/private/etc/,查找方式:
//前往->前往文件夹 ->输入/private/etc/,就可以看到了
// 方法二:使用终端编辑
// 输入sudo vi/etc/hosts 提示输入密码并回车
// 按i进入输入模式 在最后一行输入 127.0.0.1 xxx.com // 要映射的域名
// ip与域名以空格隔开
// 输入之后按ESC退出编辑模式 输入 :wq 保存并退出, (冒号需英文)
// OKhost配置完毕
启动nginx
sudo nginx // 咦?啥也没有?不,其实这个时候nginx已经启动了。
// 本地开启localhost:8080, (因为本文配置监听的是localhost:8080)。
// 然后浏览器输入网站域名,完美,哈哈哈~~
本文到此结束,欢迎大家指正错误