Nginx+SSL+Node.js运行环境配置教程
安装Nginx
1、在Mac系统上安装Nginx:
使用chown命令获取访问/usr/local文件夹的权限:
“`bash
sudo chown R ‘username here’ /usr/local
“`
接下来安装pcre和nginx:
“`bash
brew link pcre
brew install nginx
“`
启动Nginx:
“`bash
sudo nginx
“`
查看Nginx配置文件,路径为/usr/local/etc/nginx/nginx.conf
。
2、在Ubuntu上安装Nginx:
使用aptget命令进行安装:
“`bash
sudo aptget update
sudo aptget install nginx
“`
安装完成后Nginx会自动启动。
3、在Windows下安装Nginx:
下载并解压Nginx安装包,例如nginx1.3.13
,然后执行以下命令:
“`cmd
unzip nginx1.3.13.zip
cd nginx1.3.13
start nginx
“`
start nginx
命令会启动Nginx。
配置Node.js服务器
1、创建Node.js项目:
下载Express版本的Node.js源代码并解压到demoApp文件夹。
在demoApp文件夹下执行以下命令以安装依赖并启动服务器:
“`bash
npm install
node bin/www
“`
这将使服务器在3000端口上启动。
2、配置Nginx代理:
打开nginx.conf
配置文件(路径取决于操作系统,如/usr/local/etc/nginx/nginx.conf
)。
找到server配置节点,并进行如下修改:
“`nginx
server {
listen 8080;
server_name localhost;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /public {
root /usr/local/var/www;
}
}
“`
重启Nginx服务:
Mac:sudo nginx s stop && sudo nginx
Ubuntu:sudo service nginx restart
或sudo /etc/init.d/nginx restart
Windows:nginx s reload
配置SSL证书
1、创建自签名SSL证书:
生成私钥和证书请求文件:
“`bash
openssl genrsa out server.key 2048
openssl req new key server.key out server.csr
“`
使用证书请求文件生成证书:
“`bash
openssl x509 req days 365 in server.csr signkey server.key out server.crt
“`
将生成的证书和私钥放在合适的位置,如/etc/nginx/ssl/
。
2、配置Nginx使用SSL:
修改nginx.conf
配置文件,添加SSL相关配置:
“`nginx
server {
listen 8080;
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /public {
root /usr/local/var/www;
}
}
“`
重启Nginx服务以应用更改。
FAQs
1、Q: Nginx如何配置反向代理到Node.js服务器?
A: 在Nginx配置文件中,设置location块,使用proxy_pass指令将请求转发到Node.js服务器。
“`nginx
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
“`
2、Q: Nginx如何配置SSL证书?
A: 在Nginx配置文件中,添加listen指令监听443端口,并设置ssl_certificate和ssl_certificate_key指向SSL证书和私钥文件。
“`nginx
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
“`
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1095015.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复