安装
eng0423@42404AU:~$ sudo apt-get install nginx
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会安装下列额外的软件包:
nginx-common nginx-core
建议安装的软件包:
fcgiwrap nginx-doc
下列【新】软件包将被安装:
nginx nginx-common nginx-core
升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 0 B/348 kB 的软件包。
解压缩后会消耗掉 1,295 kB 的额外空间。
您希望继续执行吗? [Y/n] Y
正在选中未选择的软件包 nginx-common。
(正在读取数据库 ... 系统当前共安装有 187783 个文件和目录。)
正准备解包 .../nginx-common_1.4.6-1ubuntu3_all.deb ...
正在解包 nginx-common (1.4.6-1ubuntu3) ...
正在选中未选择的软件包 nginx-core。
正准备解包 .../nginx-core_1.4.6-1ubuntu3_amd64.deb ...
正在解包 nginx-core (1.4.6-1ubuntu3) ...
正在选中未选择的软件包 nginx。
正准备解包 .../nginx_1.4.6-1ubuntu3_all.deb ...
正在解包 nginx (1.4.6-1ubuntu3) ...
正在处理用于 man-db (2.6.7.1-1) 的触发器 ...
正在处理用于 ureadahead (0.100.0-16) 的触发器 ...
ureadahead will be reprofiled on next reboot
正在处理用于 ufw (0.34~rc-0ubuntu2) 的触发器 ...
正在设置 nginx-common (1.4.6-1ubuntu3) ...
正在设置 nginx-core (1.4.6-1ubuntu3) ...
正在设置 nginx (1.4.6-1ubuntu3) ...
OK,安装成功
查看是否启动
eng0423@42404AU:/usr/sbin$ ps -ef |grep nginx
root 3550 2101 0 17:50 ? 00:00:00 nginx: master process nginx -c /etc/nginx/nginx.conf
www-data 3551 3550 0 17:50 ? 00:00:00 nginx: worker process
www-data 3552 3550 0 17:50 ? 00:00:00 nginx: worker process
www-data 3553 3550 0 17:50 ? 00:00:00 nginx: worker process
www-data 3554 3550 0 17:50 ? 00:00:00 nginx: worker process
eng0423 3560 3287 0 17:50 pts/7 00:00:00 grep --color=auto nginx
可以看见,有一个主线程,4个工作线程,说明启动成功了。
查找配置文件
eng0423@42404AU:~$ sudo find / -name nginx.conf
/etc/nginx/nginx.conf
eng0423@42404AU:~$
查看配置文件
看其他资料,都说有类似如下代码在 nginx.conf里面:
upstream zm_server {
}
server {
listen 80;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
client_max_body_size 1024M;
location / {
}
}
然而我并没有发现...
发现了如下代码:
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
进入sites-enabled文件夹,找到一个default文件
vim /etc/nginx/sites-enabled/default
#需要代理的服务器,两个节点负载均衡:
upstream zm_server {
server localhost:8080;
server localhost:8081;
}
server {
listen 80;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
client_max_body_size 1024M;
#反向代理,即外部访问的路径
location /zm/ {
proxy_pass http://zm_server/;
proxy_set_header Host $host:$server_port;
}
}
此文件可能是只读的,需要修改权限:
sudo chmod 777 /etc/nginx/sites-enabled/default
重新loand配置
eng0423@42404AU:~$ sudo nginx -s reload
#编辑的时候出错了,文件前多了个i
nginx: [emerg] unknown directive "i#" in /etc/nginx/sites-enabled/default:20
#修改完成之后,再次load
eng0423@42404AU:~$ sudo nginx -s reload
eng0423@42404AU:~$
#OK 成功
本地启动端口为 8080 和8081 的应用
java代码
@RequestMapping(value = "/index" , method = RequestMethod.GET)
public String index(HttpServletRequest request){
System.out.println(request.getRemoteAddr());//打印请求地址
return "hello world!";
}
先直接访问
请求:http://localhost:8080/index
返回:hello world!
请求:http://localhost:8081/index
返回:hello world!
通过代理访问
我这里访问了四次
请求: http://localhost/zm/index
2017-03-17 11:16:06.586 INFO 7097 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
2017-03-17 11:16:06.587 INFO 7097 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2017-03-17 11:16:06.608 INFO 7097 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 21 ms
127.0.0.1
127.0.0.1
2017-03-17 11:16:04.296 INFO 6998 --- [nio-8081-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
2017-03-17 11:16:04.296 INFO 6998 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2017-03-17 11:16:04.312 INFO 6998 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 16 ms
127.0.0.1
127.0.0.1
可以看见每个应用节点调用了两次。
OK,本次体验到此完成。
网友评论