nginx怎么配置?
Nginx是一个流行的Web服务器软件,需要进行配置才能正确使用。
以下是简单的Nginx配置步骤:
1. 安装Nginx软件:通过互联网搜索及官网下载最新的Nginx安装包进行安装。
2. 设置服务监听端口:编辑Nginx主配置文件,设置监听端口,默认是80端口。
3. 配置域名解析:通过配置文件中的server段设置Nginx对应的域名、访问控制等等。
4. 配置静态文件目录:配置文件中location段指定静态文件所在目录及相应URL文件目录对应关系,加快文件服务器的访问速度。
5. 重启Nginx服务:配置完成后,通过命令行可执行nginx -t测试语法,然后再执行sudo nginx -s reload重启Nginx服务。
需要注意的是,Nginx配置的详细操作过程因环境、场景不同而异。
如遇困难可以查阅Nginx官方_。
如何在nginx的配置文件中指定项目的部署路径?
部署静态资源的方式:
代码 「同步」 到服务器上
执行 `./manage.py collectstatic`
配置 Nginx path 到 对应的静态资源目录上。
题主可以贴下你的 Nginx 配置。另,线上不要用 Django 来 Serve 静态资源。
nginx怎么修改跨域配置?
修改nginx的跨域配置是一个相对简单的过程。
Nginx提供了一个名为“add_header”的指令,可以通过这个指令添加一些http响应头,比如“Access-Control-Allow-Origin”头,就可以实现跨域。
具体地,将以下指令添加到nginx配置文件中(如nginx.conf),重启nginx就可以实现对指定域名的跨域请求:```location / { add_header 'Access-Control-Allow-Origin' '*';}```
nginx如何配置?
nginx是一款高性能的web和反向代理服务器,这里默认题主已经安装好了nginx下面直接讲解如何配置:
进入到安装目录:
cd /usr/local/nginx/conf
修改前最好备份下:
cp nginx.conf nginx.conf.20181121
修改配置文件
vi nginx.conf
以下是完整的配置截图
解释:
我这里模拟的是两个目录,你可以将你的项目分别放到这2个目录进行访问。
我这里是有域名的,一级和二级域名,将你事先写好的2个项目,或则只是一个简单的index.html放入到上面对应的目录下,/var/www/html2或则/var/www/app
接下来只需要重启即可;
/usr/local/nginx/sbin/nginx -s reload
然后再您的浏览器里面直接输入域名即可访问(http请求默认是80端口,所以这里不用添加端口号就可以直接访问。当然了,你端口号改成8082,然后域名或ip加上:8082也是可以直接访问的。)
我写过一个专门的文章nginx配置,建议题主去看下。
私信@IT讲坛,回复【学习】获取最新技术干货资料。(包含nginx学习视频资料)。
先简单介绍一下nginx,nginx到底是什么?
Nginx ("engine x") 是一个开源的,支持高性能、高并发的 Web 服务和代理服务软件。它是由俄罗斯人 Igor Sysoev 开发的,最初被应用在俄罗斯的大型网站 www.rambler.ru 上。后来作者将源代码以类 BSD 许可的形式开源出来供全球使用。
Nginx 的官方介绍见
Nginx整体配置介绍
在了解具体的Nginx配置项之前我们需要对于Nginx配置文件的构成有所概念,一般来说,Nginx配置文件会由如下几个部分构成:
在上述配置中我们可以看出,Nginx配置文件由以下几个部分构成:
- 全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
server块:配置虚拟主机的相关参数,一个http中可以有多个server。
location块:配置请求的路由,以及各种页面的处理情况。
Nginx配置文件nginx.conf详解
如图:
为了方便复制,贴出代码,如下:
# 定义 Nginx 运行的用户和用户组,默认由 nobody 账号运行, windows 下面可以注释掉。
user www www;
# 工作进程:数目。根据硬件调整,通常等于CPU数量。
worker_processes 1;
# 全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;
# 进程文件,windows 底下可以注释掉
pid /var/run/nginx.pid;
# 一个nginx进程打开的最多文件描述符(句柄)数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,
# 但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
# events块
events {
#每个工作进程的最大连接数量,每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为。worker_processes*worker_connections
worker_connections 1024;
}
# http模块
http {
# 文件扩展名与文件类型映射表
include mime.types;
# 默认文件类型
default_type application/octet-stream;
# 日志格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
# 日志文件路径及所用的日志格式
#access_log logs/access.log main;
# 允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
sendfile on;
#tcp_nopush on;
# 连接超时时间,默认为75s,可以在http,server,location块。
#keepalive_timeout 0;
keepalive_timeout 65;
# gzip压缩相关配置
#gzip on;
gzip on; # 开启gzip压缩传输
gzip_min_length 1k; #最小压缩文件大小
gzip_buffers 4 32k; # 压缩缓存区
gzip_http_version 1.1; # 压缩版本
gzip_comp_level 2; # 压缩级别
gzip_types text/plain application/x-javascript text/css application/xml; # 压缩文件类型
gzip_vary on;
gzip_disable "MSIE [1-6].";
# 保存服务器名字的hash表的大小
server_names_hash_bucket_size 128;
# 设定通过nginx上传文件的大小
client_max_body_size 100m;
# 客户端请求头部的缓冲区大小。
client_header_buffer_size 256k;
# 客户请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取。
large_client_header_buffers 4 256k;
# 代理头部信息设置,将代理服务器收到的用户的信息传到真实服务器上
proxy_set_header Host $host:$server_port;
proxy_set_header X-real-ip $remote_addr;
#proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 虚拟主机
server {
# 监听端口
listen 8088;
# 监听地址
server_name t1.sgl.com;
# 请求地址location
location / {
# 请求转向到代理服务器
proxy_pass http://127.0.0.1:8080;
}
location /admin/user_toIndexPage.do {
# 超时时间
proxy_read_timeout 300;
proxy_pass http://127.0.0.1:8080;
}
location /wechat/ {
proxy_pass http://127.0.0.1:8081;
}
location /new/ {
proxy_pass http://127.0.0.1:8081;
}
}
}
常用的几个内置变量
- $remote_addr 与 $http_x_forwarded_for 用以记录客户端的ip地址;
- $remote_user :用来记录客户端用户名称;
- $time_local : 用来记录访问时间与时区;
- $request : 用来记录请求的url与http协议;
- $status : 用来记录请求状态;成功是200;
- $body_bytes_s ent :记录发送给客户端文件主体内容大小;
- $http_referer :用来记录从那个页面链接访问过来的;
- $http_user_agent :记录客户端浏览器的相关信息;
关于nginx重新加载配置、平滑升级参考我的博客
nginx启动、重启、重新加载配置文件和平滑升级: (
)
nginx的location解析过程介绍: ()
nginx的gzip压缩功能参数介绍: ()
希望以上内容能够帮助你理解nginx配置。