Nginx基本配置入门

靳一鸣 · · 1692 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

安装就忽略了,用各家install命令安装便可。

1.目录文件介绍

nginx其配置文件一般都放在/etc/nginx/目录之下,执行ls可看到该目录下的文件:

root@iZuf6go9cde2wi64ieopxxZ:/etc/nginx# ls
conf.d      koi-win        nginx.conf       sites-enabled
fastcgi.conf    mime.types     proxy_params     snippets
fastcgi_params  modules-available  scgi_params      uwsgi_params
koi-utf     modules-enabled    sites-available  win-utf

我们日常配置所需的是:nginx.conf文件和conf.dsites-enablesites-available这三个文件夹
nginx.conf是最重要的文件,我们无需经常修改,其内容中的include语句将决定是否导入以上三个文件夹(或者其他文件夹)下的配置文件。
例如:

root@iZuf6go9cde2wi64ieopxxZ:/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;
...等等,省略下面内容

通过include /etc/nginx/modules-enabled/*.conf;这条语句可以看到,启用的是/etc/nginx/modules-enabled/目录下的文件拓展名为conf的配置文件。
如上所提到的几个文件夹,其对应的语句为:

include /etc/nginx/conf.d/*
include /etc/nginx/sites-enabled/*

sites-available(或modules-available)(不是必须,但这样比较合理)文件夹存放所有可能使用的配置文件,但不导入启用,如果想要启用配置,应该用ln命令将所需要的配置文件硬链接到sites-enabled(或modules-enabled)文件夹中。

2.配置文件

一个最基本的配置文件有如下内容构成:

server {
    listen 80;
    server_name  www.miracle.beer miracle.beer
    location / {
       ...
    }
}

listen 80表示监听的80端口,为http默认端口;
如果使用https将需要监听443并且配置ssl证书;
server_name是该网站的主机名,如果在个人电脑上的话可以直接访问,如果部署在云服务器上则需要配置域名解析。
location则是访问网站的入口,访问规则由此决定。

以下是我常用的nginx配置文件:

  • golang:
    listen 80;
    listen 443 ssl;
    server_name  www.miracle.beer miracle.beer
    ssl on;
    ssl_certificate /etc/ssl/private/1542460206799.crt;
    ssl_certificate_key /etc/ssl/private/1542460206799.key;
    charset utf-8;
    access_log  /home/a.com.access.log;

    location /(css|js|fonts|img)/ {
        access_log off;
        expires 1d;

        root "/path/to/app_a/static";
        try_files $uri @backend;
    }

    location / {
        try_files /_not_exists_ @backend;
    }

    location @backend {
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host            $http_host;

        proxy_pass http://127.0.0.1:8080;
    }
}
  • python
server {
        listen       443 ssl;
        server_name  python.miracle.beer;
    ssl on;
        ssl_certificate /etc/ssl/private/1542460206799.crt;
        ssl_certificate_key /etc/ssl/private/1542460206799.key;

        location / {
            include uwsgi_params;
            uwsgi_pass  127.0.0.1:5000;
        uwsgi_param UWSGI_CHDIR  /var/www/flask/main;
            uwsgi_param UWSGI_SCRIPT hello:app;
            }
        }
  • php
    待写...

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:靳一鸣

查看原文:Nginx基本配置入门

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1692 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传