服务器-Nginx-一个简单的例子

服务器-Nginx-一个简单的例子

直接贴一个几经磨难的简单的例子吧,虽然简单,但是有些不理解的地方,就出了很多错,但是因为这些错误,在对nginx理解稍微深刻了那么一点点的同时,对Linux的操作好像也有了一点进步啊。才知道为什么大家的命令都那么长,而我总是一步步慢慢的来了,一方面不熟,另一方面确实操作的不够多啊。

配置细节

user mianhk;
worker_processes 3;
pid /run/nginx.pid;

events {
    use epoll;
    #worker_connections 768;
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    #tcp_nopush on;
    #tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    #ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    #ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##
    ## 配置虚拟主机1
    server {
        listen        8081;   #监听端口
        server_name   myServer1;
        access_log  var/myweb/server1/log/access_log;  #配置日志存放路径
        error_page 404 /404.thml;   # 错误界面

        location /server1/location1 { #配置/server1/location1请求的location
            root /var/myweb;
            index index.svr1-loc1.htm;
        }
        location /server1/location2 {  #配置/server1/location2请求的location
            root /var/myweb;
            index index.svr1-locl2.htm;
        }
    }

    server {   #配置虚拟主机myServer2
        listen     8082;
        server_name 192.168.1.31;
        access_log var/myweb/server2/log/access_log;
        error_page 404 /404.thml;  #对错误页面定向

        location /server2/location1 {
            root /var/myweb;
            index index.svr2-loc1.htm;
        }
        location /svr2/loc2 {
            alias /myweb/server2/location2/;  #对location的URI进行更改
            index index.svr2-locl2.htm;
        }
        location = /404.html {  #配置错误页面转向
            root /var/myweb;
            index 404.html;
        }
    }
    #include /etc/nginx/conf.d/*.conf;
    #include /etc/nginx/sites-enabled/*;
}

结果

在浏览器中输入:http://111.230.231.95:8081/server1/location1/

输入http://111.230.231.95:8082/server2/location1/显示:

出现的问题分析

  • root目录的位置: 原来root的目录虽然写的是/var/myweb,但是实际发现位置是 在/usr/share/nginx下面,所以需要拷过去,具体这个位置是在哪里设置的,因为已经把所有其他的include都关掉了,所以可能是ubuntu下安装之后的默认目录,就像默认监听的80端口的页面其实在var/www/html下面一样。 导致出了各种莫名其妙的错误啊:
root@VM-95-58-ubuntu:/etc/nginx# systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2018-01-24 22:05:09 CST; 1s ago
  Process: 32576 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code
  Process: 21311 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 3307 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAI
 Main PID: 21314 (code=exited, status=0/SUCCESS)

Jan 24 22:05:09 VM-95-58-ubuntu systemd[1]: Starting A high performance web server and a reverse proxy server.
Jan 24 22:05:09 VM-95-58-ubuntu nginx[3307]: nginx: [emerg] open() "/usr/share/nginx/var/myweb/server1/log/acc
Jan 24 22:05:09 VM-95-58-ubuntu nginx[3307]: nginx: configuration file /etc/nginx/nginx.conf test failed
Jan 24 22:05:09 VM-95-58-ubuntu systemd[1]: nginx.service: Control process exited, code=exited status=1
Jan 24 22:05:09 VM-95-58-ubuntu systemd[1]: Failed to start A high performance web server and a reverse proxy
Jan 24 22:05:09 VM-95-58-ubuntu systemd[1]: nginx.service: Unit entered failed state.
Jan 24 22:05:09 VM-95-58-ubuntu systemd[1]: nginx.service: Failed with result 'exit-code'.
  • 另一个就是关于config文件的格式,一定要仔细写,需要加分号,然后就是最后的/,对于nginx的配置来说,是意义重大的,后面可能会说到这个问题,但是现在还是要写上。
  • 刚刚测试,好像发现这里还有其他的问题,比如我的location2好像打不开啊,尴尬,明天再看看出了什么问题。。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张戈的专栏

修改Apache的超时设置,解决长连接请求超时问题

某日,组内后台开发找到我,问我们的 WEB 服务器超时设置是多少。他反馈的问题是,有一个 VLAN 切换任务 cgi 接口经常返回 504 网关超时错误,要我分...

1.2K80
来自专栏运维小白

10.25 systemd管理服务

Linux系统服务管理-systemd systemctl list-units --all --type=service 几个常用的服务相关的命令 syste...

21570
来自专栏木木玲

Netty in action ——— 事件循环 和 线程模式

27530
来自专栏Netkiller

Linux 应用程序开发入门

我会实现一个守护进程,从这个程序你将了解,Linux 应用程序开发基本流程 我们将实现一个远程shell的功能,可以通过tcp协议,运行远程机器上的命令或she...

77970
来自专栏FreeBuf

新手指南:DVWA-1.9全级别教程(完结篇,附实例)之XSS

* 本文原创作者:lonehand,转载请注明来自FreeBuf.COM 目前,最新的DVWA已经更新到1.9版本(http://www.dvwa.co.uk...

1.4K50
来自专栏张戈的专栏

零门槛!使用Docker快速部署ES集群

自从接触 Docker 之后,对 Docker 简直是爱不释手,做什么都是行云流水。遇到部署开源软件需求,第一时间想到的都是有没有现成的 Docker 镜像?能...

3.2K40
来自专栏散尽浮华

Centos下DNS+NamedManager高可用部署方案完整记录

之前说到了NamedManager单机版的配置,下面说下DNS+NamedManager双机高可用的配置方案:

99870
来自专栏FreeBuf

2018最新款渗透测试框架 | Fsociety搞定各种姿势脚本

Fsociety是一款最新的渗透测试框架,可以帮助各位兄弟在安全测试过程中拥有变身成黑客所需要的各种姿势脚本。 这个工具刚刚出现,目前大概分为以下9类,后续还会...

37780
来自专栏黄日成的专栏

浅析 P2P 穿越 NAT 的原理、技术、方法 (上)

在 NAT 环境下,实现 P2P 通信的完整解决方案包括几个部分呢?相关的原理、方法、技术有哪些?

2.3K10
来自专栏猿天地

Spring Cloud中如何保证各个微服务之间调用的安全性

不是说你想调用就可以调用,一定要有认证机制,是我们内部服务发出的请求,才可以调用我们的接口。

26920

扫码关注云+社区

领取腾讯云代金券