因为只是在开发的过程中遇到要使用域名的方式访问, 而linux默认把1024以下的端口全部禁用.
在网上找了N多方式开启80端口无果后, 方才想到使用代理的方式转到其他端口.
自然而然就想到了用Nginx, 但在配置过程中也是出现了各种奇葩问题, 所以先做个笔记省得之后忘了.
注: 本文只是在Nginx上做最简单的端口跳转.
安装nginx
在ubuntu中安装nginx比较简单.
sudo apt-get install nginx
坐等安装好即可.
或者也可以通过源码安装.
配置转发
nginx的默认安装路径在/usr/local/nginx下.
nginx的默认配置在/etc/nginx下.
把80端口指向8080端口, 方法如下:
修改nginx.conf
注释掉改行:
#nginx.conf 中 http 段最后会有以下这两句.
#这样你就可以把已经配置好的各种 server conf 放在 sites-available 里,
#如果想启用的时候只要复制或者软连接到上面两个文件夹里,想关掉或者更改配置的时候也比较方便.
#
#而默认情况下sites-enabled目录下会放一个sites-available/default的软链接,
#在sites-available/default已经对localhost进行设置,
#导致无论你怎么修改nginx.conf对本地端口进行配置都不会生效. 一直报404错误.
#所以此处要把sites-enabled注掉. 或者把该软链接换掉.
#
include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;
在http配置项中增加如下内容:
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
重启nginx
sudo service nginx restart //或者 sudo nginx -s reload
然后就可以直接通过localhost/index.htm来访问8080端口的项目了.
nginx简单的操作命令
sudo service nginx start #启动
sudo service nginx stop #停止
sudo service nginx restart #重新启动
sudo service nginx reload #重新启动
sudo nginx -s start #启动
sudo nginx -s stop #停止
sudo nginx -s restart #重新启动
sudo nginx -s reload #重新加载配置