nginx的安装配置
nginx的配置
1、liunx基本操作命令
经过长时间的django的书写,我自己写了一个简单的项目,于是就想到了买一个阿里云服务器去配置我的项目。刚买的时候,打开远程链接,我也是一脸的迷糊。我想使用linux Ubuntu 去配置我的项目,于是我就安装了Ubuntu16.4版本的服务器,虽然在之前的windows系统中经常使用cmd(命令提示符),但是碰见这全是英文字符的界面我还是很不适应,因为很多基本的操作命令我是一无所知,堪称 linux 界 的小白。首先我先学了很多基本的操作命令:
(1)ls 查看当前目录下的文件
(2)cd 进入某个文件夹
(3)mkdir 创建一个文件夹
(4)dir 查看文件夹
(5)rm 删除文件和文件夹
(6)touch 创建文件
之后了解到的就是 对文件的操作,由于经常使用ctrl+c ,ctrl+v等操作,导致我对于Linux对文件的操作的理解很慌乱:
首先就是如何编辑文件,查了百度,是利用vim 的命令,进去文件中之后,我开始一顿操作,选中 各种删除,失败
原来 对与文件的操作,需要进入一个状态 insert 点击一个i就可以了 总而言之,言而总之,到最后还是基本熟悉了如何对一个文件的保存和更改。
:q 直接退出,不对更改的文件进行保存
:wq 保存并退出
之后还了解了很多操作命令
service nginx reload nignx 服务的重新启动
netstat -ntlp 查看运行的服务
kill 强制终止服务在这里插入代码片
sudo find / -name ‘*.log’ 查询.log的文件
等,当然碰见不懂得问题,主要还是啃别人写的博客,身为小白,对于一些基本的命名一定要记住。
2 nginx的安装
由于是第一次使用,对于nginx的理解程度基本上算是没有,经过两天的奋战,现在对于他来说我也算是了解了一点点。
推荐看一个博客,写的还不错,层次很好 特别利于小白i理解https://www.cnblogs.com/knowledgesea/p/5175711.html
由于我对nginx也不是很了解,具体它是干什么用的上面的博客看完估计也就明白了,我先要说的是nginx的安装和配置
(1)安装
1:下载nginx-1.8.1.tar.gz并上传到服务器中并解压
2:安装pcre-devel和openssl-devel
yum -y install pcre-devel
yum -y install openssl-devel
下面是nginx的配置
默认的nginx.conf的文件位置在 /etc/nginx/
其中在此文件夹下还有一个文件夹叫 conf.d
根据我配置的过程中可以知道 conf.d 文件下的.conf文件会自动的加入到nginx.conf 的文件配置中,也就是说 我们也可以在 conf.d 的文件夹下创建一个.conf文件来作为配置文件。下面就是配置文件的内容以及功能
#文件扩展名与文件类型映射表
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"';
#定义日志的格式。后面定义要输出的内容。
#1.$remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址;
#2.$remote_user :用来记录客户端用户名称;
#3.$time_local :用来记录访问时间与时区;
#4.$request :用来记录请求的url与http协议;
#5.$status :用来记录请求状态;
#6.$body_bytes_sent :记录发送给客户端文件主体内容大小;
#7.$http_referer :用来记录从那个页面链接访问过来的;
#8.$http_user_agent :记录客户端浏览器的相关信息
#连接日志的路径,指定的日志格式放在最后。
#access_log logs/access.log main;
#只记录更为严重的错误日志,减少IO压力
error_log logs/error.log crit;
#关闭日志
#access_log off;
#默认编码
#charset utf-8;
#服务器名字的hash表大小
server_names_hash_bucket_size 128;
#客户端请求单个文件的最大字节数
client_max_body_size 8m;
#指定来自客户端请求头的hearerbuffer大小
client_header_buffer_size 32k;
#指定客户端请求中较大的消息头的缓存最大数量和大小。
large_client_header_buffers 4 64k;
#开启高效传输模式。
sendfile on;
#防止网络阻塞
tcp_nopush on;
tcp_nodelay on;
#客户端连接超时时间,单位是秒
keepalive_timeout 60;
#客户端请求头读取超时时间
client_header_timeout 10;
#设置客户端请求主体读取超时时间
client_body_timeout 10;
#响应客户端超时时间
send_timeout 10;
#FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#gzip模块设置
#开启gzip压缩输出
gzip on;
#最小压缩文件大小
gzip_min_length 1k;
#压缩缓冲区
gzip_buffers 4 16k;
#压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_http_version 1.0;
#压缩等级 1-9 等级越高,压缩效果越好,节约宽带,但CPU消耗大
gzip_comp_level 2;
#压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
gzip_types text/plain application/x-javascript text/css application/xml;
#前端缓存服务器缓存经过压缩的页面
gzip_vary on;
我是这样配置的 :
[上面的端口和uwsgi_pass需要自己配置 ,具体功能看上面的博客
当你配置完之后,就需要去看看能不能在公网上使用
如果出现
那么恭喜你,你已经成功了
但是 我在配置的时候,就出现了问题,当我运行时出现了 nginx server error 具体原因时 端口号与mysql服务的端口号重复,导致nginx服务无法正常使用。
给你们一个很好解决nginx bug的博客,思路很清晰,按照他给的思路相信你很快就能解决https://www.cnblogs.com/hiit/p/8568480.html
(上述可能存在很多问题,欢迎纠错,谢谢)