linux下的web项目,希望的是:tomcat以及数据库均在非root用户运行,并自启动。
安装nginx配作reverse proxy,解决非root用户运行tomcat不能开启80端口的问题。nginx是root用户安装。
环境:ubuntu-14.04.3-server
1,安装nginx:
由于可以联网(虚拟机下通过NAT也能访问外网),ubuntu下使用apt-get安装:
$ sudo apt-get install nginx
# nginx -v
# nginx version: nginx/1.4.6 (Ubuntu)
2,进入/etc/nginx,编辑主配置文件nginx.conf:
因为这个版本nginx貌似采用了次级配置文件被主配置文件include的方式,但是要配置的没那么多,所以先把默认的配置先屏蔽掉,直接在主配置文件中进行:
# vi /etc/nginx/nginx.conf
这两行屏蔽:
# include /etc/nginx/conf.d/*.conf;
# include /etc/nginx/sites-enabled/*;
在http{}下配置,:
server{
listen 80;
location / {
#发向80端口的请求将被转发至这个地址
proxy_pass http://192.168.245.134:8080/;
#Host头域指定请求资源的Intenet主机和端口号。这里可选,这样配置后用户浏览器中不会显示端口
proxy_set_header Host $host;
#后端web服务器可根据头域X-Forwarded-For获取请求用户的真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
3,保存配置后启停:
启动:# nginx
指定配置文件启动:# nginx -c /etc/nginx/nginx.conf
停止:# nginx -s stop
重启:# nginx -s reload
检查配置:# nginx -t
平缓停止:# nginx -s quit
后记:
可以看到nginx在/etc/rcX.d/各目录下配置了模式2、3、4、5的开机启动以及系统关闭时的随系统停止的系统服务脚本链接。
尝试使用nginx作多级的反向代理同样可以配置成功。