图源:
安装
虽然说可以通过yum
直接从自带的仓库傻瓜式安装,但nginx
可以从官网的这个页面下载相应的Nginx版本:
我这里为了和公司测试机上版本保持一致,选择了1.20.2,自己用的话还是选择最新的Stable版本即可。
使用wget
或者其它工具下载到服务器:
cd /usr/src
wget http://nginx.org/download/nginx-1.20.2.tar.gz
/usr/src
是Linux推荐的存放源码的目录,如果需要保留源码(方便之后重新编译以添加模块),最好在这个目录下下载源码包和解压。关于更多的Linux文件目录约定(FHS)可以阅读。
解压并进入源码目录:
tar -zxvf nginx-1.20.2.tar.gz
cd nginx-1.20.2/
设置安装参数:
./configure --prefix=/usr/local/nginx --with-http_ssl_module
这里--prefix
指定的是安装目录,同样的,根据FHS推荐,最好安装在/usr/local/nginx
下。--with-http_ssl_module
是为了将SSL模块编译进去,以便使用OpenSSL证书提供HTTPS支持,当然如果不需要也可以不加。
创建安装目录:
mkdir /usr/local/nginx
编译并安装:
make
make install
为了方便使用,还需要创建软链接:
ln -s /usr/local/nginx/conf/ /etc/nginx
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
需要注意的是,将
conf
目录映射到/etc/nginx
下时需要确保/etc/nginx
目录不存在,否则就会映射到/etc/nginx/conf
目录。如果这里不做映射,就会导致后边无法顺利申请OpenSSL证书。
一切都OK后可以通过nginx -v
查看是否安装完毕。
配置
Nginx的主配置文件位于安装目录的./conf/nginx.conf
。
Nginx安装目录本身就有配置示例,这里再提供一个个人使用的配置示例:
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name xx.xx.xx.xx; location /api { add_header Access-Control-Allow-Origin *; proxy_pass http://127.0.0.1:8080/api/; proxy_redirect default; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location / { root /mnt/xxxx/dist/; index index.html; try_files $uri $uri/ /index.html =404; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location /upload { alias /mnt/xxxx/upload/; autoindex on; } location /h5 { alias /mnt/xxxx/h5/; index index.html; } } include conf.d/*; }
这里配置的是一个前后端分离的Spring Boot项目,代码部署在/mnt/xxxx
下,后台接口的访问路径是/api
,前端代码的静态路径是/h5
和/
,前者是移动端,后者是后台。
这里后台接口因为是用Spring Boot自带的Nginx独立运行并伺服8080端口,所以这里Nginx做了反向代理。将请求转发到127.0.0.1:8080
,当然用localhost:8080
也是一样的。
总之,配好了适合自己项目的配置文件后就可以启动Nginx了:
nginx
如果一切正常的话可以用浏览器看到网站了。
证书
要申请OpenSSL证书可以参考这篇文章:
按文章内容一步步做即可。
如果出现问题可以检查:
-
Nginx是否正常运行。
-
是否对Nginx的应用和配置目录添加了软链接。
最后修改配置使用证书可以参考:
server { listen 443; ssl on; server_name kevin.xxx.com; ssl_certificate /etc/letsencrypt/live/kevin.xxx.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/kevin.xxx.com/privkey.pem; location / { root /opt/www/test; index index.html index.htm; } }
在原本监听80端口的基础上额外配置一个监听443的服务即可,当然更恰当的做法是让80端口的服务自动跳转到443端口以强制客户端使用HTTPS。
修改好配置文件后可以通过以下命令检查是否正确:
nginx -tc /etc/nginx/nginx.conf
如果有错误,按相应的错误信息排查即可。
如果启动Nginx出现问题,可以查看Nginx的相应日志,Nginx的日志位于/var/log/nginx
下。
文章评论