Nginx是一个十分轻量级而且高性能HTTP和反向代理服务器,一样也是一个IMAP/POP3/SMTP代理服务器。html
nginx模块通常分为三类:nginx
sudo apt-get install nginx
这种方式安装的文件位置:web
/usr/sbin/nginx:主程序shell
/etc/nginx:存放配置文件ubuntu
/usr/share/nginx:存放静态文件segmentfault
/var/log/nginx:存放日志后端
经过这种方式安装的,会自动建立服务,会自动在/etc/init.d/nginx
新建服务脚本,而后就可使用sudo service nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}
的命令启动。浏览器
能够再/var/log/nginx/
下查看日志,若是端口80被占用,就更改/etc/nginx/sites-enabled/default
文件,将下面的两个80改为你想要的的端口,而后从新启动。tomcat
19 20 server { 21 listen 80 default_server; 22 listen [::]:80 default_server ipv6only=on;
在/etc/nginx/nginx.conf
中能够看到自定义配置文件的路径:服务器
71 include /etc/nginx/conf.d/*.conf; 72 include /etc/nginx/sites-enabled/*; 73 }
在conf.d目录下新建文件timeline.conf
,写入配置内容
# HTTP Server server { listen 8080; server_name bonnenuit.vip www.bonnenuit.vip; location / { alias /home/wangjun/tomcat8/webapps/timeline/pages/; index index.html; } }
重启nginxsudo service nginx restart
http://bonnenuit.vip:8080/ 若是显示正常,则说明配置成功。
1. 报错"server" directive is not allowed here in /etc/nginx/myconf/timeline.conf:3
出现这个错误的缘由是include /etc/nginx/xxx/*.conf;
没有写在http标签下,由于server只能出如今http下面。
2. 访问url的时候报错403 forbidden
查询/var/log/nginx/error.log
,具体的报错日志为:
2019/07/03 10:21:25 [error] 1523#0: *1 open() "/home/wangjun/tomcat8/webapps/timeline/pages/timeline/pages/index.html" failed (13: Permission denied), client: 106.39.75.134, server: bonnenuit.vip, request: "GET /timeline/pages/index.html HTTP/1.1", host: "bonnenuit.vip:8080"
出现这个缘由是由于nginx的worker进程没法访问静态资源文件,由于worker进程的用户和资源的全部者是不同的,咱们须要更改配置文件nginx.conf
:
# user 用户 用户组 user wangjun wangjun;
而后重启nginx就能够解决。
在conf.d目录下timeline.conf
中,新增配置内容:
# HTTP Server # 反向代理服务器+负载均衡 upstream test_reverse_proxy { server 120.25.245.241:8080 weight=1 max_fails=2 fail_timeout=10s; server 120.25.245.241:8080 weight=1 max_fails=2 fail_timeout=10s; #两台机器能够作负载均衡,目前只有一台机器,所以ip:port同样,一台模拟两台 keepalive 16; } server { listen 8080; server_name bonnenuit.vip www.bonnenuit.vip; #server_name是为了区别多个server时,匹配域名来决定进入哪一个server,当都不匹配时,进入配置的第一个server location / { alias /home/wangjun/tomcat8/webapps/timeline/pages/; index index.html; } location ^~ /proxy/ { proxy_set_header Host $host; proxy_pass http://test_reverse_proxy/; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_redirect off; proxy_intercept_errors on; client_max_body_size 10m; } }
http://bonnenuit.vip:8080/proxy/ 若是显示正常,则说明配置成功。
看下location的语法:
location [ = | ~ | ~* | ^~ ] uri { ... } location @name { ... }
location 后面跟可选的修饰符,后面就是要匹配的字符,花括号是对应的配置。
修饰符含义:
= | 表示精确匹配,只有请求的url路径与后面的字符串彻底相等时,才会命中。 |
---|---|
~ | 表示该规则是使用正则定义的,区分大小写 |
~* | 表示该规则是使用正则定义的,不区分大小写 |
^~ | 表示若是该符号后面的字符是最佳匹配,采用该规则,再也不进行后续的查找 |
具体的匹配过程以下:
=
修饰符的location,结束查找,使用它的配置。基于以上的匹配过程,咱们能够获得如下两点启示:
/
的话,可使用=
来定义location。参考:https://www.cnblogs.com/Eason...