1.切换到nginx目录下, 新建conf.d文件夹
mkdir conf.d
2.赋予conf.d权限
chmod 777 conf.d
3.进入conf.d, 编辑conf文件
vim zc_travel.conf
server { listen 13101; server_name localhost;
location / {
root /home/baoxin/app/web/insight-radar-rcfx-pre/html_dev;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /tag/ {
proxy_pass http://192.168.1.107:8090/xinpeople-base/;
}
location /images/ {
alias /home/baoxin/app/rcfx/photo/;
}
}
上述Nginx配置文件定义了一个服务器块(server),用于配置Nginx如何处理来自客户端的请求。以下是配置的具体解释:
- 监听端口和服务器名称
- listen 13101;:指定Nginx监听的端口号为13101。
- server_name localhost;:指定该服务器块适用于名为localhost的主机。
- 根路径配置 (location /)
- root /home/baoxin/app/web/insight-radar-rcfx-pre/html_dev;:设置Web根目录,所有对/路径的请求将从这个目录下查找资源。
- index index.html index.htm;:指定默认索引文件,当访问一个目录时,Nginx会尝试加载这些文件。
- try_files $uri $uri/ /index.html;:尝试按顺序匹配文件:
- $uri:尝试直接匹配请求的URI。
- $uri/:如果URI是目录,则尝试访问该目录下的索引文件。
- /index.html:如果前两者都未找到,则返回/index.html,这通常用于单页应用(SPA)的路由。
- 代理转发配置 (location /tag/)
- proxy_pass http://192.168.1.107:8090/xinpeople-base/;:对于以/tag/开头的请求,将其转发到http://192.168.1.107:8090/xinpeople-base/,实现反向代理功能。
- 图片路径别名配置 (location /images/)
- alias /home/baoxin/app/rcfx/photo/;:对于以/images/开头的请求,实际从/home/baoxin/app/rcfx/photo/目录中查找资源,而不是基于根目录。
总结来说,这段配置主要用于:
- 监听13101端口并处理来自localhost的请求。
- 提供静态文件服务,特别是HTML页面和图片。
- 对特定路径(如/tag/)进行反向代理,将请求转发给后端服务。
4.在原来的配置文件/etc/nginx/conf/nginx.conf
的http{}内末尾处加一句:
include /usr/local/nginx/conf.d/*.conf;
5.重启nginx
./nginx -s reload
6.补充
我们也可以在当前项目下创建conf文件,比如当前项目目录是/home/baoxin/app/web/insight-radar-rcfx-pre,我们的conf文件目录是/home/baoxin/app/web/insight-radar-rcfx-pre/nginx_rcfx.conf,之后我们通过ln -s指向/etc/nginx/conf.d/,是同样的效果
ln -s /home/baoxin/app/web/insight-radar-rcfx-pre/nginx_rcfx.conf /etc/nginx/conf.d/
- ln -s:表示创建符号链接。-s 选项指定创建的是符号链接而不是硬链接。
- /home/baoxin/app/web/insight-radar-rcfx-pre/nginx_rcfx.conf:这是源文件的路径,即你要链接到的目标文件。在这个例子中,它是Nginx配置文件的具体位置。
- /etc/nginx/conf.d/:这是目标目录,即符号链接将被创建的位置。/etc/nginx/conf.d/ 是Nginx默认读取额外配置文件的目录。
具体作用
这条命令的作用是:
- 在 /etc/nginx/conf.d/ 目录下创建一个名为 nginx_rcfx.conf 的符号链接,该链接指向 /home/baoxin/app/web/insight-radar-rcfx-pre/nginx_rcfx.conf 文件。
- 这样做的目的是让Nginx在启动或重新加载配置时能够自动读取并应用这个自定义的配置文件,而不需要直接修改Nginx主配置文件。
优点
- 灵活性:可以轻松地添加或移除配置文件,而不会影响其他配置。
- 管理方便:所有自定义配置文件都集中在一个目录中,便于管理和维护。
- 减少错误风险:避免直接编辑主配置文件带来的潜在风险。
注意事项
- 权限问题:确保你有足够的权限来创建符号链接和访问源文件。
- 重复检查:确保目标目录中没有同名文件或链接,以避免覆盖现有文件。
- 配置测试:在创建符号链接后,建议使用 nginx -t 测试配置文件的正确性,以确保Nginx能正常加载新配置。
我们通过 ln -s创建符号链接后,可以看到在config.d目录下出现了文件,点击可以跳转到对应的文件路径
点击文件即可到达文件的位置
7. Nginx配置常用指令
7.1. alias
- 作用:指定一个路径别名。
- 语法:alias path;
- 说明:当请求匹配到某个location时,实际从指定的文件系统路径中查找资源,而不是基于根目录。例如:
location /images/ {
alias /home/baoxin/app/rcfx/photo/;
}
这意味着对/images/的请求将从/home/baoxin/app/rcfx/photo/目录中查找资源。
7.2. proxy_pass
- 作用:将请求转发给后端服务器。
- 语法:proxy_pass URL;
- 说明:用于实现反向代理,将请求转发到指定的后端服务器。例如:
location /tag/ {
proxy_pass http://192.168.1.107:8090/xinpeople-base/;
}
这意味着对/tag/的请求将被转发到http://192.168.1.107:8090/xinpeople-base/。
7.3. root
- 作用:设置Web根目录。
- 语法:root path;
- 说明:指定所有对当前location的请求将从这个目录下查找资源。例如:
location / {
root /home/baoxin/app/web/insight-radar-rcfx-pre/html_dev;
}
这意味着对/的请求将从/home/baoxin/app/web/insight-radar-rcfx-pre/html_dev目录中查找资源。
7.4. index
- 作用:指定默认索引文件。
- 语法:index file1 [file2 ...];
- 说明:当访问一个目录时,Nginx会尝试加载这些文件。例如:
index index.html index.htm;
这意味着当访问一个目录时,Nginx会依次尝试加载index.html和index.htm文件。
7.5. try_files
- 作用:尝试按顺序匹配文件。
- 语法:try_files file1 [file2 ...] fallback;
- 说明:按顺序尝试匹配文件,如果都未找到,则返回最后一个参数作为回退。例如
try_files $uri $uri/ /index.html;
这意味着:
- 先尝试直接匹配请求的URI($uri)。
- 如果是目录,则尝试访问该目录下的索引文件($uri/)。
- 如果前两者都未找到,则返回/index.html,这通常用于单页应用(SPA)的路由。
7.6. rewrite
- 作用:重写URL。
- 语法:rewrite regex replacement [flag];
- 说明:根据正则表达式重写URL。例如:
rewrite ^/old/(.*)$ /new/$1 permanent;
7.7. location
- 作用:定义位置块。
- 语法:location [=|~|~*|^~] pattern { ... }
- 说明:根据请求的URL模式匹配不同的处理逻辑。例如:
location /api/ {
proxy_pass http://backend_api;
}
7.8. add_header
- 作用:添加响应头。
- 语法:add_header name value;
- 说明:在响应中添加自定义HTTP头。例如:
add_header X-Frame-Options SAMEORIGIN;
7. 9. error_page
- 作用:定义错误页面。
- 语法:error_page code [code ...] [=[] uri | @named_location;
- 说明:指定特定HTTP状态码对应的错误页面。例如:
error_page 404 /custom_404.html;
7.10. gzip
- 作用:启用Gzip压缩。
- 语法:gzip on | off;
- 说明:启用或禁用Gzip压缩以减少传输数据量。例如:
gzip on;
通过这些指令,可以灵活地配置Nginx以满足各种需求,包括静态文件服务、反向代理、URL重写、性能优化等。