Nginx安装及相关命令:
### Ubuntu下nginx相关命令
# 安装nginx
sudo apt install nginx -y
# nginx文件相关存放位置
# /usr/sbin/nginx:主程序
# /etc/nginx:存放配置文件
# /usr/share/nginx:存放静态文件
# /var/log/nginx:存放日志
#查看Nginx版本:
nginx -v
#查看配置文件是否ok,查看配置文件目录:
nginx -t
#如果配置文件有问题的话会显示failed,如果没得问题的话,会显示successful
# nginx服务命令
service nginx {start|stop|restart|reload|forcereload|status|configtest|rotate|upgrade}
# 通过浏览器访问页面
# 访问地址:http://xxx.xxx.xxx.xxx/
# 查看日志
tail -f /var/log/nginx/access.log
Nginx配置:
按照功能划分,我们通常将nginx配置文件分为三大块,全局块,events块,http块。
第一部分:全局块
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
这里主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配 置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。
第二部分:events 块:
events {
worker_connections 1024;
}
events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。
第三部分:http块:
内容太多,略
http {
server {
}
}
注意:http是一个大块,里面也可以包括很多小块,比如http全局块,server块等。
http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
而http块中的server块则相当于一个虚拟主机,一个http块可以拥有多个server块。
server块又包括全局server块,和location块。
全局server块主要包括了本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。
location块则用来对虚拟主机名称之外的字符串进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。
比如,对/usr相关的请求交给8080来处理,/admin则较给8081处理。
nginx 实战
nginx配置反向代理:
修改我们的配置文件nginx.conf里面的server块:
server {
#设置我们nginx监听端口为8888
listen 8888 ;
#listen 8888 default_server;
#listen [::]:8888 default_server;
#root:指定web的家目录,在定义location的时候,文件的绝对路径等于root+location,
root /var/www/html;
server_name localhost;
location / {
#需要代理的服务器地址
proxy_pass http://127.0.0.1:8080;
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
配置uwsgi ini文件:
; 监听的端口
http = 127.0.0.1:8080
启动uwsgi和nginx,然后在浏览器中输入:服务器ip:8888 发现浏览器显示出来了8080端口django的欢迎界面,从而实现了隐藏真实服务器地址这样一个反向代理的要求。
更多参考
其他:root与alias
root
location /about {
root html/aaa.com; #必须要在html/aaa.com目录下创建一个about目录才可以访问,否则报错
index index.html index.htm;
}
alias
location /about { #使用alias的时候uri后面如果加了斜杠则下面的路径配置必须加斜杠,否则403
alias html/aaa.com; #当访问about的时候,会显示alias定义的html/aaa.com里面的内容
index index.html index.htm;
}