Nginx安装配置

测试系统使用的Ubuntu16.04

安装nginx依赖库

安装gcc g++的依赖库

sudo apt-get install build-essential
sudo apt-get install libtool

安装 pcre依赖库(http://www.pcre.org/)

sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev

安装 zlib依赖库(http://www.zlib.net)

sudo apt-get install zlib1g-dev

安装 ssl依赖库

sudo apt-get install openssl
sudo apt-get install libssl-dev

安装nginx

下载(可访问http://nginx.org/ 查看对应版本),我下载使用了1.11.3,比较老的一个版本。

wget http://nginx.org/download/nginx-1.11.3.tar.gz

解压并进入解压目录

tar -zxvf nginx-1.11.3.tar.gz
cd nginx-1.11.3

配置并编译安装。路径可以自行修改,个人习惯使用/usr/local/nginx。如果后续要使用https,那么就需要加上 --with-http_stub_status_module --with-http_ssl_module。

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
sudo make install

端口转发

配置conf目录下的nginx.conf

sudo vim /usr/local/nginx/conf/nginx.conf

找到内容当中的http部分进行修改

http {
include       mime.types;
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;
fastcgi_buffers 8 128k;

#不显示nginx版本号,避免根据版本漏洞攻击
server_tokens off;

#配置权重实现均衡转发
upstream ups.test1 { 
server 127.0.0.1:8092 weight=1; 
server 192.168.0.100:8090 weight=1;
}
server { 
listen 80; 
# 配置name,可以用空格分开多个域名,也可以使用*等模糊匹配
server_name m.fymod.com; 

# 根据ups.test1配置权重转发
location /t-test1/ {  
proxy_pass http://ups.test1; 
proxy_set_header  X-Real-IP  $remote_addr; 
proxy_set_header Host $host; 
} 
# 如果只有一个地址,可以直接写
location /t-test2/ { 
proxy_pass http://192.168.0.222:8099; 
proxy_set_header  X-Real-IP  $remote_addr; 
proxy_set_header Host $host; 
}
} 
# 其他部分忽略,保持原样即可。

图片和网页服务器

和端口转发类似,只不过转发的不是其他服务器,而是本地文件。一般用于ftp上传图片或者文件到指定目录,然后nginx可以访问。

location /images/ {
alias /usr/local/images/;
# 目录浏览功能,默认不开启,可选择是否启用。
autoindex on;
}
location /html/ {
alias /usr/local/html/;
}

location中使用的是alias,也可以使用root,但是查找路径的方式不相同。如果使用alias,那么路径就是alias后面的全路径。如果使用root,那么路径就是root后面的路径+location的路径,比如images路径就是/usr/local/images/images。所以,如果访问路径刚好和文件夹名称相同,则可以使用下面的形式:

location /images/ {
root /usr/local/;
}
location /html/ {
root /usr/local/;
}

部分情况下,图片服务器在返回的图片较大时,会加载失败,原因是用户没有操作proxy_temp目录的权限(需要先缓存下来),直接添加一个授权即可

chown -R root.root proxy_temp

如果有多个nginx(从第一台的nginx调用第二台nginx),那么第一台(如果nginx)上面要执行上面的授权。

HTTPS配置

之前是可以使用自己生成的私钥和证书的,但现在大部分浏览器都会报警告,甚至部分情况下有些浏览器直接不让访问,所以不再提供自己生成私钥和证书的方式,直接看如何利用平台来申请(如果有已备案域名,就能免费申请)。目前腾讯云和阿里云都是可以免费申请的,其他的不清楚,没用过。

腾讯云证书申请

登录腾讯云控制台后,搜索框输入证书即可查找到,点击进入即可。或者登录后点击https://console.cloud.tencent.com/ssl。进入后点击“申请免费证书”,选择免费版本(免费版本有效期为一年,所以每年都需要手动更换一下)。具体步骤就不写了,都是基本资料填写,提交后一般来讲几分钟就能通过审核。
审核通过后可以现在不同版本的证书,Apache、IIS、Nginx、Tomcat等,我们复制Nginx下的两个文件,并重命名为server.crt和server.key。将这两个文件放到nginx/conf/ssl文件夹中(ssl文件夹需要mkdir创建) ,后面用这两个文件来配置。

阿里云证书申请

登录阿里云控制台,搜索证书即可,或者登录后点击https://yundun.console.aliyun.com/?p=cas#/certExtend/buy。进入后有个免费证书的Tab,如果之前没有买过,点击购买证书,可以直接购买20个免费的。
购买后点击创建证书,会多出来一条待配置的,点击证书申请,填写基本资料后即可提交申请,几分钟就会审核通过。
审核通过后可以现在不同版本的证书,Apache、IIS、Nginx、Tomcat等,我们复制Nginx下的两个文件,并重命名为server.crt和server.key。将这两个文件放到nginx/conf/ssl文件夹中(ssl文件夹需要mkdir创建) ,后面用这两个文件来配置。

证书配置

修改nginx的nginx.conf文件,找到HTTPS server部分(默认是全都注释上的)

# HTTPS server
server {
listen       443 ssl;
# 用申请域名时候的名字
server_name  mytest.com;
# 两个文件对应的地址,这里放到了ssl文件夹下
ssl_certificate      ssl/server.crt;
ssl_certificate_key  ssl/server.key;

ssl_session_cache    shared:SSL:1m;
ssl_session_timeout  5m;

ssl_ciphers  HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers  on;

# 和http配置一样,做个转发
location /domain/ { 
proxy_pass http://127.0.0.1:8080; 
proxy_set_header  X-Real-IP  $remote_addr; 
proxy_set_header Host $host; 
}
}

以上配置完成后,进入域名解析,添加 mytest.com(申请时候的名字)解析到服务器上的ip地址。

启动停止

linux系统

启动 ./sbin/nginx
停止 ./sbin/nginx -s stop
重启 ./sbin/nginx -s reload

windows系统

启动 start nginx.exe
停止 nginx.exe -s stop
重新加载 nginx.exe -s reload
退出 nginx.exe -s quit

其他

上传文件出现问题 413 Request Entity Too Large
Nginx默认的request body为1M,body大于1M则报错413
找到自己主机的nginx.conf配置文件,打开
在http{}中加入 client_max_body_size 10m;

client_max_body_size 10m;  

然后重启nginx

./sbin/nginx -s reload
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

lootaa

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

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

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

打赏作者

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

抵扣说明:

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

余额充值