nginx(ubuntu) 学习笔记

2017-07-11  本文已影响0人  某某程序员_

安装

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,本次体验到此完成。

上一篇下一篇

猜你喜欢

热点阅读