美文网首页
nginx(ubuntu) 学习笔记

nginx(ubuntu) 学习笔记

作者: 某某程序员_ | 来源:发表于2017-07-11 10:52 被阅读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,本次体验到此完成。

    相关文章

      网友评论

          本文标题:nginx(ubuntu) 学习笔记

          本文链接:https://www.haomeiwen.com/subject/eeiphxtx.html