文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Nginx如何安装配置

2023-07-02 11:38

关注

这篇文章主要介绍“Nginx如何安装配置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Nginx如何安装配置”文章能帮助大家解决问题。

简介

Nginx 的安装:

# CentOSyum install nginx;# Ubuntusudo apt-get install nginx;# Macbrew install nginx;

一般可以在/etc/nginx/nginx.conf中配置,启动参数为:

# 启动nginx -s start;# 重新启动,热启动,修改配置重启不影响线上nginx -s reload;# 关闭nginx -s stop;# 修改配置后,可以通过下面的命令测试是否有语法错误nginx -t;

-s,signal,意思就是向 nginx 发送start|reload|stop命令,还是很好理解的。先看一个最简单的nginx.conf配置:

events {    # 需要保留这一个段落,可以为空}http {    server {        listen 127.0.0.1:8888;        location / {            root /home/chenya/test/;        }    }}

启动后,访问htttp://127.0.0.1:8888,如果/home/chenya/test/下有index.html文件就会展示index.html的内容,否则返回404

Nginx 配置一个 Web 服务器

以下对配置 Web 服务器的参数做简单说明,包括如何配置端口、域名,如何处理请求,如何响应请求。

1、 虚拟主机和请求的分发

域名和端口的配置

listen 127.0.0.1:8000;listen *:8000;listen localhost:8000;# IPV6listen [::]:8000;# other paramslisten 443 default_serer ssl;listen 127.0.0.1 default_server accept_filter=dataready backlog=1024

主机名配置

server_name www.chenya.site  chenya.siteserver_name *.chenya.comserver_name ~^\.chenya\.com$

URI 匹配

location = / {    # 完全匹配  =    # 大小写敏感 ~    # 忽略大小写 ~*}location ^~ /images/ {    # 前半部分匹配 ^~    # 可以使用正则,如:    # location ~* \.(gif|jpg|png)$ { }}location / {    # 如果以上都未匹配,会进入这里}

2、 文件路径的定义

根目录设置

location / {    root /home/chenya/test/;}

别名设置

location /blog {    alias /home/chenya/www/blog/;}location ~ ^/blog/(\d+)/([\w-]+)$ {    # /blog/20141202/article-name     # -> /blog/20141202-article-name.md    alias /home/chenya/www/blog/$1-$2.md;}

首页设置

index /html/index.html /php/index.php;

重定向页面设置

error_page    404         /404.html;error_page    502  503    /50x.html;error_page    404  =200   /1x1.gif;location / {    error_page  404 @fallback;}location @fallback {    # 将请求反向代理到上游服务器处理    proxy_pass http://localhost:9000;}

try_files 设置

try_files $uri $uri.html $uri/index.html @other;location @other {    # 尝试寻找匹配 uri 的文件,失败了就会转到上游处理    proxy_pass  http://localhost:9000;}location / {    # 尝试寻找匹配 uri 的文件,没找到直接返回 502    try_files $uri $uri.html =502;}

Nginx 配置反向代理服务器

反向代理(reserve proxy)方式是指用代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络中的上游服务器,并将上游服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外的表现就是一个 Web 服务器。

Nginx 具备超强的高并发高负载能力,一般会作为前端的服务器直接向客户端提供静态文件服务;而业务一般还包含一些业务逻辑需要 Apache、Tomcat 等服务器来处理,故通常 Nginx 对外表现即为静态 Web 服务器也是反向代理服务器。

缺点是增加了一次请求的处理时间,优点是降低了上游服务器的负载,尽量将压力放在 Nginx 服务器上。

1、负载均衡配置

upstream,定义一个上游服务器集群

upstream backend {    # ip_hash;    server s1.chenya.com;    server s2.chenya.com;}server {    location / {        proxy_pass http://backend;    }}

2、反向代理

proxy_pass 将请求转发到有处理能力的端上,默认不会转发请求中的 Host 头部

location /blog {    prox_pass http://localhost:9000;    ### 下面都是次要关注项    proxy_set_header Host $host;    proxy_method POST;    # 指定不转发的头部字段    proxy_hide_header Cache-Control;    proxy_hide_header Other-Header;    # 指定转发的头部字段    proxy_pass_header Server-IP;    proxy_pass_header Server-Name;    # 是否转发包体    proxy_pass_request_body on | off;    # 是否转发头部    proxy_pass_request_headers on | off;    # 显形/隐形 URI,上游发生重定向时,Nginx 是否同步更改 uri    proxy_redirect on | off;}

一个简单的例子,Node.js

一个十分常见的需求:处理请求,如果是静态文件,Nginx 直接返回,否则交给 Node 服务器处理。首先创建了一个 Node 服务器:

const http = require('http');http.createServer((req, res) => {    res.end('hello world');}).listen(9000);

任何请求过来都返回hello world,简版的 Nginx 配置如下,

events {    # 这里可不写东西    use epoll;}http {    server {        listen 127.0.0.1:8888;        # 如果请求路径跟文件路径按照如下方式匹配找到了,直接返回        try_files $uri $uri/index.html;        location ~* ^/(js|css|image|font)/$ {            # 静态资源都在 static 文件夹下            root /home/chenya/www/static/;        }        location /app {            # Node.js 在 9000 开了一个监听端口            proxy_pass http://127.0.0.1:9000;        }        # 上面处理出错或者未找到的,返回对应状态码文件        error_page    404            /404.html;        error_page    502  503  504  /50x.html;    }}

首先 try_files,尝试直接匹配文件;没找到就匹配静态资源;还没找到就交给 Node 处理;否则就返回 4xx/5xx 的状态码。

测试语法

nginx -t

关于“Nginx如何安装配置”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯