nginx配置文件
配置文件路径 /usr/local/nginx/conf/nginx.conf
nginx配置文件由三部分构成
第一部分 全局块
从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置命令。
worker_processes 1; (值越大,可以支持的并发处理量也越多)
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
第二部分 events块
此块涉及的指令主要影响nginx服务器与用户的网络链接
worker_connections 1024; (支持的最大连接数)
events {
worker_connections 1024;
}
第三部分 http全局块
此块是nginx服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。 需要注意的是;HTTP块可包含 http全局块和server块。
http全局块配置的指令包含文件引入、MIME-TYPE定义。日志自定义、连接超时时间、单链接请求数上限。
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server部分
server {
listen 80; # 监听端口号
server_name localhost; #主机名称
#charset koi8-r;
#access_log logs/host.access.log main;
location / { # 路径
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
nginx 反向代理 (配置)
实验一
实验目的:在浏览器地址栏输入www.mm.com跳转linux系统的Tomcat主页面中。
安装tomcat服务器 (按章教程查看以下链接)
https://editor.csdn.net/md/?articleId=122247630
默认端口8080
下载地址:http://www.apache.org/
添加tomcat防火墙对外访问端口
[root@localhost logs]# firewall-cmd --add-port=8080/tcp --permanent
重启 加载防火墙
[root@localhost logs]# firewall-cmd --reload
查看以开放端口
[root@localhost logs]# firewall-cmd --list-all
windows 浏览器输入192.168.17.10:8080 验证tomcat是否启动
解析:访问过程
设置好windows的host文件后 查看域名访问效果
nginx配置文件修改文件内容如下:(反向代理代理)
[root@localhost logs]# cd /usr/local/nginx/conf
[root@localhost conf]# vi nginx.conf
启动nginx
测试:www.mm.com
实验二
实验目的:使用nginx反向代理,根据访问的路径跳转至不同端口的服务中,nginx监听端口为9001。
访问http://192.168.17.10:9001/edu/ 直接跳转到127.0.0.1:8080
访问http://192.168.17.10:9001/vod/ 直接挑转到127.0.0.1:8081
准备两个tomcat服务器, 一个端口8080端口,一个端口8081端口。
创建两个文件夹
[root@localhost ~]# cd /usr/src
[root@localhost src]# mkdir tomcat8080
[root@localhost src]# mkdir tomcat8081
[root@localhost src]# ls
apache-tomcat-8.5.73 debug nginx-1.12.2 pcre-8.37 tomcat8080
apache-tomcat-8.5.73.tar.gz kernels nginx-1.12.2.tar.gz pcre-8.37.tar.gz tomcat8081
停掉上个实验的tomcat
tomcat安装包拖进这两个文件夹。
解压
[root@localhost tomcat8080]# tar zxvf apache-tomcat-8.5.73.tar.gz
[root@localhost tomcat8080]# cd apache-tomcat-8.5.73/
[root@localhost apache-tomcat-8.5.73]# cd bin
[root@localhost bin]# ls
启动 tomcat
[root@localhost bin]# ./startup.sh
进入tomcat8081 文件夹 同上操作
修改配置文件端口
[root@localhost apache-tomcat-8.5.73]# cd conf
[root@localhost conf]# ls
[root@localhost conf]# vi server.xml
[root@localhost conf]# cat erver.xml
启动tomcat
[root@localhost bin]# ./starup.sh
此处防火墙添加8081端口
[root@localhost bin]# firewall-cmd --add-port=8081/tcp --permanent
success
[root@localhost bin]# firewall-cmd --reload
success
[root@localhost bin]# firewall-cmd --list-all
此时 浏览器 192.168.17.10:8080 192.168.17.10:8081均可访问
创建文件夹和测试页面
此路径下建立文件夹 和 对应文本(写入内容)
[root@localhost vod]# pwd
/usr/src/tomcat8081/apache-tomcat-8.5.73/webapps/vod/b.html
[root@localhost vod]# pwd
/usr/src/tomcat8080/apache-tomcat-8.5.73/webapps/edu/a.html
浏览器访问 192.168.17.10:8080/deu/a.html
192.168.17.10:8081/vod/b.html
配置nginx配置文件
[root@localhost conf]# pwd
/usr/src/nginx-1.12.2/conf
[root@localhost conf]# vi nginx.conf
server {
listen 9001;
server_name 192.168.17.10;
location ~ /edu/ {
proxy_pass http://127.0.0.1:8080;
}
location ~ /vod/ {
proxy_pass http://127.0.0.1:8081;
}
}
开放对外访问端口 9001 8080 8081
[root@localhost conf]# firewall-cmd --add-port=9001/tcp --permanent
[root@localhost conf]# firewall-cmd --reload
[root@localhost conf]# firewall-cmd --list-all
启动nginx
[root@localhost sbin]# cd /usr/local/nginx/sbin
[root@localhost sbin]# ./nginx -s stop
[root@localhost sbin]# ./nginx
最终测试 http://192.168.17.10:9001/vod/b.html
http://192.168.17.10:9001/edu/a.html
location 指令说明
该指令用于匹配 URL
语法如下:
location [ = | ~ | ~ *| ^~ | ]
1、= :用于不含正则表达式的uri前,要求请求字符串与uri严格匹配,如果不匹配成功,就停止继续向下搜索并立即处理该请求。
2、~ : 用于表示uri包含正则表达式,并且区分大小写。
3、~ *:用于表示uri 包含正则表达式,并且不区分大小写。
4、^~: 用于不含正则表达式的uri前,要求nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配。
注意:如果uri包含正则表达式,则必须要有 ~或者 ~*标识。