【Nginx】ubuntu Nginx 配置

文章目录

Nginx 常用命令

什么是 Nginx

应用场景

1、HTTP服务器

2、虚拟主机

3、反向代理

4、负载均衡

5、web缓存

Nginx 配置文件说明

Nginx 目录结构

站点位置

服务器配置

服务器日志

设置服务器块(Server block)


Nginx 常用命令

查看nignx版本

nignx -v

查看nginx服务状态

sudo service nginx status

启动nginx服务

sudo service nginx start

重启服务

sudo service nginx restart

快速停止或关闭nginx

sudo nginx -s stop

正常停止或关闭nginx

sudo nginx -s quit

验证配置文件是否正确

sudo nginx -t

重新加载配置文件

sudo nginx -s reload

什么是 Nginx

Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

应用场景

1、HTTP服务器

Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

2、虚拟主机

可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

3、反向代理

当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。

4、负载均衡

多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

5、web缓存

nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。

Nginx 配置文件说明

在此之前,请确保你已经成功安装了 nignx ,你可以使用以下命令,检查是否安装了 nginx

nginx -v

输出内容如下

查看nginx.conf配置文件

一般情况,nginx.conf 配置文件存放在 /etc/nginx 目录下,如果不确定存放位置可以通过以下命令进行查找:

sudo find / -name nginx.conf

 

进入 /etc/nginx 目录

cd /etc/nginx

查看配置文件

cat nginx.conf

配置文件内容如下

user www-data;
 worker_processes auto;
 pid /run/nginx.pid;
 include /etc/nginx/modules-enabled/*.conf;
 ​
 events {
   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 TLSv1.3; # 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_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
   ##
 ​
   include /etc/nginx/conf.d/*.conf;
   include /etc/nginx/sites-enabled/*;
 }
 ​
 ​
 #mail {
 # # See sample authentication script at:
 # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
 # 
 # # auth_http localhost/auth.php;
 # # pop3_capabilities "TOP" "USER";
 # # imap_capabilities "IMAP4rev1" "UIDPLUS";
 # 
 # server {
 #   listen     localhost:110;
 #   protocol   pop3;
 #   proxy      on;
 # }
 # 
 # server {
 #   listen     localhost:143;
 #   protocol   imap;
 #   proxy      on;
 # }
 #}

nginx.conf 文件结构大致为

  • 1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

  • 2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

  • 3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

  • 4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。

  • 5、location块:配置请求的路由,以及各种页面的处理情况。

    详细内容请查看官方文档 nginx documentationicon-default.png?t=N5F7https://nginx.org/en/docs/

Nginx 目录结构

站点位置

  • /var/www/html 默认的 Web 页面。默认打开可以看到 Nginx 页面。

服务器配置

  • /etc/nginx 这是 Nginx 配置目录。所有 Nginx 的配置文件都在这里。

  • /etc/nginx/nginx.conf Nginx 的配置文件。大多数全局配置可以通过这个文件来修改。

  • /etc/nginx/sites-available 用来存储服务器下每个站点服务器块的目录。 默认情况下 Nginx 不会直接使用目录下的配置文件,需要我们更改配置来告诉 Nginx 来去读。

  • /etc/nginx/sites-enabled 这里是存储已经启用站点服务器块的目录。

  • /etc/nginx/snippets 这个目录包含一些 Nginx 的配置文件。

服务器日志

  • /var/log/nginx/access.log 记录 Nginx 的日志文件,对 Web 服务器的每个请求都会记录在这个日志中。

  • /var/log/nginx/error.log 记录 Nginx 运行过程中发生的错误日志。

设置服务器块(Server block)

使用Nginx Web服务器时,服务器块(类似于Apache中的虚拟主机)可用于封装配置详细信息,并在一台服务器中托管多个域。这里将建立一个名为 example.com 的域,但你可以用自己的域名替换它。

在 Ubuntu 上的 Nginx 默认情况下启用了一个服务器块(server block),服务器块的配置是为给服务器的目录提供地址 /var/www/html。这对于单个站点非常有效,但是如果我们在服务器上托管多个站点,则可能变很臃肿。所以需要给 /var/www/html 目录添加上分站点目录。

比如我们的网站是 example.com ,则需要创建一个对应的目录 example.com 目录:

sudo mkdir -p /var/www/example.com/html

接下来,使用 vim 编辑器编辑 index.html 文件:

sudo vim /var/www/example.com/html/index.html

在其中,添加以下示例HTML:

/var/www/example.com/html/index.html

<html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h1>Success!  The example.com server block is working!</h1>
    </body>
</html>

完成后保存并关闭文件。

为 Nginx 创建一个服务器块。与直接修改默认配置文件不同,我们在/etc/nginx/sites-available目录下创建一个新文件:example.com

sudo vim /etc/nginx/sites-available/example.com

粘贴以下内容添加到 /etc/nginx/sites-available/example.com 文件中,这个块的配置与默认块的配置相似,但针对我们的新目录和域名进行了更新:

server {
    listen 80;
    listen [::]:80;
    root /var/www/example.com/html;
    index index.html index.htm index.nginx-debian.html;
    server_name example.com www.example.com;
    location / {
        try_files $uri $uri/ =404;
    }
}

接下来,在 /etc/nginx/sites-enabled 目录新建一个软连接,让 Nginx 在启动过程中会读取这个目录:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

现在已启用并配置了两个服务器块,以及基于它们的listenserver_name指令响应请求:

  • example.com: 将会响应example.comwww.example.com的请求

  • default: 将会响应 80 端口的请求,以及不能匹配到两个服务器块上的请求

为避免可能由于添加其他服务器名称而引起的哈希存储区内存问题,有必要调整 /etc/nginx/nginx.conf 文件中的单个值。

打开文件:

sudo vim /etc/nginx/nginx.conf

找到 server_names_hash_bucket_size 指令并删除 # 符号:

 ...
 http {
     ...
     server_names_hash_bucket_size 64;
     ...
 }
 ...

完成后保存并关闭文件。

重新载入配置文件

sudo nginx -s reload

接下来,测试以确保我们在 Nginx 文件中的改动,没有任何问题:

sudo nginx -t

 

如果没有任何问题,则重新启动 Nginx:

sudo service nginx restart

Nginx 现在已经可以按照刚刚我们配置的方式来工作了。

当用户通过 http://example.com 域名访问我们的服务器时,Nginx 会将它指向我们刚刚创建的 HTML 页面。

 

使用 http://localhost 访问时,则会指向默认页面

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hi 小朋友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值